From cd981918bd31fedeedb2ada9643635e42217b970 Mon Sep 17 00:00:00 2001
From: Maximilian Reininghaus <maximilian.reininghaus@tu-dortmund.de>
Date: Wed, 7 Aug 2024 18:14:54 +0200
Subject: [PATCH] CMake: write generated files only into build tree

---
 src/framework/core/CMakeLists.txt   | 15 ++-------------
 src/modules/epos/CMakeLists.txt     | 12 ++----------
 src/modules/fluka/CMakeLists.txt    |  9 +--------
 src/modules/qgsjetII/CMakeLists.txt | 13 ++-----------
 src/modules/sibyll/CMakeLists.txt   | 13 ++-----------
 src/modules/sophia/CMakeLists.txt   | 11 +----------
 6 files changed, 10 insertions(+), 63 deletions(-)

diff --git a/src/framework/core/CMakeLists.txt b/src/framework/core/CMakeLists.txt
index c6e4473b7..4cbe6cb56 100644
--- a/src/framework/core/CMakeLists.txt
+++ b/src/framework/core/CMakeLists.txt
@@ -1,6 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/framework/core)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/framework/core)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/framework/core )
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -15,8 +14,7 @@ add_custom_command (
           ${input_dir}/ParticleData.xml
           ${input_dir}/NuclearData.xml
           ${input_dir}/ParticleClassNames.xml
-  WORKING_DIRECTORY
-          ${output_dir}
+  WORKING_DIRECTORY ${output_dir}
   COMMENT "Read PYTHIA8 particle data and produce C++ source code GeneratedParticle[...].inc"
   VERBATIM
   )
@@ -28,18 +26,9 @@ set_source_files_properties (
   PROPERTIES GENERATED TRUE
   )
 
-add_custom_command(
-  OUTPUT  ${destination_dir}/GeneratedParticleProperties.inc
-          ${destination_dir}/GeneratedParticleClasses.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/GeneratedParticleProperties.inc ${destination_dir}/GeneratedParticleProperties.inc 
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/GeneratedParticleClasses.inc ${destination_dir}/GeneratedParticleClasses.inc   
+add_custom_target (GenParticlesHeaders
   DEPENDS ${output_dir}/GeneratedParticleProperties.inc
           ${output_dir}/GeneratedParticleClasses.inc
           ${output_dir}/particle_db.pkl
-)
-
-add_custom_target (GenParticlesHeaders
-  DEPENDS ${destination_dir}/GeneratedParticleProperties.inc
-          ${destination_dir}/GeneratedParticleClasses.inc 
   )
 add_dependencies (CORSIKA8 GenParticlesHeaders)
diff --git a/src/modules/epos/CMakeLists.txt b/src/modules/epos/CMakeLists.txt
index 16f2c82b4..1f2ef7d45 100644
--- a/src/modules/epos/CMakeLists.txt
+++ b/src/modules/epos/CMakeLists.txt
@@ -1,6 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/epos)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/modules/epos)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/modules/epos )
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -12,17 +11,10 @@ add_custom_command (
   DEPENDS ${input_dir}/code_generator.py
           ${input_dir}/epos_codes.dat
           GenParticlesHeaders # for particle_db.pkl
-  WORKING_DIRECTORY
-          ${output_dir}/
+  WORKING_DIRECTORY ${output_dir}
   COMMENT "Generate conversion tables for particle codes EPOS <-> CORSIKA"
   VERBATIM
   )
- 
- add_custom_command(
-  OUTPUT  ${destination_dir}/Generated.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/Generated.inc ${destination_dir}/Generated.inc 
-  DEPENDS ${output_dir}/Generated.inc
-)
 
-add_custom_target (SourceDirLinkEpos DEPENDS ${destination_dir}/Generated.inc)
+add_custom_target (SourceDirLinkEpos DEPENDS ${output_dir}/Generated.inc)
 add_dependencies (CORSIKA8 SourceDirLinkEpos)
diff --git a/src/modules/fluka/CMakeLists.txt b/src/modules/fluka/CMakeLists.txt
index aafdda71c..a5e97dee2 100644
--- a/src/modules/fluka/CMakeLists.txt
+++ b/src/modules/fluka/CMakeLists.txt
@@ -1,6 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/fluka)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/modules/fluka)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/modules/fluka )
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -18,11 +17,5 @@ add_custom_command (
   VERBATIM
   )
 
- add_custom_command(
-  OUTPUT  ${destination_dir}/Generated.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/Generated.inc ${destination_dir}/Generated.inc 
-  DEPENDS ${output_dir}/Generated.inc
-)
-
-add_custom_target (SourceDirLinkFLUKA DEPENDS ${destination_dir}/Generated.inc)
+add_custom_target (SourceDirLinkFLUKA DEPENDS ${output_dir}/Generated.inc)
 add_dependencies (CORSIKA8 SourceDirLinkFLUKA)
diff --git a/src/modules/qgsjetII/CMakeLists.txt b/src/modules/qgsjetII/CMakeLists.txt
index eab00a52d..36ef2bac7 100644
--- a/src/modules/qgsjetII/CMakeLists.txt
+++ b/src/modules/qgsjetII/CMakeLists.txt
@@ -1,7 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/qgsjetII)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/modules/qgsjetII)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/modules/qgsjetII )
-
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -14,8 +12,7 @@ add_custom_command (
           ${input_dir}/code_generator.py
           ${input_dir}/qgsjet-II-04-codes.dat
           ${PROJECT_BINARY_DIR}/corsika/framework/core/particle_db.pkl
-  WORKING_DIRECTORY
-          ${output_dir}
+  WORKING_DIRECTORY ${output_dir}
   COMMENT "Generate conversion tables for particle codes QGSJetII <-> CORSIKA"
   VERBATIM
   )
@@ -25,11 +22,5 @@ set_source_files_properties (
   PROPERTIES GENERATED TRUE
 )
 
- add_custom_command(
-  OUTPUT  ${destination_dir}/Generated.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/Generated.inc ${destination_dir}/Generated.inc 
-  DEPENDS ${output_dir}/Generated.inc
-)
-
-add_custom_target (SourceDirLinkQgs DEPENDS ${destination_dir}/Generated.inc)
+add_custom_target (SourceDirLinkQgs DEPENDS ${output_dir}/Generated.inc)
 add_dependencies (CORSIKA8 SourceDirLinkQgs)
diff --git a/src/modules/sibyll/CMakeLists.txt b/src/modules/sibyll/CMakeLists.txt
index 2b7f23595..92f3622ab 100644
--- a/src/modules/sibyll/CMakeLists.txt
+++ b/src/modules/sibyll/CMakeLists.txt
@@ -1,7 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/sibyll)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/modules/sibyll)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/modules/sibyll )
-
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -14,8 +12,7 @@ add_custom_command (
           ${input_dir}/sibyll_codes.dat
           ${PROJECT_BINARY_DIR}/corsika/framework/core/particle_db.pkl
           GenParticlesHeaders
-  WORKING_DIRECTORY
-          ${output_dir}/
+  WORKING_DIRECTORY ${output_dir}
   COMMENT "Generate conversion tables for particle codes SIBYLL <-> CORSIKA"
   VERBATIM
   )
@@ -25,11 +22,5 @@ set_source_files_properties (
   PROPERTIES GENERATED TRUE
 )
 
-add_custom_command(
-  OUTPUT  ${destination_dir}/Generated.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/Generated.inc ${destination_dir}/Generated.inc 
-  DEPENDS ${output_dir}/Generated.inc
-)
-
-add_custom_target (SourceDirLinkSib DEPENDS ${destination_dir}/Generated.inc)
+add_custom_target (SourceDirLinkSib DEPENDS ${output_dir}/Generated.inc)
 add_dependencies (CORSIKA8 SourceDirLinkSib)
diff --git a/src/modules/sophia/CMakeLists.txt b/src/modules/sophia/CMakeLists.txt
index e57b3b7f0..501a33f8f 100644
--- a/src/modules/sophia/CMakeLists.txt
+++ b/src/modules/sophia/CMakeLists.txt
@@ -1,7 +1,5 @@
 set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/sophia)
 set (output_dir ${PROJECT_BINARY_DIR}/corsika/modules/sophia)
-set (destination_dir ${PROJECT_SOURCE_DIR}/corsika/modules/sophia )
-
 
 file (MAKE_DIRECTORY ${output_dir})
 
@@ -25,12 +23,5 @@ set_source_files_properties (
   PROPERTIES GENERATED TRUE
 )
 
-add_custom_command(
-  OUTPUT  ${destination_dir}/Generated.inc
-  COMMAND ${CMAKE_COMMAND} -E copy ${output_dir}/Generated.inc ${destination_dir}/Generated.inc 
-  DEPENDS ${output_dir}/Generated.inc
-)
-
-
-add_custom_target (SourceDirLinkSoph DEPENDS ${destination_dir}/Generated.inc)
+add_custom_target (SourceDirLinkSoph DEPENDS ${output_dir}/Generated.inc)
 add_dependencies (CORSIKA8 SourceDirLinkSoph)
-- 
GitLab