From 75449a800a423cd1d5c7e50f39e497a4992e2ffe Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Wed, 4 Nov 2020 10:04:05 +0100 Subject: [PATCH] added cmake file for CONEX. Much better! --- CMakeLists.txt | 74 ++++++++++++++++++++++++++++++++++++++++ src/conexConfigAuto.h.in | 8 +++++ 2 files changed, 82 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 src/conexConfigAuto.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..eb7247d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,74 @@ +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") +# +# +# +set (TABDIR_PRE "${CMAKE_CURRENT_SOURCE_DIR}/tabs") +if (DEFINED ENV{CORSIKA_DATA}) + set (TABDIR_PRE "$ENV{CORSIKA_DATA}") +else () + if (DEFINED ENV{CONEXTABROOT}) + set (TABDIR_PRE "$ENV{CONEXTABROOT}") + endif () +endif () +set (TABDIR "${TABDIR_PRE}") +#ifneq ($(shell echo $(TABDIR_PRE) | egrep .+[^\/]$), ) +# TABDIR := $(TABDIR_PRE)/ +#endif + +set (CONEX_LIB_SOURCES src/conex_sub.F src/conex_mod.F src/conex2r.F src/leadingInteractionsData.cc src/conexConfigAuto.h) + +if (NOT TARGET CorsikaData) + add_subdirectory (${TABDIR}/readLib data) +endif (NOT TARGET CorsikaData) + +if (CorsikaDataWithBoost) + set (BZ2 "") + set (conex_boost "NO_BOOST;") +else (CorsikaDataWithBoost) + set (BZ2 ".bz2") + set (conex_boost ";") +endif (CorsikaDataWithBoost) + +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}") + set (CONEXTABROOT ${TABDIR}) + configure_file (src/${CONFIG_FILE} cfg/${CONFIG_OUT}) +endforeach () + +configure_file (src/conexConfigAuto.h.in src/conexConfigAuto.h) +# +# +set (ALL_MODELS epos qgsjet qgsjetII qgsjetIII dpm sibyll) +set (MODELS epos sibyll qgsjet qgsjetII dpmjetIII) +# +# Our simplified "dict": +set (DEF_epos __EPOS__) +set (DEF_sibyll __SIBYLL21__) +set (DEF_qgsjetII __QGSJETII__) +set (DEF_qII __QGSJETII__) +set (DEF_dpmjet __DPMJET__) +set (DEF_qgsjet __QGSJET__) +# +foreach (MODEL ${MODELS}) + add_library (libCONEX${MODEL} STATIC ${CONEX_LIB_SOURCES}) + set (MODEL_DEF DEF_${MODEL}) + set_target_properties( + libCONEX${MODEL} + PROPERTIES + INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src/;${CMAKE_CURRENT_BINARY_DIR}/src/;${CMAKE_CURRENT_SOURCE_DIR}/src/urqmd13/;${TABDIR}/readLib/" + Fortran_COMPILE_FLAGS -std=legacy -Wfunction-elimination -w -fno-second-underscore -fno-automatic + COMPILE_DEFINITIONS "${${MODEL_DEF}};CX_NO_ROOT;CORSIKA_8;__CORSIKA8__;__URQMD__;__CXSUB__;${conex_boost}CORSIKA_DATA=${CORSIKA_DATA}" + POSITION_INDEPENDENT_CODE 1 + LINK_LIBRARIES CorsikaData + ) +endforeach () +# diff --git a/src/conexConfigAuto.h.in b/src/conexConfigAuto.h.in new file mode 100644 index 0000000..3e09a11 --- /dev/null +++ b/src/conexConfigAuto.h.in @@ -0,0 +1,8 @@ +#pragma once + +#cmakedefine CONEX_EXTENSIONS 1 + +#define CONEX_CONFIG_PATH @CFG_CONEX_CONFIG_PATH@ + +#define CONEX_DATA_PATH @TABDIR@ + -- GitLab