From 68389ebe7bd5d1e97f54963d4163bd1b55f5b1f4 Mon Sep 17 00:00:00 2001 From: thorstenhater <24411438+thorstenhater@users.noreply.github.com> Date: Thu, 4 Feb 2021 12:02:44 +0100 Subject: [PATCH] Do not build/use dynamic catalogue tests if not built with -fPIC (#1341) Fixes #1340. --- test/unit/CMakeLists.txt | 23 ++++++++++++----------- test/unit/test_mechcat.cpp | 3 +++ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index dfda9efc..b2474313 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -174,16 +174,6 @@ set(unit_sources unit_test_catalogue.cpp ) - -# for unit testing -make_catalogue( - NAME dummy - SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/dummy" - OUTPUT "CAT_DUMMY_SOURCES" - MECHS dummy - ARBOR "${PROJECT_SOURCE_DIR}" - STANDALONE ON) - if(ARB_WITH_GPU) list(APPEND unit_sources test_intrin.cu @@ -215,7 +205,18 @@ endif() add_executable(unit EXCLUDE_FROM_ALL ${unit_sources} ${test_mech_sources}) add_dependencies(unit build_test_mods) add_dependencies(tests unit) -add_dependencies(unit dummy-catalogue) + +if(${CMAKE_POSITION_INDEPENDENT_CODE}) + make_catalogue( + NAME dummy + SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/dummy" + OUTPUT "CAT_DUMMY_SOURCES" + MECHS dummy + ARBOR "${PROJECT_SOURCE_DIR}" + STANDALONE ON) + target_compile_definitions(unit PRIVATE USE_DYNAMIC_CATALOGUES) + add_dependencies(unit dummy-catalogue) +endif() if(ARB_WITH_NVCC) target_compile_options(unit PRIVATE -DARB_CUDA) diff --git a/test/unit/test_mechcat.cpp b/test/unit/test_mechcat.cpp index 2b6b1a64..2809b31d 100644 --- a/test/unit/test_mechcat.cpp +++ b/test/unit/test_mechcat.cpp @@ -291,6 +291,7 @@ TEST(mechcat, names) { } } +#ifdef USE_DYNAMIC_CATALOGUES TEST(mechcat, loading) { EXPECT_THROW(load_catalogue(LIBDIR "/does-not-exist-catalogue.so"), file_not_found_error); EXPECT_THROW(load_catalogue(LIBDIR "/libarbor.a"), bad_catalogue_error); @@ -298,7 +299,9 @@ TEST(mechcat, loading) { EXPECT_NO_THROW(cat = &load_catalogue(LIBDIR "/dummy-catalogue.so")); ASSERT_NE(cat, nullptr); EXPECT_EQ(std::vector<std::string>{"dummy"}, cat->mechanism_names()); + } +#endif TEST(mechcat, derived_info) { auto cat = build_fake_catalogue(); -- GitLab