Newer
Older
cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
#---------------------------
set( PackageName DDKalTest )
#---------------------------
project(${PackageName})
# project version
SET( ${PackageName}_VERSION_MAJOR 1 )
SET( ${PackageName}_VERSION_MINOR 7 )
SET( ${PackageName}_VERSION_PATCH 1 )
SET( ${PackageName}_VERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" )
SET( ${PackageName}_SOVERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" )
list(FIND ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake index)
if(index GREATER -1)
message(STATUS "${CMAKE_SOURCE_DIR}/cmake exists in the CMAKE_MODULE_PATH")
else()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake )
endif()
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#------------- set the default installation directory to be the source directory
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET( CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE PATH
"install prefix path - overwrite with -D CMAKE_INSTALL_PREFIX = ..."
FORCE )
MESSAGE(STATUS "CMAKE_INSTALL_PREFIX is ${CMAKE_INSTALL_PREFIX} - overwrite with -D CMAKE_INSTALL_PREFIX" )
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
find_package( DD4hep REQUIRED COMPONENTS DDRec )
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DD4hep_ROOT}/cmake )
include( DD4hep )
find_package( ROOT 6 REQUIRED COMPONENTS Geom )
if(DD4HEP_USE_XERCESC)
find_package(XercesC)
endif()
include(DD4hep_XML_setup)
#-------------------------------------------------------------
# add additional packages here
FIND_PACKAGE( ILCUTIL COMPONENTS ILCSOFT_CMAKE_MODULES streamlog REQUIRED )
# load default settings from ILCSOFT_CMAKE_MODULES
INCLUDE( ilcsoft_default_settings )
FIND_PACKAGE( LCIO REQUIRED )
FIND_PACKAGE( KalTest 1.5 REQUIRED )
FIND_PACKAGE( aidaTT REQUIRED )
FIND_PACKAGE( GSL REQUIRED )
#NB: need ROOT before KalTest (needed on case sensitive systems and classes that differ only in capitalization)
include_directories( SYSTEM ${DD4hep_INCLUDE_DIRS}
${ROOT_INCLUDE_DIRS}
)
FOREACH( pkg KalTest LCIO streamlog aidaTT GSL)
IF( ${pkg}_FOUND )
INCLUDE_DIRECTORIES( SYSTEM ${${pkg}_INCLUDE_DIRS} )
LINK_LIBRARIES( ${${pkg}_LIBRARIES} )
ENDIF()
ENDFOREACH()
add_definitions( -D AIDATT_USE_DD4HEP )
#-------------------------------------------------------------
include_directories( BEFORE ${PROJECT_SOURCE_DIR}/include )
file(GLOB sources ./src/*cc )
add_library(${PackageName} SHARED ${sources})
target_link_libraries(${PackageName} ${DD4hep_LIBRARIES} ${DD4hep_COMPONENT_LIBRARIES}
${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES}
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
)
SET_TARGET_PROPERTIES( ${PackageName} PROPERTIES VERSION ${${PackageName}_VERSION} SOVERSION ${${PackageName}_SOVERSION} )
add_executable( printSurfaces ./examples/printSurfaces.cc )
target_link_libraries( printSurfaces ${DD4hep_LIBRARIES} ${DD4hep_COMPONENT_LIBRARIES} ${PackageName})
#---Rootmap generation--------------------------------------------------------------
#if(APPLE)
# dd4hep_generate_rootmap_apple(${PackageName} )
#else()
# dd4hep_generate_rootmap(${PackageName} )
#endif()
#---- configure run environment ---------------
configure_file( ${DD4hep_ROOT}/cmake/thisdd4hep_package.sh.in this${PackageName}.sh @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/this${PackageName}.sh
DESTINATION bin
)
#--- install target-------------------------------------
INSTALL(FILES ${hfiles}
DESTINATION include/${PackageName}
)
install(TARGETS ${PackageName} printSurfaces
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
# to do: add corresponding uninstall...
#-------------------------------------------------------
# display some variables and write them to cache
DISPLAY_STD_VARIABLES()
# generate and install following configuration files
GENERATE_PACKAGE_CONFIGURATION_FILES( DDKalTestConfig.cmake DDKalTestConfigVersion.cmake )