From 4b9cb47ee254c923110aa79b2df4e88ad3516924 Mon Sep 17 00:00:00 2001
From: Ben Morgan <ben.morgan@warwick.ac.uk>
Date: Mon, 24 Apr 2023 11:01:38 +0100
Subject: [PATCH] Rationalize FullSimLight cmake script

TODO: NEEDS UPDATE AFTER REBASE
---
 FullSimLight/CMakeLists.txt | 303 ++++++++++++------------------------
 1 file changed, 102 insertions(+), 201 deletions(-)

diff --git a/FullSimLight/CMakeLists.txt b/FullSimLight/CMakeLists.txt
index efe7f7744..bdbd4c747 100644
--- a/FullSimLight/CMakeLists.txt
+++ b/FullSimLight/CMakeLists.txt
@@ -8,44 +8,44 @@ project( "FullSimLight" )
 
 #Set up the project. Check if we build it with GeoModel or individually
 if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
-    # I am top-level project.
-    # Make the root module directory visible to CMake.
-    list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake )
-    # get global GeoModel version
-    include( GeoModel-version ) 
-    # set the project, with the version taken from the GeoModel parent project
-    project( "FullSimLight" VERSION ${GeoModel_VERSION} LANGUAGES CXX )
-    # Define color codes for CMake messages
-    include( cmake_colors_defs )
-    # Warn the users about what they are doing
-    message(STATUS "${BoldGreen}Building ${PROJECT_NAME} individually, as a top-level project.${ColourReset}")
-    # Set a default build type
-    include( BuildType )
-    # Set default build and C++ options
-    include( configure_cpp_options )
-    set( CMAKE_FIND_FRAMEWORK "LAST" CACHE STRING
-         "Framework finding behaviour on macOS" )
-    # Set up how the project handle some of its dependenices. Either by picking them
-    # up from the environment, or building them itself.
-    if( NOT TARGET JSONExt )
-        include( SetupJSON )
-    endif()
-    if( NOT TARGET XercesCBuiltIn )
-        include( SetupXercesC )
-    endif()
-    # Find the base GeoModel packages, which must be installed on the target system already
-    find_package( GeoModelCore REQUIRED ${GeoModel_VERSION} )
-    find_package( GeoModelIO REQUIRED ${GeoModel_VERSION} )
-    find_package( GeoModelG4 REQUIRED ${GeoModel_VERSION} )
-    # Set a flag to steer the  of the subpackages
-    set( ${PROJECT_NAME}_INDIVIDUAL_BUILD ON )
-    # Print Build Info on screen
-    include( PrintBuildInfo )
+  # I am top-level project.
+  # Make the root module directory visible to CMake.
+  list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake )
+  # get global GeoModel version
+  include( GeoModel-version ) 
+  # set the project, with the version taken from the GeoModel parent project
+  project( "FullSimLight" VERSION ${GeoModel_VERSION} LANGUAGES CXX )
+  # Define color codes for CMake messages
+  include( cmake_colors_defs )
+  # Warn the users about what they are doing
+  message(STATUS "${BoldGreen}Building ${PROJECT_NAME} individually, as a top-level project.${ColourReset}")
+  # Set a default build type
+  include( BuildType )
+  # Set default build and C++ options
+  include( configure_cpp_options )
+  set( CMAKE_FIND_FRAMEWORK "LAST" CACHE STRING
+       "Framework finding behaviour on macOS" )
+  # Set up how the project handle some of its dependenices. Either by picking them
+  # up from the environment, or building them itself.
+  if( NOT TARGET JSONExt )
+      include( SetupJSON )
+  endif()
+  if( NOT TARGET XercesCBuiltIn )
+      include( SetupXercesC )
+  endif()
+  # Find the base GeoModel packages, which must be installed on the target system already
+  find_package( GeoModelCore REQUIRED ${GeoModel_VERSION} )
+  find_package( GeoModelIO REQUIRED ${GeoModel_VERSION} )
+  find_package( GeoModelG4 REQUIRED ${GeoModel_VERSION} )
+  # Set a flag to steer the  of the subpackages
+  set( ${PROJECT_NAME}_INDIVIDUAL_BUILD ON )
+  # Print Build Info on screen
+  include( PrintBuildInfo )
 else()
-    # I am called from other project with add_subdirectory().
-    message( STATUS "Building ${PROJECT_NAME} as part of the root GeoModel project.")
-    # Set the project
-    project( "FullSimLight" VERSION ${GeoModel_VERSION} LANGUAGES CXX )
+  # I am called from other project with add_subdirectory().
+  message( STATUS "Building ${PROJECT_NAME} as part of the root GeoModel project.")
+  # Set the project
+  project( "FullSimLight" VERSION ${GeoModel_VERSION} LANGUAGES CXX )
 endif()
 
 
@@ -57,56 +57,37 @@ find_package(Geant4 REQUIRED)
 message( STATUS "Found Geant4: ${Geant4_INCLUDE_DIR}")
 #----------------------------------------------------------------------------
 
-
 # Support for the HepMC3 exchange format
 # This is OFF by default, but it can be enbled by the user if used/needed;
 # for that, of course, HepMC3 must be installed on the system.
 option(GEOMODEL_USE_HEPMC3 "Build GeoModel tools with support for the HepMC3 exchancge format (Note: HepMC3 must be installed on the target machine)" OFF )
 if(GEOMODEL_USE_HEPMC3)
-    find_package(HepMC3 REQUIRED) # if support for HEPMC3 is enabled, it must be installed.
-    if(HepMC3_FOUND)
-        message( STATUS "Found HepMC3 (${HEPMC3_INCLUDE_DIR}), and support for HepMC3 is enabled; so, support for it will be compiled.")
-        add_compile_definitions( USE_HEPMC3 )
-    endif()
-else()
-    message(STATUS "! NOTE ==> The support for HepMC3 is disabled by default, and it is not compiled at the moment. However, it can be enabled by the user by giving the option '-DGEOMODEL_USE_HEPMC3=1' to CMake; in that case, you must be sure HepMC3 is installed on the system.")
+  find_package(HepMC3 REQUIRED) # required by default, but it can be disabled 
 endif()
-# If HepMC3 is not found, weather it is enabled or not by the user, 
-# we remove from the build the sources that use it
-if( NOT HepMC3_FOUND)
-    file(GLOB hepmc3src ${PROJECT_SOURCE_DIR}/src/HepMC3*.cc)
-    #message("Removing those HepMC3-related sources: ${hepmc3src}") # debug msg
-    list(REMOVE_ITEM sources ${hepmc3src})
-    #message("new sources without HepMC3 support: ${sources}") # debug msg
+if(HepMC3_FOUND)
+  add_compile_definitions( USE_HEPMC3 )
 endif()
 
+
 # Support for Pythia event generator
 # This is OFF by default, but it can be enbled by the user if used/needed;
 # for that, of course, Pythia must be installed on the system.
-
 option(GEOMODEL_USE_PYTHIA "Build GeoModel tools with support for the Pythia event generator  (Note: Pythia must be installed on the target machine)" OFF )
-
 if(GEOMODEL_USE_PYTHIA)
-    find_package(Pythia REQUIRED) # if support for Pythia is enabled, it must be installed.
-    if(Pythia_FOUND)
-      message( STATUS "Found Pythia (${Pythia_INCLUDE_DIR}), and support for Pythia is enabled; so, support for it will be compiled.")
-      add_compile_definitions( USE_PYTHIA )
-    endif()
+  find_package(Pythia REQUIRED) # if support for Pythia is enabled, it must be installed.
+  if(Pythia_FOUND)
+    message( STATUS "Found Pythia (${Pythia_INCLUDE_DIR}), and support for Pythia is enabled; so, support for it will be compiled.")
+    add_compile_definitions( USE_PYTHIA )
+  endif()
 else()
-    message(STATUS "! NOTE ==> The support for Pythia is disabled by default, and it is not compiled at the moment. However, it can be enabled by the user by giving the option '-DGEOMODEL_USE_Pythia=1' to CMake; in that case, you must be sure Pythia is installed on the system.")
+  message(STATUS "! NOTE ==> The support for Pythia is disabled by default, and it is not compiled at the moment. However, it can be enabled by the user by giving the option '-DGEOMODEL_USE_Pythia=1' to CMake; in that case, you must be sure Pythia is installed on the system.")
 endif()
 
 
-
-
-
-
 #----------------------------------------------------------------------------
 # Setup Geant4 include directories and compile definitions
 # Setup include directory for this project
 #
-#message("Geant4_USE_FILE: ${Geant4_USE_FILE}") # debug msg
-include(${Geant4_USE_FILE})
 add_definitions (-DG4VERSION="${Geant4_VERSION}" )
 
 # Find includes in corresponding build directories
@@ -116,20 +97,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
 # Add sub-projects and targets
 add_subdirectory(Plugins)
 
-
-# You need to tell CMake where to find the ROOT installation. This can be done in a number of ways:
-#   - ROOT built with classic configure/make use the provided $ROOTSYS/etc/cmake/FindROOT.cmake
-#   - ROOT built with CMake. Add in CMAKE_PREFIX_PATH the installation prefix for ROOT
-#list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
-
-#---Locate the ROOT package and defines a number of variables (e.g. ROOT_INCLUDE_DIRS)
-#find_package(ROOT REQUIRED COMPONENTS RIO Net)
-
-#---Define useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY)
-#include(${ROOT_USE_FILE})
-
-
-
 include_directories(${PROJECT_SOURCE_DIR}/include)
 
 
@@ -138,16 +105,16 @@ include_directories(${PROJECT_SOURCE_DIR}/include)
 #
 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
 file(GLOB headers ${PROJECT_SOURCE_DIR}/inc/*.hh)
-#message("sources: ${sources}") # debug msg
 
 
 # Remove from the build HepMC3-related sources if that is not found
 # TODO: remove these lines and put pre-comp fences with 'USE_HEPMC3' def
 if( NOT HepMC3_FOUND)
-    file(GLOB hepmc3src ${PROJECT_SOURCE_DIR}/src/HepMC3*.cc)
-    #message("Removing those HepMC3-related sources: ${hepmc3src}") # debug msg
-    list(REMOVE_ITEM sources ${hepmc3src})
-    #message("new sources without HepMC3 support: ${sources}") # debug msg
+  file(GLOB hepmc3src ${PROJECT_SOURCE_DIR}/src/HepMC3*.cc)
+  message(STATUS "! NOTE ==> The support for HepMC3 was disabled by the user; therefore, support for it in FullSimLight will not be compiled.")
+  list(REMOVE_ITEM sources ${hepmc3src})
+else()
+  message(STATUS "Found HepMC3, so support for it will be compiled. (${HEPMC3_INCLUDE_DIR})")
 endif()
 
 
@@ -165,33 +132,9 @@ add_executable(gmclash geoModelClash.cc ${sources} ${headers})
 add_executable(gmmasscalc geoModelMassCalculator.cc ${sources} ${headers})
 add_executable(fillHistogramExample fillHistogramExample.cc src/Histo.cc include/Histo.hh)
 add_executable(gmgeantino geantinoMaps.cc ${sources} ${headers})
-#add_executable(plotGeantinoMaps plotGeantinoMaps.cc)
-#add_executable(testMagneticField testMagneticField.cc)
 add_executable(gm2gdml geoModel2GDML.cc ${sources} ${headers})
 
 
-
-
-#if(HEPMC3_ROOTIO_USE)
-#  message( STATUS "HEPMC3 Root Dependency Switched on")
-#  target_link_libraries(gmclash PUBLIC  ${HEPMC3_ROOTIO_LIB} ${ROOT_LIBRARIES})
- # target_link_libraries(gmmasscalc PUBLIC  ${HEPMC3_ROOTIO_LIB} ${ROOT_LIBRARIES})
- # target_link_libraries(fullSimLight PUBLIC ${HEPMC3_ROOTIO_LIB} ${ROOT_LIBRARIES})
- # target_link_libraries(gmgeantino PUBLIC  ${HEPMC3_ROOTIO_LIB} ${ROOT_LIBRARIES})
- # target_link_libraries(gm2gdml PUBLIC ${HEPMC3_ROOTIO_LIB} ${ROOT_LIBRARIES})
- # target_include_directories(gmclash PUBLIC ${ROOT_INCLUDE_DIRS})
- # target_include_directories(gmmasscalc PUBLIC  ${ROOT_INCLUDE_DIRS})
- # target_include_directories(fullSimLight PUBLIC  ${ROOT_INCLUDE_DIRS})
- # target_include_directories(gmgeantino PUBLIC  ${ROOT_INCLUDE_DIRS})
- # target_include_directories(gm2gdml PUBLIC  ${ROOT_INCLUDE_DIRS})
-
- # target_compile_definitions(gmclash PRIVATE USE_ROOT)
-  #target_compile_definitions(gmmasscalc PRIVATE USE_ROOT)
- # target_compile_definitions(fullSimLight PRIVATE USE_ROOT)
- # target_compile_definitions(gmgeantino PRIVATE USE_ROOT)
- # target_compile_definitions(gm2gdml PRIVATE USE_ROOT)
-#endif()
-
 #----------------------------------------------------------------------------
 # Add extra 'include' directories
 #
@@ -202,7 +145,6 @@ if( GEOMODEL_USE_BUILTIN_JSON )
   add_dependencies( gmmasscalc JSONExt )
   add_dependencies( fillHistogramExample JSONExt )
   add_dependencies( gmgeantino JSONExt )
-  #add_dependencies( testMagneticField JSONExt )
   add_dependencies( gm2gdml JSONExt )
   # Acquire Installation Directory of JSONExt
   ExternalProject_Get_Property (JSONExt install_dir)
@@ -211,58 +153,26 @@ if( GEOMODEL_USE_BUILTIN_JSON )
 endif()
 # If the in-house build of the Xerces-C library is used, add explicit dependency: for Geant4
 if( GEOMODEL_USE_BUILTIN_XERCESC )
-    add_dependencies( fullSimLight XercesCBuiltIn )
-    add_dependencies( gmclash XercesCBuiltIn )
-    add_dependencies( gmmasscalc XercesCBuiltIn )
-    add_dependencies( fillHistogramExample XercesCBuiltIn )
-    add_dependencies( gmgeantino XercesCBuiltIn )
-#    add_dependencies( testMagneticField XercesCBuiltIn )
-    add_dependencies( gm2gdml XercesCBuiltIn )
+  add_dependencies( fullSimLight XercesCBuiltIn )
+  add_dependencies( gmclash XercesCBuiltIn )
+  add_dependencies( gmmasscalc XercesCBuiltIn )
+  add_dependencies( fillHistogramExample XercesCBuiltIn )
+  add_dependencies( gmgeantino XercesCBuiltIn )
+  add_dependencies( gm2gdml XercesCBuiltIn )
 endif()
 #----------------------------------------------------------------------------
 # Link all needed libraries
 #
 target_link_libraries(fillHistogramExample ${Geant4_LIBRARIES})
-#target_link_libraries(testMagneticField ${Geant4_LIBRARIES}  MagFieldInterfaces)
-#target_link_libraries(plotGeantinoMaps ${ROOT_LIBRARIES})
-
-
-target_link_libraries(gmclash PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} )
-target_link_libraries(gmmasscalc PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} )
-target_link_libraries(fullSimLight PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} )
-target_link_libraries(gmgeantino PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} )
-target_link_libraries(gm2gdml PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} )
-
-
-if( HepMC3_FOUND)
-    target_link_libraries(gmclash PUBLIC GeoModel2G4 ${HEPMC3_LIB})
-    target_link_libraries(gmmasscalc PUBLIC GeoModel2G4 ${HEPMC3_LIB})
-    target_link_libraries(fullSimLight PUBLIC GeoModel2G4 ${HEPMC3_LIB})
-    target_link_libraries(gmgeantino PUBLIC GeoModel2G4 ${HEPMC3_LIB})
-    target_link_libraries(gm2gdml PUBLIC GeoModel2G4 ${HEPMC3_LIB})
-    target_include_directories(gmclash PUBLIC ${HEPMC3_INCLUDE_DIR})
-    target_include_directories(gmmasscalc PUBLIC ${HEPMC3_INCLUDE_DIR})
-    target_include_directories(fullSimLight PUBLIC ${HEPMC3_INCLUDE_DIR})
-    target_include_directories(gmgeantino PUBLIC ${HEPMC3_INCLUDE_DIR})
-    target_include_directories(gm2gdml PUBLIC ${HEPMC3_INCLUDE_DIR})
-endif()
+target_link_libraries(gmclash PUBLIC GeoModel2G4 ${Geant4_LIBRARIES} ${HEPMC3_LIB})
+target_link_libraries(gmmasscalc PUBLIC GeoModel2G4 ${Geant4_LIBRARIES}  ${HEPMC3_LIB})
+target_link_libraries(fullSimLight PUBLIC GeoModel2G4 ${Geant4_LIBRARIES}  ${HEPMC3_LIB})
+target_link_libraries(gmgeantino PUBLIC GeoModel2G4 ${Geant4_LIBRARIES}  ${HEPMC3_LIB})
+target_link_libraries(gm2gdml PUBLIC GeoModel2G4 ${Geant4_LIBRARIES}  ${HEPMC3_LIB})
 
+# FIXUP: To check after REBASE complete
 if(Pythia_FOUND)
-  target_compile_definitions(fullSimLight PRIVATE USE_PYTHIA)
-  target_compile_definitions(gmgeantino PRIVATE USE_PYTHIA)
-  target_compile_definitions(gmmasscalc PRIVATE USE_PYTHIA)
-  target_compile_definitions(gm2gdml PRIVATE USE_PYTHIA)
-  target_compile_definitions(gmclash PRIVATE USE_PYTHIA)
-  target_link_libraries(fullSimLight PUBLIC Pythia::Pythia)
-  target_link_libraries(gmgeantino PUBLIC Pythia::Pythia)
-  target_link_libraries(gmmasscalc PUBLIC Pythia::Pythia)
-  target_link_libraries(gm2gdml PUBLIC Pythia::Pythia)
-  target_link_libraries(gmclash PUBLIC Pythia::Pythia)
-  target_include_directories(fullSimLight PUBLIC ${Pythia_INCLUDE_DIR})
-  target_include_directories(gmgeantino PUBLIC ${Pythia_INCLUDE_DIR})
-  target_include_directories(gmmasscalc PUBLIC ${Pythia_INCLUDE_DIR})
-  target_include_directories(gm2gdml PUBLIC ${Pythia_INCLUDE_DIR})
-  target_include_directories(gmclash PUBLIC ${Pythia_INCLUDE_DIR})
+  target_link_libraries(fullSimLight PRIVATE Pythia::Pythia)
 endif()
 
 
@@ -272,17 +182,17 @@ endif()
 # from the base GeoModel packages already installed on the system.
 # This is used when building distribution packages.
 if ( ${PROJECT_NAME}_INDIVIDUAL_BUILD ) # if built individually
-    target_link_libraries( gmclash PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
-    target_link_libraries( gmmasscalc PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
-    target_link_libraries( fullSimLight PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
-    target_link_libraries( gmgeantino PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
-    target_link_libraries( gm2gdml PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
+  target_link_libraries( gmclash PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
+  target_link_libraries( gmmasscalc PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
+  target_link_libraries( fullSimLight PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
+  target_link_libraries( gmgeantino PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
+  target_link_libraries( gm2gdml PUBLIC GeoModelCore::GeoModelKernel GeoModelIO::GeoModelRead GeoModelIO::GeoModelWrite )
 else() # if built as a part of GeoModel
-    target_link_libraries( gmclash PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
-    target_link_libraries( gmmasscalc PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
-    target_link_libraries( fullSimLight PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
-    target_link_libraries( gmgeantino PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
-    target_link_libraries( gm2gdml PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
+  target_link_libraries( gmclash PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
+  target_link_libraries( gmmasscalc PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
+  target_link_libraries( fullSimLight PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
+  target_link_libraries( gmgeantino PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
+  target_link_libraries( gm2gdml PUBLIC GeoModelKernel GeoModelRead GeoModelWrite )
 endif()
 
 # targets that need 'nlohmann_json'
@@ -292,13 +202,13 @@ endif()
 # This is not needed if the single-header library is installed in a regular
 # system include folder (e.g., '/usr/local/include', '/usr/include', ...)
 if( nlohmann_json_FOUND )
-    target_link_libraries( gmclash PRIVATE nlohmann_json::nlohmann_json )
-    target_link_libraries( gmmasscalc PRIVATE nlohmann_json::nlohmann_json )
-    target_link_libraries( fullSimLight PRIVATE nlohmann_json::nlohmann_json )
-    target_link_libraries( gmgeantino PRIVATE nlohmann_json::nlohmann_json )
-    target_link_libraries( gm2gdml PRIVATE nlohmann_json::nlohmann_json )
+  target_link_libraries( gmclash PRIVATE nlohmann_json::nlohmann_json )
+  target_link_libraries( gmmasscalc PRIVATE nlohmann_json::nlohmann_json )
+  target_link_libraries( fullSimLight PRIVATE nlohmann_json::nlohmann_json )
+  target_link_libraries( gmgeantino PRIVATE nlohmann_json::nlohmann_json )
+  target_link_libraries( gm2gdml PRIVATE nlohmann_json::nlohmann_json )
 else()
-    message(STATUS "WARNING - 'nlohmann_json' not found by CMake!! Anyway, if you installed the single header file in a standard system include dir, I will be able to use it.")
+  message(STATUS "WARNING - 'nlohmann_json' not found by CMake!! Anyway, if you installed the single header file in a standard system include dir, I will be able to use it.")
 endif()
 
 #----------------------------------------------------------------------------
@@ -310,8 +220,6 @@ if(GEOMODEL_BUILD_FULLSIMLIGHT_PROFILING)
   add_subdirectory(perf)
 endif()
 
-#ROOT_GENERATE_DICTIONARY(G__geantinoMaps ${headers} LINKDEF geantinoMapsLinkDef.h)
-
 #----------------------------------------------------------------------------
 # Copy all scripts to the build/OUTPUT directory. This is so that, after
 # install, we can run the executable directly because it relies on these
@@ -344,19 +252,14 @@ endforeach()
 # Install the executable to 'bin/' directory under the
 # CMAKE_INSTALL_PREFIX
 #
-
-
 install(TARGETS fullSimLight DESTINATION ${OUTPUT})
 install(TARGETS gmclash DESTINATION ${OUTPUT})
 install(TARGETS gmmasscalc DESTINATION ${OUTPUT})
 install(TARGETS fillHistogramExample DESTINATION ${OUTPUT})
 install(TARGETS gmgeantino DESTINATION ${OUTPUT})
-#install(TARGETS testMagneticField DESTINATION ${OUTPUT})
 install(TARGETS gm2gdml DESTINATION ${OUTPUT})
 install(FILES ${FULLSIMLIGHT_SCRIPTS} DESTINATION share/FullSimLight)
 
-
-
 add_library ( FullSimLight INTERFACE )
 
 # Set up the packaging of the project using CPack.
@@ -366,45 +269,43 @@ include ( GNUInstallDirs )
 include( WriteBasicConfigVersionFile )
 
 write_basic_config_version_file(
-   ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake
-   VERSION ${PROJECT_VERSION}
-   COMPATIBILITY SameMajorVersion )
+  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake
+  VERSION ${PROJECT_VERSION}
+  COMPATIBILITY SameMajorVersion )
 
 install(
-   FILES
-   ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake
-   COMPONENT Development
-   DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
+  FILES
+  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake
+  COMPONENT Development
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
 
 #Create and install the description of the libraries.
 install( EXPORT ${PROJECT_NAME}-export
-   FILE ${PROJECT_NAME}Targets.cmake
-   COMPONENT Development
+  FILE ${PROJECT_NAME}Targets.cmake
+  COMPONENT Development
 #   NAMESPACE "${PROJECT_NAME}::"
-   DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
 
 # Install the hand-written project configuration.
 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FullSimLightConfig.cmake.in
-   ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake
-   @ONLY )
+  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake
+  @ONLY )
 install(
-   FILES
-   ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake
-   COMPONENT Development
-   DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
+  FILES
+  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake
+  COMPONENT Development
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
 
 
 install( TARGETS FullSimLight
-   EXPORT ${PROJECT_NAME}-export
-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-   INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
+  EXPORT ${PROJECT_NAME}-export
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
 
    
 install(FILES FullSimLight/FSLSensitiveDetectorPlugin.h 
               FullSimLight/MagFieldPlugin.h 
               FullSimLight/FSLPhysicsListPlugin.h
-	      FullSimLight/FSLUserActionPlugin.h
-	          DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
+    	      FullSimLight/FSLUserActionPlugin.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
   COMPONENT Development )
-
-
-- 
GitLab