Skip to content
Snippets Groups Projects
Commit 3ca21868 authored by patternoia's avatar patternoia
Browse files

Add config generation for FairDb

parent c5870510
No related branches found
No related tags found
No related merge requests found
......@@ -47,7 +47,7 @@ ELSE(FAIRROOTPATH)
ENDIF(FAIRROOTPATH)
if(FAIRROOTPATH)
find_package(FairRoot)
find_package(FairRoot REQUIRED)
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(CMAKE_INSTALL_PREFIX ${FAIRROOTPATH} CACHE PATH "Install path prefix" FORCE)
......@@ -60,10 +60,11 @@ if(FAIRROOTPATH)
EndIf(CMAKE_INSTALL_PREFIX)
endif(FAIRROOTPATH)
Set(FAIRDBPATH ${CMAKE_INSTALL_PREFIX})
# Load some basic macros which are needed later on
include(FairMacros)
include(WriteConfigFile)
include(AdoptConfigFile)
include(CheckCompiler)
Include(ExternalProject)
include(CheckCXX11Features)
......@@ -188,6 +189,27 @@ EndIf()
# the array .
# The extension is already found. Any number of sources could be listed here.
### cmake modules
install(FILES "cmake/modules/FindWt.cmake" DESTINATION share/fairbase/cmake/modules)
install(FILES "cmake/modules/FindFairDb.cmake" DESTINATION share/fairbase/cmake/modules)
install(FILES "cmake/modules/AdoptConfigFile.cmake" DESTINATION share/fairbase/cmake/modules)
install(FILES "cmake/scripts/config.sh.in" DESTINATION share/fairbase/cmake/scripts)
install(FILES "cmake/scripts/config.csh.in" DESTINATION share/fairbase/cmake/scripts)
ADOPT_CONFIG_FILE(config.sh)
ADOPT_CONFIG_FILE(config.csh)
SET(ROOT_INCLUDE_PATH ${ROOT_INCLUDE_PATH} "${CMAKE_INSTALL_PREFIX}/include")
SET(VMCWORKDIR ${CMAKE_INSTALL_PREFIX}/share/FairDb)
ADOPT_CONFIG_FILE(config.sh_install)
ADOPT_CONFIG_FILE(config.csh_install)
Install(FILES ${CMAKE_BINARY_DIR}/check_system.sh DESTINATION bin)
Install(FILES ${CMAKE_BINARY_DIR}/check_system.csh DESTINATION bin)
Install(FILES ${CMAKE_BINARY_DIR}/config.sh_install DESTINATION bin RENAME FairDbConfig.sh)
Install(FILES ${CMAKE_BINARY_DIR}/config.csh_install DESTINATION bin RENAME FairDbConfig.csh)
Set(BASE_INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/dbInterface
......@@ -299,9 +321,6 @@ install(FILES "dbInput/prepare_db.sql" DESTINATION share/dbInput)
install(DIRECTORY "db3rdParty/jsoncons" DESTINATION include)
install(DIRECTORY "db3rdParty/jsoncons_ext" DESTINATION include)
### cmake modules
install(FILES "cmake/modules/FindWt.cmake" DESTINATION share/fairbase/cmake/modules)
install(FILES "cmake/modules/FindFairDb.cmake" DESTINATION share/fairbase/cmake/modules)
CHANGE_FILE_EXTENSION(*.cxx *.h HEADERS "${SRCS}")
set(HEADERS ${HEADERS} ${CMAKE_SOURCE_DIR}/dbInterface/FairDbReader.h ${CMAKE_SOURCE_DIR}/dbInterface/FairDbWriter.h
......
################################################################################
# Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
# #
# This software is distributed under the terms of the #
# GNU Lesser General Public Licence version 3 (LGPL) version 3, #
# copied verbatim in the file "LICENSE" #
################################################################################
MACRO (ADOPT_CONFIG_FILE filename)
String(REGEX REPLACE "^.*(install).*$" "\\1" INSTALL_VERSION ${filename})
String(COMPARE EQUAL "install" "${INSTALL_VERSION}" INSTALL_TRUE)
List(REMOVE_ITEM LD_LIBRARY_PATH ${CMAKE_BINARY_DIR}/lib)
If (INSTALL_TRUE)
SET(_INSTALLDIR ${CMAKE_INSTALL_PREFIX})
SET(_BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
# SET(VMCWORKDIR ${CMAKE_INSTALL_PREFIX}/share/fairbase)
SET(FAIRLIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
SET(_LD_LIBRARY_PATH ${FAIRLIBDIR} ${FAIRDBPATH}/lib ${LD_LIBRARY_PATH})
Else (INSTALL_TRUE)
SET(_INSTALLDIR ${CMAKE_BINARY_DIR})
SET(_BINDIR ${CMAKE_BINARY_DIR})
# SET(VMCWORKDIR ${CMAKE_SOURCE_DIR})
SET(FAIRLIBDIR ${CMAKE_BINARY_DIR}/lib)
SET(_LD_LIBRARY_PATH ${FAIRLIBDIR} ${FAIRDBPATH}/lib ${LD_LIBRARY_PATH})
EndIf (INSTALL_TRUE)
If(NOT DEFINED FULL_CONFIG_FILE)
Set(FULL_CONFIG_FILE "true")
EndIf(NOT DEFINED FULL_CONFIG_FILE)
IF(CMAKE_SYSTEM_NAME MATCHES Linux)
if(EXISTS ${PROJECT_SOURCE_DIR}/cmake/scripts/check_system.sh.in)
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/check_system.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/check_system.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system.sh.in)
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system.sh.in)
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
endif()
EXECUTE_PROCESS(COMMAND lsb_release -sd
OUTPUT_VARIABLE _linux_flavour
OUTPUT_STRIP_TRAILING_WHITESPACE
)
IF(_linux_flavour)
STRING(REGEX REPLACE "^\"" "" _linux_flavour ${_linux_flavour})
STRING(REGEX REPLACE "\"$" "" _linux_flavour ${_linux_flavour})
ENDIF(_linux_flavour)
EXECUTE_PROCESS(COMMAND uname -m
OUTPUT_VARIABLE _system
OUTPUT_STRIP_TRAILING_WHITESPACE
)
ElseIf(CMAKE_SYSTEM_NAME MATCHES Darwin)
if(EXISTS ${PROJECT_SOURCE_DIR}/cmake/scripts/check_system_mac.sh.in)
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/check_system_mac.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/check_system_mac.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system_mac.sh.in)
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system_mac.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/check_system_mac.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system_mac.sh.in)
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system_mac.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/check_system_mac.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
endif()
EXECUTE_PROCESS(COMMAND uname -sr
OUTPUT_VARIABLE _linux_flavour
OUTPUT_STRIP_TRAILING_WHITESPACE
)
EXECUTE_PROCESS(COMMAND uname -m
OUTPUT_VARIABLE _system
OUTPUT_STRIP_TRAILING_WHITESPACE
)
ENDIF(CMAKE_SYSTEM_NAME MATCHES Linux)
Set(GEANT4_LIBRARY_DIR $ENV{GEANT4_LIBRARY_DIR})
Set(GEANT4_INCLUDE_DIR $ENV{GEANT4_INCLUDE_DIR})
Set(GEANT4VMC_INCLUDE_DIR $ENV{GEANT4VMC_INCLUDE_DIR})
Set(GEANT4VMC_LIBRARY_DIR $ENV{GEANT4VMC_LIBRARY_DIR})
Set(GEANT4VMC_MACRO_DIR $ENV{GEANT4VMC_MACRO_DIR})
Set(G4LEDATA $ENV{G4LEDATA})
Set(G4LEVELGAMMADATA $ENV{G4LEVELGAMMADATA})
Set(G4PIIDATA $ENV{G4PIIDATA})
Set(G4NeutronHPCrossSections $ENV{G4NeutronHPCrossSections})
Set(G4NEUTRONHPDATA $ENV{G4NEUTRONHPDATA})
Set(G4NEUTRONXSDATA $ENV{G4NEUTRONXSDATA})
Set(G4RADIOACTIVEDATA $ENV{G4RADIOACTIVEDATA})
Set(G4REALSURFACEDATA $ENV{G4REALSURFACEDATA})
Set(G4SAIDXSDATA $ENV{G4SAIDXSDATA})
Set(G4ENSDFSTATEDATA $ENV{G4ENSDFSTATEDATA})
Set(CLHEP_INCLUDE_DIR $ENV{CLHEP_INCLUDE_DIR})
Set(CLHEP_LIBRARY_DIR $ENV{CLHEP_LIBRARY_DIR})
Set(CLHEP_BASE_DIR $ENV{CLHEP_BASE_DIR})
Set(PLUTO_LIBRARY_DIR $ENV{PLUTO_LIBRARY_DIR})
Set(PLUTO_INCLUDE_DIR $ENV{PLUTO_INCLUDE_DIR})
Set(PYTHIA6_LIBRARY_DIR $ENV{PYTHIA6_LIBRARY_DIR})
Set(G3SYS $ENV{G3SYS})
Set(GEANT3_INCLUDE_DIR $ENV{GEANT3_INCLUDE_DIR})
Set(GEANT3_LIBRARY_DIR $ENV{GEANT3_LIBRARY_DIR})
Set(GEANT3_LIBRARIES $ENV{GEANT3_LIBRARIES})
Set(ROOT_LIBRARY_DIR $ENV{ROOT_LIBRARY_DIR})
Set(ROOT_LIBRARIES $ENV{ROOT_LIBRARIES})
Set(ROOT_INCLUDE_DIR $ENV{ROOT_INCLUDE_DIR})
# Set(VMCWORKDIR ${C})
Set(FAIRLIBDIR ${FAIRLIBDIR})
List(REMOVE_DUPLICATES _LD_LIBRARY_PATH)
CONVERT_LIST_TO_STRING(${_LD_LIBRARY_PATH})
IF(CMAKE_SYSTEM_NAME MATCHES Linux)
Set(MY_LD_LIBRARY_PATH ${output})
ELSE(CMAKE_SYSTEM_NAME MATCHES Linux)
IF(CMAKE_SYSTEM_NAME MATCHES Darwin)
Set(MY_DYLD_LIBRARY_PATH ${output})
ENDIF(CMAKE_SYSTEM_NAME MATCHES Darwin)
ENDIF(CMAKE_SYSTEM_NAME MATCHES Linux)
Set(USE_VGM 1)
SET(PYTHONPATH ${CMAKE_SOURCE_DIR}/python ${SIMPATH}/lib ${SIMPATH}/lib/root ${SIMPATH}/lib/Geant4 ${SIMPATH}/lib/g4py ${PYTHONPATH})
UNIQUE(PYTHONPATH "${PYTHONPATH}")
CONVERT_LIST_TO_STRING(${PYTHONPATH})
SET(MY_PYTHONPATH ${output})
SET (PATH ${ROOTSYS}/bin ${PATH})
UNIQUE(PATH "${PATH}")
CONVERT_LIST_TO_STRING(${PATH})
Set(MY_PATH ${output})
If(FAIRSOFT_EXTERN)
Set(PYTHIA8DATA "${SIMPATH}/share/pythia8/xmldoc")
Else(FAIRSOFT_EXTERN)
Set(PYTHIA8DATA "${SIMPATH}/generators/pythia8/xmldoc")
EndIf(FAIRSOFT_EXTERN)
CONVERT_LIST_TO_STRING($ENV{NEW_CLASSPATH})
Set(MY_CLASSPATH ${output})
CONVERT_LIST_TO_STRING(${ROOT_INCLUDE_PATH})
Set(ROOT_INCLUDE_PATH ${output})
IF(${filename} MATCHES "[.]csh.*$")
if(EXISTS ${PROJECT_SOURCE_DIR}/cmake/scripts/config.csh.in)
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/config.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRDBPATH}/share/fairbase/cmake/scripts/config.csh.in)
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/config.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRROOTPATH}/share/fairbase/cmake/scripts/config.csh.in)
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/config.csh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
endif()
ELSE(${filename} MATCHES "[.]csh.*$")
if(EXISTS ${PROJECT_SOURCE_DIR}/cmake/scripts/config.sh.in)
configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/config.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRDBPATH}/share/fairbase/cmake/scripts/config.sh.in)
configure_file(${FAIRDBPATH}/share/fairbase/cmake/scripts/config.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
elseif(EXISTS ${FAIRROOTPATH}/share/fairbase/cmake/scripts/config.sh.in)
configure_file(${FAIRROOTPATH}/share/fairbase/cmake/scripts/config.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${filename})
endif()
ENDIF(${filename} MATCHES "[.]csh.*$")
ENDMACRO (ADOPT_CONFIG_FILE)
MACRO (CONVERT_LIST_TO_STRING)
set (tmp "")
foreach (_current ${ARGN})
set(tmp1 ${tmp})
set(tmp "")
set(tmp ${tmp1}:${_current})
endforeach (_current ${ARGN})
If(tmp)
STRING(REGEX REPLACE "^:(.*)" "\\1" output ${tmp})
Else(tmp)
Set(output "")
EndIf(tmp)
ENDMACRO (CONVERT_LIST_TO_STRING LIST)
#!/bin/csh
setenv Linux_Flavour_ "@_linux_flavour@"
setenv System_ "@_system@"
. @_BINDIR@/check_system.csh
if ( "$same_system" == "1" ) then
setenv SIMPATH "@SIMPATH@"
setenv ROOTSYS "@ROOTSYS@"
setenv FAIRROOTPATH "@FAIRROOTPATH@"
setenv FAIRDBPATH "@FAIRDBPATH@"
if ( @FULL_CONFIG_FILE@ == true ) then
setenv GEANT4_LIBRARY_DIR "@GEANT4_LIBRARY_DIR@"
setenv GEANT4_INCLUDE_DIR "@GEANT4_INCLUDE_DIR@"
setenv GEANT4VMC_INCLUDE_DIR "@GEANT4VMC_INCLUDE_DIR@"
setenv GEANT4VMC_LIBRARY_DIR "@GEANT4VMC_LIBRARY_DIR@"
setenv GEANT4VMC_MACRO_DIR "@GEANT4VMC_MACRO_DIR@"
setenv CLHEP_INCLUDE_DIR "@CLHEP_INCLUDE_DIR@"
setenv CLHEP_LIBRARY_DIR "@CLHEP_LIBRARY_DIR@"
setenv CLHEP_BASE_DIR "@CLHEP_BASE_DIR@"
setenv PLUTO_LIBRARY_DIR "@PLUTO_LIBRARY_DIR@"
setenv PLUTO_INCLUDE_DIR "@PLUTO_INCLUDE_DIR@"
setenv PYTHIA6_LIBRARY_DIR "@PYTHIA6_LIBRARY_DIR@"
setenv G3SYS "@G3SYS@"
setenv GEANT3_INCLUDE_DIR "@GEANT3_INCLUDE_DIR@"
setenv GEANT3_LIBRARY_DIR "@GEANT3_LIBRARY_DIR@"
setenv GEANT3_LIBRARIES "@GEANT3_LIBRARIES@"
setenv USE_VGM "1"
setenv PYTHIA8DATA "@PYTHIA8DATA@"
setenv CLASSPATH "@MY_CLASSPATH@"
setenv G4LEDATA "@G4LEDATA@"
setenv G4LEVELGAMMADATA "@G4LEVELGAMMADATA@"
setenv G4NeutronHPCrossSections "@G4NeutronHPCrossSections@"
setenv G4NEUTRONHPDATA "@G4NeutronHPCrossSections@"
setenv G4NEUTRONXSDATA "@G4NEUTRONXSDATA@"
setenv G4PIIDATA "@G4PIIDATA@"
setenv G4RADIOACTIVEDATA "@G4RADIOACTIVEDATA@"
setenv G4REALSURFACEDATA "@G4REALSURFACEDATA@"
setenv G4SAIDXSDATA "@G4SAIDXSDATA@"
setenv G4ENSDFSTATEDATA "@G4ENSDFSTATEDATA@"
endif
setenv ROOT_LIBRARY_DIR "@ROOT_LIBRARY_DIR@"
setenv ROOT_LIBRARIES "@ROOT_LIBRARIES@"
setenv ROOT_INCLUDE_DIR "@ROOT_INCLUDE_DIR@"
setenv ROOT_INCLUDE_PATH "@ROOT_INCLUDE_PATH@"
setenv VMCWORKDIR "@VMCWORKDIR@"
setenv FAIRLIBDIR "@FAIRLIBDIR@"
setenv PYTHONPATH "@MY_PYTHONPATH@"
setenv DYLD_LIBRARY_PATH "@MY_DYLD_LIBRARY_PATH@"
setenv LD_LIBRARY_PATH "@MY_LD_LIBRARY_PATH@"
setenv PATH "@MY_PATH@"
endif
#!/bin/bash
export Linux_Flavour_="@_linux_flavour@"
export System_="@_system@"
. @_BINDIR@/check_system.sh
if [ $same_system -eq 1 ]; then
export SIMPATH="@SIMPATH@"
export ROOTSYS="@ROOTSYS@"
export FAIRROOTPATH="@FAIRROOTPATH@"
export FAIRDBPATH="@FAIRDBPATH@"
if (@FULL_CONFIG_FILE@); then
export GEANT4_LIBRARY_DIR="@GEANT4_LIBRARY_DIR@"
export GEANT4_INCLUDE_DIR="@GEANT4_INCLUDE_DIR@"
export GEANT4VMC_INCLUDE_DIR="@GEANT4VMC_INCLUDE_DIR@"
export GEANT4VMC_LIBRARY_DIR="@GEANT4VMC_LIBRARY_DIR@"
export GEANT4VMC_MACRO_DIR="@GEANT4VMC_MACRO_DIR@"
export CLHEP_INCLUDE_DIR="@CLHEP_INCLUDE_DIR@"
export CLHEP_LIBRARY_DIR="@CLHEP_LIBRARY_DIR@"
export CLHEP_BASE_DIR="@CLHEP_BASE_DIR@"
export PLUTO_LIBRARY_DIR="@PLUTO_LIBRARY_DIR@"
export PLUTO_INCLUDE_DIR="@PLUTO_INCLUDE_DIR@"
export PYTHIA6_LIBRARY_DIR="@PYTHIA6_LIBRARY_DIR@"
export G3SYS="@G3SYS@"
export GEANT3_INCLUDE_DIR="@GEANT3_INCLUDE_DIR@"
export GEANT3_LIBRARY_DIR="@GEANT3_LIBRARY_DIR@"
export GEANT3_LIBRARIES="@GEANT3_LIBRARIES@"
export USE_VGM="1"
export PYTHIA8DATA="@PYTHIA8DATA@"
export CLASSPATH="@MY_CLASSPATH@"
export G4LEDATA="@G4LEDATA@"
export G4LEVELGAMMADATA="@G4LEVELGAMMADATA@"
export G4NeutronHPCrossSections="@G4NeutronHPCrossSections@"
export G4NEUTRONHPDATA="@G4NeutronHPCrossSections@"
export G4NEUTRONXSDATA="@G4NEUTRONXSDATA@"
export G4PIIDATA="@G4PIIDATA@"
export G4RADIOACTIVEDATA="@G4RADIOACTIVEDATA@"
export G4REALSURFACEDATA="@G4REALSURFACEDATA@"
export G4SAIDXSDATA="@G4SAIDXSDATA@"
export G4ENSDFSTATEDATA="@G4ENSDFSTATEDATA@"
fi
export ROOT_LIBRARY_DIR="@ROOT_LIBRARY_DIR@"
export ROOT_LIBRARIES="@ROOT_LIBRARIES@"
export ROOT_INCLUDE_DIR="@ROOT_INCLUDE_DIR@"
export ROOT_INCLUDE_PATH="@ROOT_INCLUDE_PATH@"
export VMCWORKDIR="@VMCWORKDIR@"
export FAIRLIBDIR="@FAIRLIBDIR@"
export PYTHONPATH="@MY_PYTHONPATH@"
export DYLD_LIBRARY_PATH="@MY_DYLD_LIBRARY_PATH@"
export LD_LIBRARY_PATH="@MY_LD_LIBRARY_PATH@"
export PATH="@MY_PATH@"
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment