Advanced Computing Platform for Theoretical Physics

Commit b9ded815 authored by ralfulrich's avatar ralfulrich
Browse files

best guess

parent 617a922a
......@@ -12,6 +12,9 @@ endmacro ()
# Enable/Disable models to be built
CRMC_OPTION (CRMC_STATIC "Build with static library" OFF) #if ON should not combined DPMJET/PHOJET/PYTHIA because they use different version of pythia (for dynamic library no problem)
OPTION (__CRMCPROG__ "Build stabdalone CRMC program" OFF) # standard CRMC installation (crmc protgram)
OPTION (__GEANT4__ "Build with geant4 interface" ON) # crmc-geant4 interface
OPTION (__GEANT4PHYS__ "Build with geant4 interface" ON) # crmc geant4 physics list (requires geant4 to be installed)
CRMC_OPTION (CRMC_QGSJET01 "Build with QGSJet 2003" OFF)
CRMC_OPTION (CRMC_GHEISHA "Build with GHeisha 2002" OFF)
......@@ -42,9 +45,9 @@ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set (CMAKE_INSTALL_PREFIX $ENV{PWD} CACHE PATH "default install path" FORCE )
endif()
MESSAGE(STATUS "source ${CMAKE_SOURCE_DIR}")
MESSAGE(STATUS "build ${CMAKE_BINARY_DIR}")
MESSAGE(STATUS "install ${CMAKE_INSTALL_PREFIX}")
MESSAGE (STATUS "source ${CMAKE_SOURCE_DIR}")
MESSAGE (STATUS "build ${CMAKE_BINARY_DIR}")
MESSAGE (STATUS "install ${CMAKE_INSTALL_PREFIX}")
## The version number. Only nummeric PLEASE!
SET (CRMC_VERSION_MAJOR 1)
......@@ -165,17 +168,17 @@ FIND_PACKAGE (Boost 1.35 REQUIRED
COMPONENTS filesystem iostreams system program_options)
FIND_PACKAGE (HepMC COMPONENTS HepMC HepMCfio)
if (${HEPMC_FOUND} MATCHES TRUE)
if (HEPMC_FOUND)
INCLUDE_DIRECTORIES ("${HepMC_INCLUDE_DIRS}")
LIST(APPEND CRMC_SOURCES src/OutputPolicyHepMC.cc)
LIST(APPEND CRMC_HEADERS src/OutputPolicyHepMC.h)
set_property(SOURCE src/CRMC.cc src/CRMCoptions.cc src/crmcMain.cc
APPEND PROPERTY COMPILE_DEFINITIONS WITH_HEPMC)
MESSAGE("Build HEPMC Output Interface")
endif (${HEPMC_FOUND} MATCHES TRUE)
endif (HEPMC_FOUND)
FIND_PACKAGE (HepMC3 COMPONENTS HepMC3)
if (${HepMC3_FOUND})
if (HepMC3_FOUND)
INCLUDE_DIRECTORIES ("${HEPMC3_INCLUDE_DIR}")
LIST(APPEND CRMC_SOURCES src/OutputPolicyHepMC3.cc)
LIST(APPEND CRMC_HEADERS
......@@ -187,15 +190,15 @@ if (${HepMC3_FOUND})
MESSAGE("Build HEPMC3 Output Interface")
FIND_PACKAGE(Rivet)
if (${Rivet_FOUND} MATCHES TRUE)
if (Rivet_FOUND)
INCLUDE_DIRECTORIES ("${RIVET_INCLUDE_DIR}")
LIST(APPEND CRMC_SOURCES src/OutputPolicyRivet.cc)
LIST(APPEND CRMC_HEADERS src/OutputPolicyRivet.h)
set_property(SOURCE src/CRMC.cc src/CRMCoptions.cc src/crmcMain.cc
APPEND PROPERTY COMPILE_DEFINITIONS WITH_RIVET)
MESSAGE("Build Rivet interface")
endif (${Rivet_FOUND} MATCHES TRUE)
endif (${HepMC3_FOUND})
endif (Rivet_FOUND)
endif (HepMC3_FOUND)
FIND_PACKAGE (Fastjet COMPONENTS fastjet)
if (FASTJET_FOUND)
......@@ -413,21 +416,49 @@ ENDIF (CRMC_STATIC)
#include directories for headers
INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/src")
INCLUDE_DIRECTORIES ("${Boost_INCLUDE_DIRS}")
if (__GEANT4__ OR __GEANT4PHYS__)
# require Geant4
# set (Geant4_CONFIG_DEBUG ON)
find_package (Geant4 REQUIRED CONFIG)
if (NOT Geant4_FOUND)
message (error "Geant4 not found. Provide Geant4_DIR to find it, or add geant4-config to your PATH.")
endif (NOT Geant4_FOUND)
message ("Geant4 found: ${Geant4_VERSION}")
endif (__GEANT4__ OR __GEANT4PHYS__)
# ========= USED IN GEANT4 interface =========
if (__GEANT4__)
ADD_LIBRARY (Crmc SHARED src/CRMCinterface.cc)
INSTALL (TARGETS Crmc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static
)
endif (__GEANT4__)
# ========= USED IN GEANT4 interface =========
IF (__GEANT4PHYS__)
ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/geant4")
ENDIF (__GEANT4PHYS__)
# the executable
IF (__CRMCPROG__)
ADD_EXECUTABLE(crmc ${CRMC_SOURCES})
# linking of modules
TARGET_LINK_LIBRARIES (crmc ${CMAKE_DL_LIBS})
if (${HEPMC_FOUND} MATCHES TRUE)
if (HEPMC_FOUND)
TARGET_LINK_LIBRARIES (crmc ${HepMC_LIBRARIES})
endif(${HEPMC_FOUND} MATCHES TRUE)
if (${HepMC3_FOUND})
endif(HEPMC_FOUND)
if (HepMC3_FOUND)
TARGET_LINK_LIBRARIES (crmc ${HEPMC3_LIBRARIES})
if (${Rivet_FOUND} MATCHES TRUE)
if (Rivet_FOUND)
STRING (STRIP "${RIVET_LIB_DIR}" RIVET_LIBRARY_DIR)
TARGET_LINK_LIBRARIES (crmc ${RIVET_LIBRARY_DIR}/libRivet.so)
endif(${Rivet_FOUND} MATCHES TRUE)
endif(${HepMC3_FOUND})
endif(Rivet_FOUND)
endif(HepMC3_FOUND)
TARGET_LINK_LIBRARIES (crmc ${Boost_LIBRARIES})
if (Root_FOUND)
TARGET_LINK_LIBRARIES (crmc ${ROOT_LIBRARIES})
......@@ -438,6 +469,7 @@ IF (CRMC_STATIC)
ELSE (CRMC_STATIC)
TARGET_LINK_LIBRARIES (crmc HepEvtDummy)
ENDIF (CRMC_STATIC)
ENDIF (__CRMCPROG__)
## installation
# configure the parameter file
......@@ -458,7 +490,9 @@ endforeach()
INSTALL (FILES ${TABSDIR} DESTINATION share/crmc/)
# install executable
INSTALL (TARGETS crmc RUNTIME)
if (__CRMCPROG__)
INSTALL (TARGETS crmc RUNTIME)
endif(__CRMCPROG__)
INSTALL (FILES ${CMAKE_BINARY_DIR}/src/epos.inc
src/epos.incems
src/epos.inchy
......
......@@ -71,7 +71,7 @@ main(int argc, char **argv)
break;
#endif
#ifdef WITH_HEPMC3
#ifdef WITH_RIVET
case CRMCoptions::eRivet:
{
CRMC2Rivet crmc(cfg);
......
EXECUTE_PROCESS(COMMAND geant4-config "--cflags" OUTPUT_VARIABLE GEANT4_CXXFLAGS)
EXECUTE_PROCESS(COMMAND geant4-config "--libs" OUTPUT_VARIABLE GEANT4_LIBS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GEANT4_CXXFLAGS}")
STRING(STRIP ${CMAKE_CXX_FLAGS} CMAKE_CXX_FLAGS)
STRING(STRIP ${GEANT4_LIBS} GEANT4_LIBS)
ADD_LIBRARY (GeantCrmc SHARED G4HadronPhysicsCRMC.cc G4HadronicInelasticModelCRMC.cc)
ADD_LIBRARY(GeantCrmc SHARED G4HadronPhysicsCRMC.cc G4HadronicInelasticModelCRMC.cc)
TARGET_LINK_LIBRARIES (GeantCrmc ${GEANT4_LIBS})
INSTALL (TARGETS GeantCrmc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static
)
INSTALL(FILES G4HadronPhysicsCRMC.hh G4HadronicInelasticModelCRMC.hh
DESTINATION src
)
TARGET_compile_definitions (GeantCrmc PRIVATE ${Geant4_DEFINITIONS})
TARGET_include_directories (GeantCrmc PRIVATE ${Geant4_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES (GeantCrmc ${Geant4_LIBRARIES})
INSTALL (
TARGETS GeantCrmc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static
)
INSTALL (
FILES G4HadronPhysicsCRMC.hh G4HadronicInelasticModelCRMC.hh
DESTINATION src
)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment