diff --git a/modules/fluka/CMakeLists.txt b/modules/fluka/CMakeLists.txt index 8c9c17fb44805efad2a301bc822c34a0a02632a8..d760442bfb08a6e62a8a455dea7ce3d5a5574740 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 0599ca987cbdcce74d48f11278fc560e03719b61..61367bce13ef35c14991de0473cd75fa7cfe4926 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 a677ff5812d43036d76521d8613ea8a9e9b7b405..16a0e66f0d34824f0ed173a5a66a759999dab17f 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()