From 1bc6d11ef4f5be8be9797ec5ba03b4c583ea1056 Mon Sep 17 00:00:00 2001 From: Spencer Wilson Date: Wed, 13 Mar 2024 05:56:00 -0400 Subject: [PATCH] Always build "internal" library as static (#1725) * Always build oqs-internal library as static Signed-off-by: Spencer Wilson --- src/CMakeLists.txt | 2 +- tests/CMakeLists.txt | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1f9ed06e5..51e887fee 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,7 +63,7 @@ add_library(oqs kem/kem.c ${COMMON_OBJS}) # Internal library to be used only by test programs -add_library(oqs-internal ${INTERNAL_OBJS}) +add_library(oqs-internal STATIC ${INTERNAL_OBJS}) if(DEFINED SANITIZER_LD_FLAGS) target_link_libraries(oqs PUBLIC ${SANITIZER_LD_FLAGS}) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d9da81647..eea2cd208 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -64,6 +64,10 @@ target_link_libraries(example_kem PRIVATE ${TEST_DEPS}) add_executable(kat_kem kat_kem.c test_helpers.c) target_link_libraries(kat_kem PRIVATE ${TEST_DEPS}) +if(CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL "Windows" AND BUILD_SHARED_LIBS) + # workaround for Windows .dll cross-compiling + target_link_options(kat_kem PRIVATE -Wl,--allow-multiple-definition) +endif() add_executable(test_kem test_kem.c) target_link_libraries(test_kem PRIVATE ${TEST_DEPS}) @@ -82,6 +86,10 @@ target_link_libraries(example_sig PRIVATE ${TEST_DEPS}) add_executable(kat_sig kat_sig.c test_helpers.c) target_link_libraries(kat_sig PRIVATE ${TEST_DEPS}) +if(CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL "Windows" AND BUILD_SHARED_LIBS) + # workaround for Windows .dll cross-compiling + target_link_options(kat_sig PRIVATE -Wl,--allow-multiple-definition) +endif() add_executable(test_sig test_sig.c) target_link_libraries(test_sig PRIVATE ${TEST_DEPS})