From 4f66134d267987dc06bff4f9367396a6fa20729d Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Tue, 14 Mar 2023 15:43:56 +0100 Subject: [PATCH] fix build when C8_FLUKALIB is undefined --- modules/fluka/CMakeLists.txt | 20 ++++++++++---------- src/modules/fluka/strip_flukahp.sh | 5 +++++ tests/modules/CMakeLists.txt | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/modules/fluka/CMakeLists.txt b/modules/fluka/CMakeLists.txt index 8c9c17fb4..d760442bf 100644 --- a/modules/fluka/CMakeLists.txt +++ b/modules/fluka/CMakeLists.txt @@ -1,15 +1,19 @@ set(C8_FLUKALIB CACHE STRING "path to libflukahp.a") -if (DEFINED C8_FLUKALIB) +if (EXISTS "${C8_FLUKALIB}") set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/fluka) # we remove flrndm_.o from the original libflukahp.a and save the result as libflukahp-norndm.a - add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libflukahp-norndm.a COMMAND ${input_dir}/strip_flukahp.sh ${C8_FLUKALIB} ${CMAKE_BINARY_DIR}) - add_custom_target(generate_libfluka-norndm DEPENDS ${CMAKE_BINARY_DIR}/libflukahp-norndm.a) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a + COMMAND ${input_dir}/strip_flukahp.sh ${C8_FLUKALIB} ${CMAKE_CURRENT_BINARY_DIR} + ) + add_custom_target(generate_libfluka-norndm DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a) add_library(flukahp-norndm STATIC IMPORTED) add_dependencies(flukahp-norndm generate_libfluka-norndm) - set_property(TARGET flukahp-norndm PROPERTY IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/libflukahp-norndm.a) + set_property(TARGET flukahp-norndm PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a) + find_library(MATH_LIBRARY m) target_link_libraries(flukahp-norndm INTERFACE gfortran ${MATH_LIBRARY}) target_include_directories (flukahp-norndm INTERFACE @@ -29,12 +33,6 @@ if (DEFINED C8_FLUKALIB) $<INSTALL_INTERFACE:include/corsika_modules/fluka> ) - set_target_properties ( - fluka - PROPERTIES - POSITION_INDEPENDENT_CODE 1 - ) - install ( FILES fluka.hpp @@ -51,4 +49,6 @@ if (DEFINED C8_FLUKALIB) # add fluka to corsika8 build add_dependencies (CORSIKA8 fluka) target_link_libraries (CORSIKA8 INTERFACE fluka) +else() + message("C8_FLUKALIB not set/invalid, building without FLUKA support") endif() diff --git a/src/modules/fluka/strip_flukahp.sh b/src/modules/fluka/strip_flukahp.sh index 0599ca987..61367bce1 100755 --- a/src/modules/fluka/strip_flukahp.sh +++ b/src/modules/fluka/strip_flukahp.sh @@ -14,6 +14,11 @@ flukalibOrig="$1" target="$2" +if [ ! -r "$flukalibOrig" ]; then + echo "\"$flukalibOrig\" not readable" 1>&2 + exit 1 +fi + tmpdir=`mktemp -d fluka_objectsXXXXXX` echo "extracting objects from $1 into `realpath $tmpdir`..." diff --git a/tests/modules/CMakeLists.txt b/tests/modules/CMakeLists.txt index a677ff581..16a0e66f0 100644 --- a/tests/modules/CMakeLists.txt +++ b/tests/modules/CMakeLists.txt @@ -17,7 +17,7 @@ set (test_modules_sources testSophia.cpp ) -if (DEFINED C8_FLUKALIB) +if (EXISTS "${C8_FLUKALIB}") list(APPEND test_modules_sources "testFluka.cpp") endif() -- GitLab