diff --git a/CMakeLists.txt b/CMakeLists.txt index 26ef3af4c004a56cbf93bb75e1f2e86ba60e1588..4c311da59b35d8ffa1319447e072366bcb19c9f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,13 +19,9 @@ SET( SLIC_VERSION_PATCH 0 ) INCLUDE( ExternalProject ) -IF ( NOT GLOBAL_INSTALL_DIR ) - SET( GLOBAL_INSTALL_DIR "$ENV{HOME}/slic" ) - MESSAGE( STATUS "Global install dir set to: ${GLOBAL_INSTALL_DIR}" ) -ENDIF() - -#IF( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) -SET( CMAKE_INSTALL_PREFIX ${GLOBAL_INSTALL_DIR}/slic ) +#IF ( NOT CMAKE_INSTALL_PREFIX ) +# SET( CMAKE_INSTALL_PREFIX "$ENV{HOME}/slic" ) +# MESSAGE( STATUS "Global install dir set to: ${CMAKE_INSTALL_PREFIX}" ) #ENDIF() MESSAGE( STATUS "SLIC install dir set to: ${CMAKE_INSTALL_PREFIX}" ) @@ -47,19 +43,16 @@ LIST( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ) FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc ) # dependency list in build order -SET( DEPENDENCIES XERCES Geant4 LCIO HEPPDT GDML LCDD ) +SET( DEPENDENCIES XERCES Geant4 GDML LCDD LCIO HEPPDT ) ADD_CUSTOM_TARGET( extdeps ) FOREACH( dependency ${DEPENDENCIES} ) - IF ( ${dependency}_DIR ) - FIND_PACKAGE( ${dependency} QUIET ) - IF ( ${dependency}_FOUND ) - MESSAGE( STATUS "${dependency} was found at: ${${dependency}_DIR}" ) - IF( NOT TARGET ${dependency} ) - ADD_CUSTOM_TARGET( ${dependency} ) - ENDIF() - ELSE() - MESSAGE( FATAL_ERROR "You specified ${dependency}_DIR but this does not appear to point to a valid install of ${dependency}." ) + #MESSAGE( "processing dep: ${dependency}" ) + FIND_PACKAGE( ${dependency} ) + IF ( ${dependency}_FOUND ) + MESSAGE( STATUS "${dependency} was found at: ${${dependency}_DIR}" ) + IF( NOT TARGET ${dependency} ) + ADD_CUSTOM_TARGET( ${dependency} ) ENDIF() ELSE() MESSAGE( STATUS "${dependency} was not found and will be installed as an external project." ) @@ -67,6 +60,9 @@ FOREACH( dependency ${DEPENDENCIES} ) SET( DEPENDENCIES_NOTFOUND "YES" FORCE ) ENDIF() ADD_DEPENDENCIES( extdeps ${dependency} ) + #MESSAGE(" ${dependency}_DIR=${${dependency}_DIR}" ) + #MESSAGE(" ${dependency}_VERSION=${${dependency}_VERSION}" ) + #MESSAGE(" ${dependency}_FOUND=${${dependency}_FOUND}" ) ENDFOREACH() IF ( DEPENDENCIES_NOTFOUND ) @@ -89,7 +85,7 @@ ELSE() # configure files CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/include/PackageInfo.hh.in ${PROJECT_SOURCE_DIR}/include/PackageInfo.hh) CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/include/Geant4VersionInfo.hh.in ${PROJECT_SOURCE_DIR}/include/Geant4VersionInfo.hh ) - CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/scripts/create_slic_tarball.sh.in ${PROJECT_SOURCE_DIR}/scripts/create_slic_tarball.sh ) + #CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/scripts/create_slic_tarball.sh.in ${PROJECT_SOURCE_DIR}/scripts/create_slic_tarball.sh ) # additional compilation flags for Geant4 INCLUDE( ${Geant4_USE_FILE} ) @@ -104,11 +100,11 @@ ELSE() LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} ${LCDD_LIBRARY_DIR} ${LCIO_LIBRARY_DIRS} ) # install - INSTALL( TARGETS slic slic DESTINATION bin ) + INSTALL( TARGETS slic slic DESTINATION slic/bin ) # install env setup script CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/scripts/slic-env.sh.in ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh ) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh DESTINATION bin + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh DESTINATION slic/bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ENDIF() diff --git a/cmake/FindLCDD.cmake b/cmake/FindLCDD.cmake index 4bdd19c7a047f57dc288d9162affa59e90851e6c..a58c35c36a7bdbec77ef7e4044e539f9053e37f0 100644 --- a/cmake/FindLCDD.cmake +++ b/cmake/FindLCDD.cmake @@ -3,4 +3,4 @@ FIND_PATH( LCDD_INCLUDE_DIR lcdd/core/LCDDProcessor.hh ${LCDD_DIR}/include ) FIND_LIBRARY( LCDD_LIBRARY lcdd ${LCDD_DIR}/lib/ ) INCLUDE( FindPackageHandleStandardArgs ) -FIND_PACKAGE_HANDLE_STANDARD_ARGS( LCDD DEFAULT_MSG LCDD_DIR ) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( LCDD DEFAULT_MSG LCDD_INCLUDE_DIR LCDD_LIBRARY ) diff --git a/cmake/InstallGDML.cmake b/cmake/InstallGDML.cmake index 945295b4f0e953eb2a4b19c12cf4ecaa5f66bf18..81ca5363092859a75277b9aace015fba73aeb2ca 100644 --- a/cmake/InstallGDML.cmake +++ b/cmake/InstallGDML.cmake @@ -9,15 +9,15 @@ EXTERNALPROJECT_ADD( DEPENDS XERCES Geant4 GIT_REPOSITORY "https://github.com/slaclab/gdml" - GIT_TAG "${GDML_VERSION}" + GIT_TAG ${GDML_VERSION} UPDATE_COMMAND "" PATCH_COMMAND "" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/gdml" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GLOBAL_INSTALL_DIR}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} + SOURCE_DIR "${CMAKE_BINARY_DIR}/gdml" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} BUILD_COMMAND make -j4 ) -SET( GDML_DIR ${GLOBAL_INSTALL_DIR}/gdml CACHE PATH "GDML install dir" FORCE ) +SET( GDML_DIR ${CMAKE_INSTALL_PREFIX}/gdml CACHE PATH "GDML install dir" FORCE ) diff --git a/cmake/InstallGeant4.cmake b/cmake/InstallGeant4.cmake index 67a7e33f7a1f3f4fdc5fba1de3d5141218d85714..049a47264a114daae960b29c29f4d17ee48e2de3 100644 --- a/cmake/InstallGeant4.cmake +++ b/cmake/InstallGeant4.cmake @@ -3,23 +3,28 @@ IF( NOT Geant4_VERSION ) ENDIF() IF ( Geant4_VERSION EQUAL "master" ) - MESSAGE( FATAL "Installing Geant4 from github master is not allowed." ) + MESSAGE( FATAL_ERROR "Installing Geant4 from github master is not allowed." ) +ENDIF() + +IF ( NOT GEANT4_INSTALL_DATA ) + SET( GEANT4_INSTALL_DATA "OFF" ) ENDIF() EXTERNALPROJECT_ADD( Geant4 GIT_REPOSITORY "https://github.com/Geant4/geant4" - GIT_TAG "${GEANT4_VERSION}" + GIT_TAG ${GEANT4_VERSION} UPDATE_COMMAND "" PATCH_COMMAND "" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/geant4" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GLOBAL_INSTALL_DIR}/geant4 -DGEANT4_INSTALL_DATA=ON + SOURCE_DIR "${CMAKE_BINARY_DIR}/geant4" + + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/geant4 -DGEANT4_INSTALL_DATA=${GEANT4_INSTALL_DATA} BUILD_COMMAND make -j4 ) STRING( REPLACE "v" "" Geant4_VERSION_NUMBER ${Geant4_VERSION} ) -SET( Geant4_DIR ${GLOBAL_INSTALL_DIR}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE ) +SET( Geant4_DIR ${CMAKE_INSTALL_PREFIX}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE ) diff --git a/cmake/InstallHEPPDT.cmake b/cmake/InstallHEPPDT.cmake index 620c872d39a93a4ebbe3f499cd02a7a359a7c104..6532351522d8797c59acb0d45732b5665ca02ed0 100644 --- a/cmake/InstallHEPPDT.cmake +++ b/cmake/InstallHEPPDT.cmake @@ -3,12 +3,12 @@ EXTERNALPROJECT_ADD( URL "http://lcgapp.cern.ch/project/simu/HepPDT/download/HepPDT-3.04.01.tar.gz" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/heppdt" + SOURCE_DIR "${CMAKE_BINARY_DIR}/heppdt" UPDATE_COMMAND "" PATCH_COMMAND "" - CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/extdep/heppdt/configure" --prefix=${GLOBAL_INSTALL_DIR}/heppdt + CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/heppdt/configure" --prefix=${CMAKE_INSTALL_PREFIX}/heppdt ) -SET( HEPPDT_DIR ${GLOBAL_INSTALL_DIR}/heppdt CACHE PATH "HEPPDT install dir" FORCE ) +SET( HEPPDT_DIR ${CMAKE_INSTALL_PREFIX}/heppdt CACHE PATH "HEPPDT install dir" FORCE ) diff --git a/cmake/InstallLCDD.cmake b/cmake/InstallLCDD.cmake index 31afbb123b0abd248cb03427cbfbd3d24d09368b..138229aba9da0406e35421a55dff497379bf7040 100644 --- a/cmake/InstallLCDD.cmake +++ b/cmake/InstallLCDD.cmake @@ -8,15 +8,16 @@ EXTERNALPROJECT_ADD( DEPENDS XERCES Geant4 GDML GIT_REPOSITORY "https://github.com/slaclab/lcdd" - GIT_TAG "${LCDD_VERSION}" + GIT_TAG ${LCDD_VERSION} UPDATE_COMMAND "" PATCH_COMMAND "" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/lcdd" - CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${GLOBAL_INSTALL_DIR}/lcdd -DGDML_DIR=${GDML_DIR} -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} + SOURCE_DIR "${CMAKE_BINARY_DIR}/lcdd" + + CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/lcdd -DGDML_DIR=${GDML_DIR} -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} BUILD_COMMAND make -j4 ) -SET( LCDD_DIR ${GLOBAL_INSTALL_DIR}/lcdd CACHE PATH "LCDD install dir" FORCE ) +SET( LCDD_DIR "${CMAKE_INSTALL_PREFIX}/lcdd" CACHE PATH "LCDD install dir" FORCE ) diff --git a/cmake/InstallLCIO.cmake b/cmake/InstallLCIO.cmake index 161f5d09506238a45a825e69d8d87c96f9f32d49..2fd7720103f5dea6289c953a94bc0a1606dc14f7 100644 --- a/cmake/InstallLCIO.cmake +++ b/cmake/InstallLCIO.cmake @@ -6,15 +6,15 @@ EXTERNALPROJECT_ADD( LCIO GIT_REPOSITORY "https://github.com/iLCSoft/LCIO" - GIT_TAG "${LCIO_VERSION}" + GIT_TAG ${LCIO_VERSION} UPDATE_COMMAND "" PATCH_COMMAND "" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/lcio" - CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${GLOBAL_INSTALL_DIR}/lcio + SOURCE_DIR "${CMAKE_BINARY_DIR}/lcio" + CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/lcio BUILD_COMMAND make -j4 ) -SET( LCIO_DIR ${GLOBAL_INSTALL_DIR}/lcio CACHE PATH "LCIO install dir" FORCE ) +SET( LCIO_DIR ${CMAKE_INSTALL_PREFIX}/lcio CACHE PATH "LCIO install dir" FORCE ) diff --git a/cmake/InstallXERCES.cmake b/cmake/InstallXERCES.cmake index 4546cd67072e012b33709089548b3e9b599ace7d..58853962b095eeba5654c248875b750a56f9cf03 100644 --- a/cmake/InstallXERCES.cmake +++ b/cmake/InstallXERCES.cmake @@ -3,12 +3,12 @@ EXTERNALPROJECT_ADD( XERCES URL "http://apache.cs.utah.edu//xerces/c/3/sources/xerces-c-3.1.4.tar.gz" - SOURCE_DIR "${CMAKE_BINARY_DIR}/extdep/xerces" + SOURCE_DIR "${CMAKE_BINARY_DIR}/xerces" UPDATE_COMMAND "" PATCH_COMMAND "" - CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/extdep/xerces/configure" --enable-shared --disable-static --prefix=${GLOBAL_INSTALL_DIR}/xerces + CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/xerces/configure" --enable-shared --disable-static --prefix=${CMAKE_INSTALL_PREFIX}/xerces ) -SET( XERCES_DIR ${GLOBAL_INSTALL_DIR}/xerces CACHE PATH "XERCES install dir" FORCE ) +SET( XERCES_DIR ${CMAKE_INSTALL_PREFIX}/xerces CACHE PATH "XERCES install dir" FORCE ) diff --git a/scripts/slic-env.sh.in b/scripts/slic-env.sh.in index f8e11360ec7e4c7ca0a5cf0f2d6034289c011a41..a5cb228e6d394847c53f1694737ff61a22bf0a0e 100755 --- a/scripts/slic-env.sh.in +++ b/scripts/slic-env.sh.in @@ -11,7 +11,7 @@ export GDML_SCHEMA_DIR=@GDML_DIR@/schemas . @Geant4_DIR@/../../bin/geant4.sh -export PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH +export PATH=@CMAKE_INSTALL_PREFIX@/slic/bin:$PATH echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR"