Skip to content

Commit 77ceb22

Browse files
authored
Fix #2674: Ensure OpenSSL linkage for final app on Linux
Due to dependency propagation rules in CMake, OpenSSL::SSL was not linked to the final executable when building on Linux. This change ensures the linkage is explicit so SSL symbols are resolved.
1 parent 11d27bd commit 77ceb22

File tree

4 files changed

+13
-17
lines changed

4 files changed

+13
-17
lines changed

3rdparty/CMakeLists.txt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -205,18 +205,7 @@ if(AX_WITH_JPEG AND NOT WINRT AND NOT EMSCRIPTEN)
205205
ax_add_3rd(jpeg-turbo)
206206
endif()
207207

208-
add_subdirectory(openssl)
209-
210-
if(ANDROID OR LINUX)
211-
target_link_libraries(OpenSSL::SSL INTERFACE OpenSSL::Crypto)
212-
target_link_libraries(3rdparty INTERFACE OpenSSL::SSL)
213-
else()
214-
target_link_libraries(3rdparty
215-
INTERFACE OpenSSL::Crypto
216-
INTERFACE OpenSSL::SSL)
217-
endif()
218-
219-
target_compile_definitions(3rdparty INTERFACE OPENSSL_SUPPRESS_DEPRECATED=1)
208+
ax_add_3rd(openssl TARGETS OpenSSL::SSL)
220209

221210
if(AX_WITH_WEBP)
222211
ax_add_3rd(webp)
@@ -260,10 +249,6 @@ endif()
260249

261250
if(AX_WITH_CURL AND NOT EMSCRIPTEN)
262251
ax_add_3rd(curl)
263-
264-
if(ANDROID OR LINUX)
265-
target_link_libraries(curl INTERFACE OpenSSL::SSL)
266-
endif()
267252
endif()
268253

269254
if(AX_ENABLE_AUDIO)

3rdparty/curl/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ else()
2929
IMPORTED_LOCATION "${curl_LIB_DIR}/lib${lib_name}.a"
3030
)
3131
endif()
32+
33+
if(ANDROID OR LINUX)
34+
target_link_libraries(curl INTERFACE OpenSSL::SSL)
35+
endif()

3rdparty/openssl/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,7 @@ set_openssl_sub_target(${target_name})
5555
# -----sub target 2: crypto-----
5656
set(target_name OpenSSL::Crypto crypto)
5757
set_openssl_sub_target(${target_name})
58+
59+
# Ensure OpenSSL::SSL automatically propagates its dependency on OpenSSL::Crypto
60+
target_link_libraries(OpenSSL::SSL INTERFACE OpenSSL::Crypto)
61+
target_compile_definitions(OpenSSL::SSL INTERFACE OPENSSL_SUPPRESS_DEPRECATED=1)

3rdparty/yasio/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
set(lib_name yasio)
32
set(target_name ${lib_name})
43

@@ -40,3 +39,7 @@ if(kcp_SOURCE_DIR)
4039
target_compile_definitions(${target_name} PUBLIC YASIO_ENABLE_KCP=1)
4140
target_include_directories(${target_name} PUBLIC ${kcp_SOURCE_DIR})
4241
endif()
42+
43+
if(ANDROID OR LINUX)
44+
target_link_libraries(yasio INTERFACE OpenSSL::SSL)
45+
endif()

0 commit comments

Comments
 (0)