From 92e124c00756d27f120f40d151bf9808d40d0ace Mon Sep 17 00:00:00 2001 From: Gregory Robertson Date: Tue, 10 Jan 2023 07:21:05 -0500 Subject: [PATCH 1/2] Statically link openssl on all operating systems --- CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d1ff15b01b..16375d9d7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,9 +63,7 @@ target_include_directories(Etterna PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) ## Package Includes ### OpenSSL is not used directly by our program, but we have to use OpenSSL first ### in order to statically link. Once find_package is run once, it's results are cached -if (WIN32 OR APPLE) - set(OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "" FORCE) -endif() +set(OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "" FORCE) set(OPENSSL_MSVC_STATIC_RT ON CACHE BOOL "" FORCE) find_package(OpenSSL REQUIRED) From 97532c4714cbd7ca10fb4fc27bcd4ec906eff259 Mon Sep 17 00:00:00 2001 From: Gregory Robertson Date: Tue, 10 Jan 2023 07:40:54 -0500 Subject: [PATCH 2/2] Make build first try static link, if fails force dynamic link OpenSSL --- CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 16375d9d7b..090a05497c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,10 +63,16 @@ target_include_directories(Etterna PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) ## Package Includes ### OpenSSL is not used directly by our program, but we have to use OpenSSL first ### in order to statically link. Once find_package is run once, it's results are cached -set(OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "" FORCE) +set(OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "") set(OPENSSL_MSVC_STATIC_RT ON CACHE BOOL "" FORCE) -find_package(OpenSSL REQUIRED) +find_package(OpenSSL) +# If a static version of OpenSSL cannot be found then try a dynamic link, if that fails then error (REQUIRED) +if(NOT OPENSSL_FOUND) + set(OPENSSL_USE_STATIC_LIBS OFF CACHE BOOL "" FORCE) + find_package(OpenSSL REQUIRED) +endif() + find_package(Threads REQUIRED) target_link_libraries(Etterna PRIVATE Threads::Threads) target_link_libraries(Etterna PRIVATE OpenSSL::SSL)