Skip to content

Commit fa042fd

Browse files
committed
Use -DENABLE_STATIC_LIB:BOOL=ON and -DENABLE_SHARED_LIB:BOOL=OFF to
build only static. ngtcp2/nghttp2/nghttp3 ignore BUILD_SHARES(STATIC)_LIBS * Change project dependencies structure Signed-off-by: drslebedev <dr.s.lebedev@gmail.com>
1 parent 7264c3f commit fa042fd

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

cmake/DependenciesNative.cmake

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,14 @@ ExternalProject_Add(Nghttp2Project
4747
-DENABLE_HTTP3:BOOL=OFF
4848
-DENABLE_DEBUG:BOOL=${ENABLE_NGHTTP_DEBUG}
4949
-DBUILD_STATIC_LIBS:BOOL=ON
50-
-DBUILD_SHARED_LIBS:BOOL=OFF
50+
-DBUILD_SHARED_LIBS:BOOL=OFF
51+
-DENABLE_STATIC_LIB:BOOL=ON
52+
-DENABLE_SHARED_LIB:BOOL=OFF
5153
-DENABLE_DOC:BOOL=OFF
5254
)
5355

5456
add_library(nghttp2-static STATIC IMPORTED GLOBAL)
57+
target_link_libraries(nghttp2-static INTERFACE ngtcp2-static ngtcp2-crypto-ossl-static)
5558
set_target_properties(nghttp2-static PROPERTIES
5659
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/_deps/nghttp2-install/${CMAKE_INSTALL_LIBDIR}/libnghttp2.a"
5760
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/_deps/nghttp2-install/include"
@@ -71,8 +74,17 @@ ExternalProject_Add(Nghttp3Project
7174
-DENABLE_DEBUG:BOOL=${ENABLE_NGHTTP_DEBUG}
7275
-DBUILD_STATIC_LIBS:BOOL=ON
7376
-DBUILD_SHARED_LIBS:BOOL=OFF
77+
-DENABLE_STATIC_LIB:BOOL=ON
78+
-DENABLE_SHARED_LIB:BOOL=OFF
7479
-DENABLE_DOC:BOOL=OFF
7580
)
81+
add_library(nghttp3-static STATIC IMPORTED GLOBAL)
82+
target_link_libraries(nghttp3-static INTERFACE ngtcp2-static ngtcp2-crypto-ossl-static)
83+
set_target_properties(nghttp3-static PROPERTIES
84+
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/_deps/nghttp3-install/${CMAKE_INSTALL_LIBDIR}/libnghttp3.a"
85+
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/_deps/nghttp3-install/include"
86+
)
87+
add_dependencies(nghttp3-static Nghttp3Project)
7688

7789
ExternalProject_Add(NgTcp2Project
7890
GIT_REPOSITORY https://github.com/ngtcp2/ngtcp2.git
@@ -90,30 +102,27 @@ ExternalProject_Add(NgTcp2Project
90102
-DENABLE_DEBUG:BOOL=${ENABLE_NGHTTP_DEBUG}
91103
-DBUILD_STATIC_LIBS:BOOL=ON
92104
-DBUILD_SHARED_LIBS:BOOL=OFF
105+
-DENABLE_STATIC_LIB:BOOL=ON
106+
-DENABLE_SHARED_LIB:BOOL=OFF
93107
DEPENDS openssl-crypto-static openssl-ssl-static
94108
)
95109

96110
add_library(ngtcp2-static STATIC IMPORTED GLOBAL)
111+
target_link_libraries(ngtcp2-static INTERFACE openssl-ssl-static openssl-crypto-static)
97112
set_target_properties(ngtcp2-static PROPERTIES
98113
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/_deps/ngtcp2-install/${CMAKE_INSTALL_LIBDIR}/libngtcp2.a"
99114
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/_deps/ngtcp2-install/include"
100115
)
101116
add_dependencies(ngtcp2-static NgTcp2Project)
102117

103118
add_library(ngtcp2-crypto-ossl-static STATIC IMPORTED GLOBAL)
119+
target_link_libraries(ngtcp2-crypto-ossl-static INTERFACE openssl-ssl-static openssl-crypto-static)
104120
set_target_properties(ngtcp2-crypto-ossl-static PROPERTIES
105121
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/_deps/ngtcp2-install/${CMAKE_INSTALL_LIBDIR}/libngtcp2_crypto_ossl.a"
106122
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/_deps/ngtcp2-install/include"
107123
)
108124
add_dependencies(ngtcp2-crypto-ossl-static NgTcp2Project)
109125

110-
add_library(nghttp3-static STATIC IMPORTED GLOBAL)
111-
set_target_properties(nghttp3-static PROPERTIES
112-
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/_deps/nghttp3-install/${CMAKE_INSTALL_LIBDIR}/libnghttp3.a"
113-
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/_deps/nghttp3-install/include"
114-
)
115-
add_dependencies(nghttp3-static Nghttp3Project)
116-
117126
add_library(mustache INTERFACE)
118127
target_include_directories(mustache INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/kainjow)
119128
add_library(mustache::mustache ALIAS mustache)

src/rest/CMakeLists.txt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
add_library(rest INTERFACE
2-
include/rest/RestUtils.hpp
2+
include/rest/RestUtils.hpp
33
)
44

55
target_include_directories(rest INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include/>)
66
target_link_libraries(rest
7-
INTERFACE
8-
nghttp2-static
9-
nghttp3-static
10-
ngtcp2-static
11-
ngtcp2-crypto-ossl-static
12-
openssl-ssl-static
13-
openssl-crypto-static
7+
INTERFACE
8+
nghttp2-static
9+
nghttp3-static
1410
)
1511

1612
install(
17-
TARGETS rest
18-
EXPORT opencmwTargets
19-
PUBLIC_HEADER DESTINATION include/opencmw
13+
TARGETS rest
14+
EXPORT opencmwTargets
15+
PUBLIC_HEADER DESTINATION include/opencmw
2016
)

0 commit comments

Comments
 (0)