From 4fa33ff59c500286d33d3b7c60359cf3b980301f Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Wed, 6 Jan 2021 22:06:12 +0100 Subject: [PATCH] updates --- CMakeLists.txt | 104 ++++++++++++++++++++++++++++++--------- src/conexConfigAuto.h.in | 4 +- 2 files changed, 82 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 908f127..2ba3477 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,53 +1,67 @@ cmake_minimum_required (VERSION 3.1) -# + project (CxRooot) -# + enable_language (Fortran) set (CMAKE_Fortran_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/src/ -I${CMAKE_CURRENT_BINARY_DIR}/src/ -I${CMAKE_CURRENT_SOURCE_DIR}/src/urqmd13/") message ("***** Configuring CxRoot/CONEX version") -# -# + + #+++++++++++++++++++++++++++++ -# Location +# Location, saved in conexConfigAuto.h # if (TARGET CorsikaData) - set (TABDIR ${CorsikaData_DIR}) + set (TABDIR "${CorsikaData_DIR}/") else (TARGET CorsikaData) set (TABDIR_PRE "${CMAKE_CURRENT_SOURCE_DIR}/tabs") if (DEFINED ENV{CORSIKA_DATA}) - set (TABDIR_PRE "$ENV{CORSIKA_DATA}") + set (TABDIR_PRE "$ENV{CORSIKA_DATA}/CONEX") else () if (DEFINED ENV{CONEXTABROOT}) set (TABDIR_PRE "$ENV{CONEXTABROOT}") endif () endif () - set (TABDIR "${TABDIR_PRE}") + set (TABDIR "${TABDIR_PRE}/") add_subdirectory (${TABDIR} tabs) endif (TARGET CorsikaData) -# -# + +set (CFG_CONEX_CONFIG_PATH "${CMAKE_CURRENT_BINARY_DIR}/cfg/") +configure_file (src/conexConfigAuto.h.in src/conexConfigAuto.h) + + #+++++++++++++++++++++++++++++ # Config file generation # file (GLOB CONFIG_FILES "${PROJECT_SOURCE_DIR}/src/*.paramin") + foreach (CONFIG_FILE_ABS ${CONFIG_FILES}) get_filename_component (CONFIG_FILE ${CONFIG_FILE_ABS} NAME) string (REPLACE paramin param CONFIG_OUT ${CONFIG_FILE}) - message (INFO "==[make]==> generating cfg/${CONFIG_OUT} from : src/${CONFIG_FILE}") + message ("==[make]==> generating cfg/${CONFIG_OUT} from : src/${CONFIG_FILE}") set (CONEXTABROOT ${TABDIR}) set (BZ2 ".bz2") configure_file (src/${CONFIG_FILE} cfg/${CONFIG_OUT}) endforeach () -# -configure_file (src/conexConfigAuto.h.in src/conexConfigAuto.h) -# -# + + #+++++++++++++++++++++++++++++ # Model selection, and also library generation # -set (ALL_MODELS epos qgsjet qgsjetII qgsjetIII dpm sibyll) -set (MODELS epos sibyll qgsjet qgsjetII dpmjetIII) -# +set (ALL_MODELS + epos + qgsjet + qgsjetII + qgsjetIII + dpm + sibyll + ) + +# we only build and use SIBYLL now, there is not yet +# a mechanism to dynamically change that +set (MODELS + sibyll + ) + # Our simplified "dict": set (DEF_epos __EPOS__) set (DEF_sibyll __SIBYLL21__) @@ -55,14 +69,24 @@ set (DEF_qgsjetII __QGSJETII__) set (DEF_qII __QGSJETII__) set (DEF_dpmjet __DPMJET__) set (DEF_qgsjet __QGSJET__) -# -set (CONEX_LIB_SOURCES src/conex_sub.F src/conex_mod.F src/conex2r.F src/leadingInteractionsData.cc src/conexConfigAuto.h) -# + +# Another simplified "dict": +set (OBJ_sibyll Sibyll_static) + +set (CONEX_LIB_SOURCES + src/conex_sub.F + src/conex_mod.F + src/conex2r.F + src/leadingInteractionsData.cc + src/conexConfigAuto.h + ) + foreach (MODEL ${MODELS}) - add_library (libCONEX${MODEL} STATIC ${CONEX_LIB_SOURCES}) + message ("adding: libCONEX${MODEL}") + add_library (CONEX${MODEL} STATIC ${CONEX_LIB_SOURCES}) set (MODEL_DEF DEF_${MODEL}) set_target_properties ( - libCONEX${MODEL} + CONEX${MODEL} PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src/;${CMAKE_CURRENT_BINARY_DIR}/src/;${CMAKE_CURRENT_SOURCE_DIR}/src/urqmd13/" COMPILE_OPTIONS "-std=legacy;-Wfunction-elimination;-w;-fno-second-underscore;-fno-automatic;-Wno-conversion" @@ -70,5 +94,37 @@ foreach (MODEL ${MODELS}) POSITION_INDEPENDENT_CODE 1 LINK_LIBRARIES CorsikaData ) + + target_include_directories ( + CONEX${MODEL} + PUBLIC + $<BUILD_INTERFACE: ${CMAKE_CURRENT_SOURCE_DIR}/src;${CMAKE_CURRENT_BINARY_DIR}/src> + $<INSTALL_INTERFACE: ${CMAKE_CURRENT_SOURCE_DIR}/src;${CMAKE_CURRENT_BINARY_DIR}/src> + ) + + # make sure to link to actual model library + target_link_libraries ( + CONEX${MODEL} + ${OBJ_${MODEL}} + UrQMD_static # AND urqmd + ) + + # + # conex also read tables from corsika-data + # + if (TARGET CorsikaData) + target_link_libraries ( + CONEX${MODEL} + CorsikaData + ) + endif (TARGET CorsikaData) + + # + # add to combined CORSIKA8 target + # + add_dependencies (CORSIKA8 CONEX${MODEL}) + target_link_libraries (CORSIKA8 INTERFACE CONEX${MODEL}) + endforeach () -# + + diff --git a/src/conexConfigAuto.h.in b/src/conexConfigAuto.h.in index 3e09a11..8d8f266 100644 --- a/src/conexConfigAuto.h.in +++ b/src/conexConfigAuto.h.in @@ -2,7 +2,7 @@ #cmakedefine CONEX_EXTENSIONS 1 -#define CONEX_CONFIG_PATH @CFG_CONEX_CONFIG_PATH@ +#define CONEX_CONFIG_PATH "@CFG_CONEX_CONFIG_PATH@" -#define CONEX_DATA_PATH @TABDIR@ +#define CONEX_DATA_PATH "@TABDIR@" -- GitLab