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