IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 73e3d1fa authored by ralfulrich's avatar ralfulrich
Browse files

Merge branch 'update-cmake'

parents 1dfe2b61 4fa33ff5
No related branches found
No related tags found
No related merge requests found
Pipeline #3160 passed
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 ()
#
......@@ -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@"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment