Skip to content
Snippets Groups Projects
Commit 8053420f authored by Jeremy McCormick's avatar Jeremy McCormick Committed by GitHub
Browse files

Separate external dep install dir from CMake prefix dir (#36)

* separate the slic prefix from the install dir for external projects

* correct prefix dirs for ext deps
parent 8b8c20dd
No related branches found
No related tags found
No related merge requests found
...@@ -42,6 +42,10 @@ FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc ) ...@@ -42,6 +42,10 @@ FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc )
# dependency list in build order # dependency list in build order
SET( DEPENDENCIES XERCES Geant4 GDML LCDD LCIO HEPPDT ) 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 ) ADD_CUSTOM_TARGET( extdeps )
FOREACH( dependency ${DEPENDENCIES} ) FOREACH( dependency ${DEPENDENCIES} )
#MESSAGE( "processing dep: ${dependency}" ) #MESSAGE( "processing dep: ${dependency}" )
...@@ -68,15 +72,16 @@ ENDFOREACH() ...@@ -68,15 +72,16 @@ ENDFOREACH()
IF ( DEPENDENCIES_NOTFOUND ) 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( "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() 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 # build user plugin library
FILE( GLOB_RECURSE plugin_sources ${PROJECT_SOURCE_DIR}/plugins/*.cc ) FILE( GLOB_RECURSE plugin_sources ${PROJECT_SOURCE_DIR}/plugins/*.cc )
ADD_LIBRARY( slicPlugins SHARED ${plugin_sources} ) 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 # set executable target
ADD_EXECUTABLE( slic ${library_sources} slic.cc ) ADD_EXECUTABLE( slic ${library_sources} slic.cc )
...@@ -104,11 +109,11 @@ ELSE() ...@@ -104,11 +109,11 @@ ELSE()
LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} ${LCDD_LIBRARY_DIR} ${LCIO_LIBRARY_DIRS} ) LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} ${LCDD_LIBRARY_DIR} ${LCIO_LIBRARY_DIRS} )
# install # install
INSTALL( TARGETS slic slic DESTINATION slic/bin ) INSTALL( TARGETS slic slic DESTINATION bin )
# install env setup script # install env setup script
CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/scripts/slic-env.sh.in ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh ) 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) PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
ENDIF() ENDIF()
......
...@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD( ...@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD(
PATCH_COMMAND "" PATCH_COMMAND ""
SOURCE_DIR "${CMAKE_BINARY_DIR}/gdml" 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 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 )
...@@ -21,10 +21,10 @@ EXTERNALPROJECT_ADD( ...@@ -21,10 +21,10 @@ EXTERNALPROJECT_ADD(
SOURCE_DIR "${CMAKE_BINARY_DIR}/geant4" 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 BUILD_COMMAND make -j4
) )
STRING( REPLACE "v" "" Geant4_VERSION_NUMBER ${Geant4_VERSION} ) 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 )
...@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD( ...@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD(
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_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 )
...@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD( ...@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD(
SOURCE_DIR "${CMAKE_BINARY_DIR}/lcdd" 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 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 )
...@@ -12,9 +12,9 @@ EXTERNALPROJECT_ADD( ...@@ -12,9 +12,9 @@ EXTERNALPROJECT_ADD(
PATCH_COMMAND "" PATCH_COMMAND ""
SOURCE_DIR "${CMAKE_BINARY_DIR}/lcio" 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 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 )
...@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD( ...@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD(
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_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 )
#!/bin/sh #!/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++" ] if [ "@CMAKE_CXX_COMPILER@" != "/usr/bin/g++" ]
then then
...@@ -11,9 +11,9 @@ fi ...@@ -11,9 +11,9 @@ fi
. @Geant4_DIR@/../../bin/geant4.sh . @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 "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR" #echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR"
env | grep G4 | sort env | grep G4 | sort
which slic which slic
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment