diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e65099568c9177102745a986b43643537ba4832..a2301c8a5c5932105b7a0d65a494aa1f7b1dc4b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,10 @@ FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc ) # dependency list in build order SET( DEPENDENCIES XERCES Geant4 GDML LCDD LCIO HEPPDT ) +IF ( NOT DEPENDENCY_INSTALL_DIR ) + SET( DEPENDENCY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/extdeps ) +ENDIF() + ADD_CUSTOM_TARGET( extdeps ) FOREACH( dependency ${DEPENDENCIES} ) #MESSAGE( "processing dep: ${dependency}" ) @@ -68,15 +72,16 @@ ENDFOREACH() IF ( DEPENDENCIES_NOTFOUND ) MESSAGE( "Some dependencies were not found. Run 'make' to build them, or rerun CMake and provide their location (e.g. Geant4_DIR etc.)." ) - MESSAGE( "After building any missing dependencies you will need to rerun CMake." ) + MESSAGE( "Set '-DDEPENDENCY_INSTALL_DIR=/my/install/dir' to set the directory where external projects will be installed." ) + MESSAGE( "After building any missing dependencies you will need to rerun CMake to resolve them for the build." ) ELSE() - MESSAGE( "All dependencies were found. Run 'make' to build SLIC and 'make install' to install to '${CMAKE_INSTALL_PREFIX}'." ) + MESSAGE( "All dependencies were found. Run 'make' to build SLIC and 'make install' to install to: ${CMAKE_INSTALL_PREFIX}" ) # build user plugin library FILE( GLOB_RECURSE plugin_sources ${PROJECT_SOURCE_DIR}/plugins/*.cc ) ADD_LIBRARY( slicPlugins SHARED ${plugin_sources} ) - INSTALL( TARGETS slicPlugins DESTINATION ${CMAKE_INSTALL_PREFIX}/slic/lib ) + INSTALL( TARGETS slicPlugins DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) # set executable target ADD_EXECUTABLE( slic ${library_sources} slic.cc ) @@ -104,11 +109,11 @@ ELSE() LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} ${LCDD_LIBRARY_DIR} ${LCIO_LIBRARY_DIRS} ) # install - INSTALL( TARGETS slic slic DESTINATION slic/bin ) + INSTALL( TARGETS slic slic DESTINATION 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 slic/bin + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ENDIF() diff --git a/cmake/InstallGDML.cmake b/cmake/InstallGDML.cmake index 81ca5363092859a75277b9aace015fba73aeb2ca..39b1c6031da40e4f737035af85372452572986b7 100644 --- a/cmake/InstallGDML.cmake +++ b/cmake/InstallGDML.cmake @@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD( PATCH_COMMAND "" SOURCE_DIR "${CMAKE_BINARY_DIR}/gdml" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} BUILD_COMMAND make -j4 ) -SET( GDML_DIR ${CMAKE_INSTALL_PREFIX}/gdml CACHE PATH "GDML install dir" FORCE ) +SET( GDML_DIR ${DEPENDENCY_INSTALL_DIR}/gdml CACHE PATH "GDML install dir" FORCE ) diff --git a/cmake/InstallGeant4.cmake b/cmake/InstallGeant4.cmake index 049a47264a114daae960b29c29f4d17ee48e2de3..fb78efbb0d903ec7575d623149ecc2befcf36628 100644 --- a/cmake/InstallGeant4.cmake +++ b/cmake/InstallGeant4.cmake @@ -21,10 +21,10 @@ EXTERNALPROJECT_ADD( SOURCE_DIR "${CMAKE_BINARY_DIR}/geant4" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/geant4 -DGEANT4_INSTALL_DATA=${GEANT4_INSTALL_DATA} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/geant4 -DGEANT4_INSTALL_DATA=${GEANT4_INSTALL_DATA} BUILD_COMMAND make -j4 ) STRING( REPLACE "v" "" Geant4_VERSION_NUMBER ${Geant4_VERSION} ) -SET( Geant4_DIR ${CMAKE_INSTALL_PREFIX}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE ) +SET( Geant4_DIR ${DEPENDENCY_INSTALL_DIR}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE ) diff --git a/cmake/InstallHEPPDT.cmake b/cmake/InstallHEPPDT.cmake index 6532351522d8797c59acb0d45732b5665ca02ed0..43e92c26efee756e380c727d0d2e8d634da771e1 100644 --- a/cmake/InstallHEPPDT.cmake +++ b/cmake/InstallHEPPDT.cmake @@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD( UPDATE_COMMAND "" PATCH_COMMAND "" - CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/heppdt/configure" --prefix=${CMAKE_INSTALL_PREFIX}/heppdt + CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/heppdt/configure" --prefix=${DEPENDENCY_INSTALL_DIR}/heppdt ) -SET( HEPPDT_DIR ${CMAKE_INSTALL_PREFIX}/heppdt CACHE PATH "HEPPDT install dir" FORCE ) +SET( HEPPDT_DIR ${DEPENDENCY_INSTALL_DIR}/heppdt CACHE PATH "HEPPDT install dir" FORCE ) diff --git a/cmake/InstallLCDD.cmake b/cmake/InstallLCDD.cmake index 138229aba9da0406e35421a55dff497379bf7040..761fe157796960f3edfb57c89da3e1b810fd6cea 100644 --- a/cmake/InstallLCDD.cmake +++ b/cmake/InstallLCDD.cmake @@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD( 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} + CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/lcdd -DGDML_DIR=${GDML_DIR} -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR} BUILD_COMMAND make -j4 ) -SET( LCDD_DIR "${CMAKE_INSTALL_PREFIX}/lcdd" CACHE PATH "LCDD install dir" FORCE ) +SET( LCDD_DIR "${DEPENDENCY_INSTALL_DIR}/lcdd" CACHE PATH "LCDD install dir" FORCE ) diff --git a/cmake/InstallLCIO.cmake b/cmake/InstallLCIO.cmake index 2fd7720103f5dea6289c953a94bc0a1606dc14f7..84b14f8c32e459fba5bfeb33f92443b5d3995b0b 100644 --- a/cmake/InstallLCIO.cmake +++ b/cmake/InstallLCIO.cmake @@ -12,9 +12,9 @@ EXTERNALPROJECT_ADD( PATCH_COMMAND "" SOURCE_DIR "${CMAKE_BINARY_DIR}/lcio" - CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/lcio + CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/lcio BUILD_COMMAND make -j4 ) -SET( LCIO_DIR ${CMAKE_INSTALL_PREFIX}/lcio CACHE PATH "LCIO install dir" FORCE ) +SET( LCIO_DIR ${DEPENDENCY_INSTALL_DIR}/lcio CACHE PATH "LCIO install dir" FORCE ) diff --git a/cmake/InstallXERCES.cmake b/cmake/InstallXERCES.cmake index 58853962b095eeba5654c248875b750a56f9cf03..0ab638c3331af9dc69ee251c975367d5089b5e15 100644 --- a/cmake/InstallXERCES.cmake +++ b/cmake/InstallXERCES.cmake @@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD( UPDATE_COMMAND "" PATCH_COMMAND "" - CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/xerces/configure" --enable-shared --disable-static --prefix=${CMAKE_INSTALL_PREFIX}/xerces + CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/xerces/configure" --enable-shared --disable-static --prefix=${DEPENDENCY_INSTALL_DIR}/xerces ) -SET( XERCES_DIR ${CMAKE_INSTALL_PREFIX}/xerces CACHE PATH "XERCES install dir" FORCE ) +SET( XERCES_DIR ${DEPENDENCY_INSTALL_DIR}/xerces CACHE PATH "XERCES install dir" FORCE ) diff --git a/scripts/slic-env.sh.in b/scripts/slic-env.sh.in index d2e03850185010dbf309dd37ded83b6ab71cc03b..1f2800afd16f8ae68812ec5f0d2a477bb9df343e 100755 --- a/scripts/slic-env.sh.in +++ b/scripts/slic-env.sh.in @@ -1,6 +1,6 @@ #!/bin/sh -export LD_LIBRARY_PATH=@HEPPDT_DIR@/lib/:@GDML_DIR@/lib:@LCDD_DIR@/lib:@LCIO_DIR@/lib:@XERCES_DIR@/lib:@CMAKE_INSTALL_PREFIX@/slic/lib +export LD_LIBRARY_PATH=@HEPPDT_DIR@/lib/:@GDML_DIR@/lib:@LCDD_DIR@/lib:@LCIO_DIR@/lib:@XERCES_DIR@/lib:@CMAKE_INSTALL_PREFIX@/lib if [ "@CMAKE_CXX_COMPILER@" != "/usr/bin/g++" ] then @@ -11,9 +11,9 @@ fi . @Geant4_DIR@/../../bin/geant4.sh -export PATH=@CMAKE_INSTALL_PREFIX@/slic/bin:$PATH +export PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" -echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR" +#echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR" env | grep G4 | sort which slic