Back to home page

EIC code displayed by LXR

 
 

    


Warning, /eicd/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.12)
0002 project(EICD 
0003   VERSION 1.1.0
0004   LANGUAGES CXX)
0005 
0006 set(CMAKE_CXX_STANDARD 20)
0007 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0008 
0009 #--- Declare options -----------------------------------------------------------
0010 option(BUILD_DATA_MODEL "Run podio class generator yaml file" ON)
0011 
0012 if(APPLE)
0013   set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
0014 endif(APPLE)
0015 
0016 include(GNUInstallDirs)
0017 
0018 find_package(podio 0.15 REQUIRED)
0019 include_directories(${podio_INCLUDE_DIR})
0020 
0021 find_package(EDM4HEP 0.4.1 REQUIRED)
0022 
0023 list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
0024 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
0025 find_package(ROOT 6 REQUIRED COMPONENTS Core RIO Tree)
0026 include(${ROOT_USE_FILE})
0027 
0028 PODIO_GENERATE_DATAMODEL(eicd eic_data.yaml headers sources
0029   UPSTREAM_EDM edm4hep:${EDM4HEP_DATA_DIR}/edm4hep.yaml
0030   IO_BACKEND_HANDLERS ${PODIO_IO_HANDLERS}
0031   OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR}
0032   )
0033 
0034 PODIO_ADD_DATAMODEL_CORE_LIB(eicd "${headers}" "${sources}"
0035   OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR}
0036 )
0037 # The target for the data model library is defined in podio/cmake/podioMacros.cmake
0038 # Any changes to that target name upstream may require changes to the target used here 
0039 target_include_directories(eicd PUBLIC ${EDM4HEP_INCLUDE_DIR})
0040 
0041 PODIO_ADD_ROOT_IO_DICT(eicdDict eicd "${headers}" src/selection.xml
0042   OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR}
0043 )
0044 
0045 add_library(eicd::eicdDict ALIAS eicdDict )
0046 
0047 list(APPEND EICD_INSTALL_LIBS eicd eicdDict)
0048 
0049 add_subdirectory(utils)
0050 
0051 install(TARGETS ${EICD_INSTALL_LIBS}
0052   EXPORT EICDTargets
0053   RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
0054   LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib
0055   PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/eicd"
0056   COMPONENT dev)
0057 
0058 install(FILES
0059   "${PROJECT_BINARY_DIR}/eicdDictDict.rootmap"
0060   DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT dev)
0061 
0062 install(FILES
0063   eic_data.yaml
0064   DESTINATION "${CMAKE_INSTALL_DATADIR}/eicd" COMPONENT dev)
0065 
0066 install(FILES
0067   "${PROJECT_BINARY_DIR}/libeicdDict_rdict.pcm"
0068   DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT dev)
0069 
0070 # -------------------------
0071 # install class documentation
0072 
0073 cmake_path(RELATIVE_PATH CMAKE_CURRENT_BINARY_DIR
0074   OUTPUT_VARIABLE CMAKE_CURRENT_BINARY_RELATIVE_DIR)
0075 configure_file(
0076   ${CMAKE_SOURCE_DIR}/docs/Doxyfile.in
0077   ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
0078   @ONLY)
0079 
0080 find_package(Doxygen COMPONENTS dot)
0081 if(DOXYGEN_FOUND)
0082   add_custom_target(docs ALL
0083     COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
0084     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
0085     COMMENT "Generating API documentation with Doxygen"
0086     VERBATIM)
0087 else()
0088   message(STATUS "Doxygen not found; no documentation will be built.")
0089 endif()
0090 
0091 # -------------------------
0092 # install library config
0093 include(CMakePackageConfigHelpers)
0094 
0095 # Install and export targets
0096 install(EXPORT ${PROJECT_NAME}Targets
0097   FILE ${PROJECT_NAME}Targets.cmake
0098   NAMESPACE EICD::
0099   DESTINATION lib/EICD
0100   )
0101 
0102 set(TARGETS_INSTALL_PATH lib/EICD/EICDTargets.cmake)
0103 
0104 configure_package_config_file(
0105   cmake/EICDConfig.cmake.in  
0106   ${CMAKE_CURRENT_BINARY_DIR}/EICDConfig.cmake
0107   INSTALL_DESTINATION lib/EICD
0108   PATH_VARS TARGETS_INSTALL_PATH
0109   )
0110 
0111 write_basic_package_version_file("EICDConfigVersion.cmake"
0112   VERSION ${VERSION}
0113   COMPATIBILITY SameMajorVersion
0114   )
0115 
0116 install(FILES
0117   ${CMAKE_CURRENT_BINARY_DIR}/EICDConfig.cmake
0118   ${CMAKE_CURRENT_BINARY_DIR}/EICDConfigVersion.cmake
0119   DESTINATION lib/EICD
0120   )
0121