https://github.com/Yubico/libfido2/pull/579 From c359e5dba24ae7b44cc0d61fb7c00e652465853b Mon Sep 17 00:00:00 2001 From: Silke Hofstra Date: Fri, 6 May 2022 15:36:02 +0200 Subject: [PATCH 1/3] regress: link against chosen library Compile `regress` against `${_FIDO2_LIBRARY}` so it links against the shared library when building with `BUILD_STATIC_LIBS=OFF`. --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -6,7 +6,7 @@ add_custom_target(regress) macro(add_regress_test NAME SOURCES) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} fido2) + target_link_libraries(${NAME} ${_FIDO2_LIBRARY}) add_test(${NAME} ${NAME}) add_dependencies(regress ${NAME}) endmacro() @@ -17,6 +17,7 @@ if(MSVC AND BUILD_SHARED_LIBS) "${CBOR_BIN_DIRS}/${CBOR_LIBRARIES}.dll" "${CRYPTO_BIN_DIRS}/${CRYPTO_LIBRARIES}.dll" "${ZLIB_BIN_DIRS}/${ZLIB_LIBRARIES}.dll" + "$" "${CMAKE_CURRENT_BINARY_DIR}") endif() From a5413255cb0dd4579faf0dda0ce1b3e45db398e9 Mon Sep 17 00:00:00 2001 From: Silke Hofstra Date: Mon, 9 May 2022 10:56:29 +0200 Subject: [PATCH 3/3] regress: run compression test against static lib only --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -4,13 +4,22 @@ add_custom_target(regress) -macro(add_regress_test NAME SOURCES) +macro(add_regress_test_common NAME SOURCES) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} ${_FIDO2_LIBRARY}) add_test(${NAME} ${NAME}) add_dependencies(regress ${NAME}) endmacro() +macro(add_regress_test NAME SOURCES) + add_regress_test_common(${NAME} ${SOURCES}) + target_link_libraries(${NAME} ${_FIDO2_LIBRARY}) +endmacro() + +macro(add_regress_static_test NAME SOURCES) + add_regress_test_common(${NAME} ${SOURCES}) + target_link_libraries(${NAME} fido2) +endmacro() + if(MSVC AND BUILD_SHARED_LIBS) add_custom_command(TARGET regress POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy @@ -33,13 +42,17 @@ else() endif() add_regress_test(regress_assert assert.c) -add_regress_test(regress_compress compress.c) add_regress_test(regress_cred cred.c) add_regress_test(regress_dev dev.c) add_regress_test(regress_eddsa eddsa.c) add_regress_test(regress_es256 es256.c) add_regress_test(regress_rs256 rs256.c) +# Run these tests only against the static library +if(BUILD_STATIC_LIBS) + add_regress_static_test(regress_compress compress.c) +endif() + if(MINGW) # needed for nanosleep() in mingw target_link_libraries(regress_dev winpthread)