Skip to content

Commit 622a725

Browse files
talregevredbaron
andauthored
Cherry picks Delegate build and export platform (#4685)
* Change public headers to support msh3 (#4525) * simplify export include dir cmake code (#4575) * Delegate build environment configuration with QUIC_EXTERNAL_TOOLCHAIN (#4625) Well managed CMake build environments make use of CMAKE_TOOLCHAIN_FILE to configure build environment such as include/lib search paths, system libraries, build flags, etc. This change introduces QUIC_EXTERNAL_TOOLCHAIN build option, which when enabled stops MSQuic CMake scripts from attempting to do CMake toolchain job. QUIC_EXTERNAL_TOOLCHAIN defaults to OFF to preserve original behaviour. * export platform (#4574) * Add wbemuuid (#4687) --------- Co-authored-by: Maxim Ivanov <[email protected]>
1 parent ee4d0b0 commit 622a725

File tree

16 files changed

+119
-60
lines changed

16 files changed

+119
-60
lines changed

.github/workflows/build-reuse-win.yml

+7
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,13 @@ jobs:
8686
if: inputs.build == '-Test'
8787
shell: pwsh
8888
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisablePerf -DynamicCRT ${{ inputs.sanitize }}
89+
- name: Build External Platform Test
90+
if: inputs.build == '-Test' && inputs.sanitize != '-Sanitize'
91+
shell: pwsh
92+
run: |
93+
cmake --install build\${{ inputs.plat }}\${{ inputs.arch }}_${{ inputs.tls }} --config ${{ inputs.config }}
94+
cmake src/platform/unittest/external -G "Visual Studio 17 2022" -A ${{ inputs.arch }} -B build_external "-DCMAKE_INSTALL_PREFIX:PATH=C:/Program Files/msquic" -DQUIC_TLS=${{ inputs.tls }}
95+
cmake --build build_external --config ${{ inputs.config }}
8996
- name: Build For Perf
9097
if: inputs.build == '-Perf'
9198
shell: pwsh

CMakeLists.txt

+9-2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ option(QUIC_STATIC_LINK_CRT "Statically links the C runtime" ON)
8989
option(QUIC_STATIC_LINK_PARTIAL_CRT "Statically links the compiler-specific portion of the C runtime" ON)
9090
option(QUIC_UWP_BUILD "Build for UWP" OFF)
9191
option(QUIC_GAMECORE_BUILD "Build for GameCore" OFF)
92+
option(QUIC_EXTERNAL_TOOLCHAIN "Enable if system libs and include paths are configured by CMake toolchain" OFF)
9293
option(QUIC_PGO "Enables profile guided optimizations" OFF)
9394
option(QUIC_LINUX_XDP_ENABLED "Enables XDP support" OFF)
9495
option(QUIC_SOURCE_LINK "Enables source linking on MSVC" ON)
@@ -459,7 +460,9 @@ if(WIN32)
459460
set_property(TARGET MsQuicEtw_HeaderBuild PROPERTY FOLDER "${QUIC_FOLDER_PREFIX}helpers")
460461

461462
add_library(MsQuicEtw_Header INTERFACE)
462-
target_include_directories(MsQuicEtw_Header INTERFACE ${QUIC_BUILD_DIR}/inc)
463+
target_include_directories(MsQuicEtw_Header INTERFACE
464+
$<BUILD_INTERFACE:${QUIC_BUILD_DIR}/inc>
465+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
463466
add_dependencies(MsQuicEtw_Header MsQuicEtw_HeaderBuild)
464467

465468
add_library(MsQuicEtw_Resource OBJECT ${QUIC_BUILD_DIR}/inc/MsQuicEtw.rc)
@@ -477,7 +480,11 @@ if(WIN32)
477480
endif()
478481

479482
if (QUIC_GAMECORE_BUILD)
480-
list(APPEND QUIC_COMMON_DEFINES WINAPI_FAMILY=WINAPI_FAMILY_GAMES QUIC_GAMECORE_BUILD QUIC_RESTRICTED_BUILD)
483+
list(APPEND QUIC_COMMON_DEFINES QUIC_GAMECORE_BUILD QUIC_RESTRICTED_BUILD)
484+
endif()
485+
486+
if (QUIC_GAMECORE_BUILD AND NOT QUIC_EXTERNAL_TOOLCHAIN)
487+
list(APPEND QUIC_COMMON_DEFINES WINAPI_FAMILY=WINAPI_FAMILY_GAMES)
481488
set(CMAKE_CXX_STANDARD_LIBRARIES "")
482489
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "")
483490
set(CMAKE_C_STANDARD_LIBRARIES "")

src/bin/CMakeLists.txt

+13-22
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ endif()
1111

1212
if(BUILD_SHARED_LIBS)
1313
add_library(msquic SHARED ${SOURCES})
14-
target_link_libraries(msquic PRIVATE core platform inc warnings logging base_link main_binary_link_args)
14+
target_link_libraries(msquic PRIVATE core msquic_platform inc warnings logging base_link main_binary_link_args)
1515
set_target_properties(msquic PROPERTIES OUTPUT_NAME ${QUIC_LIBRARY_NAME})
1616
if (NOT WIN32)
1717
set_target_properties(msquic PROPERTIES SOVERSION ${QUIC_MAJOR_VERSION} VERSION ${QUIC_FULL_VERSION})
@@ -21,7 +21,7 @@ if(BUILD_SHARED_LIBS)
2121
endif()
2222
else()
2323
add_library(msquic_static STATIC static/empty.c)
24-
target_link_libraries(msquic_static PRIVATE core platform inc logging main_binary_link_args)
24+
target_link_libraries(msquic_static PRIVATE core msquic_platform inc logging main_binary_link_args)
2525
target_compile_definitions(msquic_static PUBLIC QUIC_BUILD_STATIC)
2626
set_property(TARGET msquic_static PROPERTY FOLDER "${QUIC_FOLDER_PREFIX}libraries")
2727

@@ -150,7 +150,7 @@ else()
150150
COMMAND libtool -static -o \"${QUIC_STATIC_LIBRARY}\" @${QUIC_DEPS_FILE}
151151
DEPENDS ${QUIC_DEPS_FILE}
152152
DEPENDS core
153-
DEPENDS platform
153+
DEPENDS msquic_platform
154154
DEPENDS msquic_static
155155
)
156156
elseif(WIN32)
@@ -181,7 +181,7 @@ else()
181181
COMMAND ${CMAKE_COMMAND} -E copy "${QUIC_STATIC_LIBRARY}" "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
182182
DEPENDS ${QUIC_DEPS_FILE}
183183
DEPENDS core
184-
DEPENDS platform
184+
DEPENDS msquic_platform
185185
DEPENDS msquic_static
186186
)
187187
else()
@@ -205,7 +205,7 @@ else()
205205
COMMAND ${CMAKE_AR} -M < ${QUIC_DEPS_FILE}
206206
DEPENDS ${QUIC_DEPS_FILE}
207207
DEPENDS core
208-
DEPENDS platform
208+
DEPENDS msquic_platform
209209
DEPENDS msquic_static
210210
)
211211
endif()
@@ -250,27 +250,18 @@ elseif (CX_PLATFORM STREQUAL "darwin")
250250
PROPERTIES LINK_FLAGS "-exported_symbols_list \"${CMAKE_CURRENT_SOURCE_DIR}/darwin/exports.txt\"")
251251
endif()
252252

253-
if(BUILD_SHARED_LIBS)
254-
target_include_directories(msquic PUBLIC
255-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../inc>
256-
$<INSTALL_INTERFACE:${include_dest}>)
257-
else()
258-
target_include_directories(msquic_static INTERFACE
259-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../inc>
260-
$<INSTALL_INTERFACE:${include_dest}>)
261-
target_include_directories(msquic INTERFACE
262-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../inc>
263-
$<INSTALL_INTERFACE:${include_dest}>)
253+
file(GLOB PUBLIC_HEADERS "../inc/*.h" "../inc/*.hpp")
254+
255+
if(QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "openssl3")
256+
list(APPEND OTHER_TARGETS OpenSSL OpenSSLQuic)
264257
endif()
265258

266-
set(PUBLIC_HEADERS
267-
../inc/msquic.h
268-
../inc/msquic_winuser.h
269-
../inc/msquic_posix.h
270-
../inc/quic_sal_stub.h)
259+
if(WIN32)
260+
list(APPEND OTHER_TARGETS MsQuicEtw_Header)
261+
endif()
271262

272263
if(BUILD_SHARED_LIBS)
273-
install(TARGETS msquic EXPORT msquic DESTINATION lib)
264+
install(TARGETS msquic msquic_platform inc logging_inc warnings main_binary_link_args ${OTHER_TARGETS} EXPORT msquic DESTINATION lib)
274265
else()
275266
install(FILES ${QUIC_STATIC_LIBRARY} DESTINATION lib)
276267
endif()

src/core/unittest/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ set_property(TARGET msquiccoretest APPEND PROPERTY BUILD_RPATH "$ORIGIN")
2727
target_link_libraries(msquiccoretest msquic)
2828

2929
if (BUILD_SHARED_LIBS)
30-
target_link_libraries(msquiccoretest core platform)
30+
target_link_libraries(msquiccoretest core msquic_platform)
3131
endif()
3232

3333
target_link_libraries(msquiccoretest inc gtest warnings logging base_link)

src/generated/CMakeLists.txt

+9-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,15 @@ if(QUIC_ENABLE_LOGGING)
2323
target_link_libraries(logging PRIVATE inc)
2424

2525
elseif(QUIC_LOGGING_TYPE STREQUAL "lttng")
26-
target_include_directories(logging_inc INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/common)
27-
target_include_directories(logging_inc INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/linux)
28-
target_include_directories(logging_inc INTERFACE ${LTTNGUST_INCLUDE_DIRS})
26+
target_include_directories(logging_inc INTERFACE
27+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/common>
28+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
29+
target_include_directories(logging_inc INTERFACE
30+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/linux>
31+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
32+
target_include_directories(logging_inc INTERFACE
33+
$<BUILD_INTERFACE:${LTTNGUST_INCLUDE_DIRS}>
34+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
2935

3036
FILE(GLOB LOGGING_FILES ${CMAKE_CURRENT_SOURCE_DIR}/linux/*.c)
3137
add_library(logging STATIC ${LOGGING_FILES})

src/inc/CMakeLists.txt

+10-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ target_compile_options(inc INTERFACE ${QUIC_C_FLAGS})
99
target_compile_options(inc INTERFACE $<$<COMPILE_LANGUAGE:CXX>:${QUIC_CXX_FLAGS}>)
1010

1111
target_compile_definitions(inc INTERFACE ${QUIC_COMMON_DEFINES})
12-
target_include_directories(inc INTERFACE ${QUIC_INCLUDE_DIR})
12+
target_include_directories(inc INTERFACE
13+
$<BUILD_INTERFACE:${QUIC_INCLUDE_DIR}>
14+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
1315

1416
target_compile_features(inc INTERFACE cxx_std_17)
1517
target_compile_features(inc INTERFACE c_std_11)
@@ -40,10 +42,13 @@ if(WIN32)
4042
if(QUIC_UWP_BUILD)
4143
target_link_libraries(base_link INTERFACE OneCore ws2_32 ntdll)
4244
elseif(QUIC_GAMECORE_BUILD)
43-
target_link_options(inc INTERFACE ${Console_LinkOptions})
44-
target_compile_options(inc INTERFACE ${Console_ArchOptions})
45-
target_link_directories(inc INTERFACE ${Console_EndpointLibRoot})
46-
target_link_libraries(base_link INTERFACE xgameplatform ntdll advapi32)
45+
target_link_libraries(base_link INTERFACE ntdll advapi32)
46+
if(NOT QUIC_EXTERNAL_TOOLCHAIN)
47+
target_link_options(inc INTERFACE ${Console_LinkOptions})
48+
target_compile_options(inc INTERFACE ${Console_ArchOptions})
49+
target_link_directories(inc INTERFACE ${Console_EndpointLibRoot})
50+
target_link_libraries(base_link INTERFACE xgameplatform)
51+
endif()
4752
else()
4853
target_link_libraries(base_link INTERFACE ws2_32 schannel ntdll bcrypt ncrypt crypt32 iphlpapi advapi32)
4954
endif()

src/perf/bin/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ set_property(TARGET secnetperf PROPERTY FOLDER "${QUIC_FOLDER_PREFIX}perf")
1212
target_link_libraries(secnetperf inc warnings perflib msquic)
1313

1414
if (BUILD_SHARED_LIBS)
15-
target_link_libraries(secnetperf platform)
15+
target_link_libraries(secnetperf msquic_platform)
1616
endif()
1717

1818
target_link_libraries(secnetperf logging base_link)

src/platform/CMakeLists.txt

+19-16
Original file line numberDiff line numberDiff line change
@@ -53,21 +53,21 @@ else()
5353
message(FATAL_ERROR "TLS Provider not configured")
5454
endif()
5555

56-
add_library(platform STATIC ${SOURCES})
56+
add_library(msquic_platform STATIC ${SOURCES})
5757

5858
if("${CX_PLATFORM}" STREQUAL "windows")
5959
target_link_libraries(
60-
platform
60+
msquic_platform
6161
PUBLIC
6262
wbemuuid)
63-
target_link_libraries(platform PUBLIC winmm)
63+
target_link_libraries(msquic_platform PUBLIC winmm)
6464
elseif(QUIC_LINUX_XDP_ENABLED)
6565
find_library(NL_LIB nl-3)
6666
find_library(NL_ROUTE_LIB nl-route-3)
6767
find_library(XDP_LIB libxdp.so)
6868
find_library(BPF_LIB libbpf.so)
69-
target_include_directories(platform PRIVATE /usr/include/xdp)
70-
target_include_directories(platform PRIVATE /usr/include/bpf)
69+
target_include_directories(msquic_platform PRIVATE /usr/include/xdp)
70+
target_include_directories(msquic_platform PRIVATE /usr/include/bpf)
7171
set(XDP_PROG_INCLUDE_DIR "-I/usr/include/bpf")
7272

7373
# building XDP program
@@ -82,7 +82,7 @@ elseif(QUIC_LINUX_XDP_ENABLED)
8282
DEPENDS ${PROJECT_SOURCE_DIR}/src/platform/datapath_raw_xdp_linux_kern.c
8383
)
8484
add_custom_target(xdp_program DEPENDS ${QUIC_OUTPUT_DIR}/datapath_raw_xdp_kern.o)
85-
add_dependencies(platform xdp_program)
85+
add_dependencies(msquic_platform xdp_program)
8686

8787
if (NOT BUILD_SHARED_LIBS)
8888
find_library(ELF_LIB elf) # for static
@@ -97,34 +97,37 @@ elseif(QUIC_LINUX_XDP_ENABLED)
9797
string(REPLACE ".so" ".a" BPF_LIB ${BPF_LIB})
9898
endif()
9999

100-
target_link_libraries(platform PUBLIC ${XDP_LIB} ${BPF_LIB} ${NL_LIB} ${NL_ROUTE_LIB} ${ELF_LIB} ${Z_LIB} ${ZSTD_LIB})
100+
target_link_libraries(msquic_platform PUBLIC ${XDP_LIB} ${BPF_LIB} ${NL_LIB} ${NL_ROUTE_LIB} ${ELF_LIB} ${Z_LIB} ${ZSTD_LIB})
101101
endif()
102102

103-
target_link_libraries(platform PUBLIC inc)
104-
target_link_libraries(platform PRIVATE warnings main_binary_link_args)
103+
target_link_libraries(msquic_platform PUBLIC inc)
104+
target_link_libraries(msquic_platform PRIVATE warnings main_binary_link_args)
105105

106-
set_property(TARGET platform PROPERTY FOLDER "${QUIC_FOLDER_PREFIX}libraries")
106+
set_property(TARGET msquic_platform PROPERTY FOLDER "${QUIC_FOLDER_PREFIX}libraries")
107107

108108
if ("${CX_PLATFORM}" STREQUAL "windows")
109109
target_include_directories(
110-
platform
110+
msquic_platform
111111
PRIVATE
112112
${EXTRA_PLATFORM_INCLUDE_DIRECTORIES}
113113
${PROJECT_SOURCE_DIR}/submodules/xdp-for-windows/published/external)
114114
elseif(QUIC_LINUX_XDP_ENABLED)
115115
include_directories(/usr/include/libnl3)
116-
target_include_directories(platform PRIVATE ${EXTRA_PLATFORM_INCLUDE_DIRECTORIES})
116+
target_include_directories(msquic_platform PRIVATE ${EXTRA_PLATFORM_INCLUDE_DIRECTORIES})
117117
endif()
118118

119119
if (MSVC AND (QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "schannel") AND NOT QUIC_ENABLE_SANITIZERS)
120-
target_compile_options(platform PRIVATE /analyze)
120+
target_compile_options(msquic_platform PRIVATE /analyze)
121121
endif()
122122

123123
if(QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "openssl3")
124-
target_link_libraries(platform PUBLIC OpenSSL)
124+
target_link_libraries(msquic_platform PUBLIC OpenSSL)
125125
if (CX_PLATFORM STREQUAL "darwin")
126-
target_link_libraries(platform PUBLIC "-framework CoreFoundation" "-framework Security")
126+
target_link_libraries(msquic_platform PUBLIC "-framework CoreFoundation" "-framework Security")
127127
endif()
128128
elseif(QUIC_TLS STREQUAL "schannel")
129-
target_link_libraries(platform PUBLIC secur32 onecore)
129+
target_link_libraries(msquic_platform PUBLIC secur32)
130+
if (NOT QUIC_GAMECORE_BUILD)
131+
target_link_libraries(msquic_platform PUBLIC onecore)
132+
endif()
130133
endif()

src/platform/unittest/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ set_property(TARGET msquicplatformtest APPEND PROPERTY BUILD_RPATH "$ORIGIN")
2020
target_link_libraries(msquicplatformtest msquic)
2121

2222
if (BUILD_SHARED_LIBS)
23-
target_link_libraries(msquicplatformtest platform)
23+
target_link_libraries(msquicplatformtest msquic_platform)
2424
endif()
2525

2626
target_link_libraries(msquicplatformtest inc gtest warnings logging base_link)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
cmake_minimum_required(VERSION 3.16)
5+
6+
project(msquic_platform_external)
7+
8+
find_package(msquic REQUIRED)
9+
find_library(MSPLATFORM_LIBRARIES
10+
NAMES msquic_platform)
11+
12+
message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
13+
message(STATUS "MSPLATFORM_LIBRARIES: ${MSPLATFORM_LIBRARIES}")
14+
15+
include(FetchContent)
16+
FetchContent_Declare(
17+
googletest
18+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../submodules/googletest
19+
)
20+
FetchContent_MakeAvailable(googletest)
21+
22+
set(SOURCES
23+
../main.cpp
24+
../CryptTest.cpp
25+
../DataPathTest.cpp
26+
../PlatformTest.cpp
27+
# ../StorageTest.cpp
28+
../TlsTest.cpp
29+
)
30+
31+
if(QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "openssl3")
32+
list(APPEND OTHER_TERGETS OpenSSL)
33+
endif()
34+
35+
add_executable(msquicplatformtest ${SOURCES})
36+
target_include_directories(msquicplatformtest PRIVATE ${CMAKE_INSTALL_PREFIX}/include)
37+
target_link_libraries(msquicplatformtest PRIVATE msquic ${MSPLATFORM_LIBRARIES} ${OTHER_TERGETS} gtest ws2_32 schannel ntdll bcrypt ncrypt crypt32 iphlpapi advapi32 secur32 userenv onecore winmm wbemuuid clang_rt.asan_dbg_dynamic-x86_64 clang_rt.asan_dynamic-x86_64)
38+
target_compile_definitions(msquicplatformtest PRIVATE QUIC_EVENTS_STUB QUIC_LOGS_STUB _DISABLE_VECTOR_ANNOTATION _DISABLE_STRING_ANNOTATION)

src/test/bin/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ set_property(TARGET msquictest APPEND PROPERTY BUILD_RPATH "$ORIGIN")
1616
target_link_libraries(msquictest msquic testlib)
1717

1818
if (BUILD_SHARED_LIBS)
19-
target_link_libraries(msquictest platform)
19+
target_link_libraries(msquictest msquic_platform)
2020
endif()
2121

2222
target_link_libraries(msquictest inc gtest logging base_link)

src/tools/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function(add_quic_tool)
99
target_link_libraries(${targetname} inc warnings msquic)
1010

1111
if (BUILD_SHARED_LIBS)
12-
target_link_libraries(${targetname} platform)
12+
target_link_libraries(${targetname} msquic_platform)
1313
endif()
1414

1515
target_link_libraries(${targetname} logging base_link)

src/tools/attack/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ target_include_directories(quicattack PRIVATE ${PROJECT_SOURCE_DIR}/src/core)
1212
target_link_libraries(quicattack)
1313

1414
if (BUILD_SHARED_LIBS)
15-
target_link_libraries(quicattack core platform)
15+
target_link_libraries(quicattack core msquic_platform)
1616
endif()
1717

1818
target_link_libraries(quicattack logging)

src/tools/pcp/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ set(SOURCES
88
add_quic_tool(quicpcp ${SOURCES})
99

1010
target_include_directories(quicpcp PRIVATE ${PROJECT_SOURCE_DIR}/src/core)
11-
# OK to include platform a second time, will not cause multiple link issues
12-
target_link_libraries(quicpcp core platform)
11+
# OK to include msquic_platform a second time, will not cause multiple link issues
12+
target_link_libraries(quicpcp core msquic_platform)

src/tools/recvfuzz/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ endif()
77
add_quic_tool(recvfuzz recvfuzz.cpp)
88
target_include_directories(recvfuzz PRIVATE ${PROJECT_SOURCE_DIR}/src/core)
99
if (BUILD_SHARED_LIBS)
10-
target_link_libraries(recvfuzz core msquic platform)
10+
target_link_libraries(recvfuzz core msquic msquic_platform)
1111
endif()

submodules/CMakeLists.txt

+5-3
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,9 @@ if (WIN32)
157157
target_include_directories(
158158
OpenSSLQuic
159159
INTERFACE
160-
$<$<CONFIG:Debug>:${OPENSSL_DIR}/debug/include>
161-
$<$<NOT:$<CONFIG:Debug>>:${OPENSSL_DIR}/release/include>
160+
$<BUILD_INTERFACE:$<$<CONFIG:Debug>:${OPENSSL_DIR}/debug/include>
161+
$<$<NOT:$<CONFIG:Debug>>:${OPENSSL_DIR}/release/include>>
162+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
162163
)
163164
target_link_libraries(
164165
OpenSSLQuic
@@ -327,7 +328,8 @@ else()
327328
target_include_directories(
328329
OpenSSLQuic
329330
INTERFACE
330-
${OPENSSL_DIR}/include
331+
$<BUILD_INTERFACE:${OPENSSL_DIR}/include>
332+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
331333
)
332334

333335
target_link_libraries(

0 commit comments

Comments
 (0)