diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c1f685bce556948eaef0ba399538977624d1ca7..48c3d8682252395ea4481c8fc8927c6007eaed90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ if(APPLE) set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") endif(APPLE) +include(GNUInstallDirs) find_package(podio 0.15 REQUIRED) include_directories(${podio_INCLUDE_DIR}) @@ -22,60 +23,47 @@ find_package(EDM4HEP 0.4.1 REQUIRED) #include(cmake/root.cmake) list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS}) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -find_package(ROOT REQUIRED COMPONENTS Core RIO Tree) +find_package(ROOT 6 REQUIRED COMPONENTS Core RIO Tree) include(${ROOT_USE_FILE}) PODIO_GENERATE_DATAMODEL(eicd eic_data.yaml headers sources UPSTREAM_EDM edm4hep:${EDM4HEP_DATA_DIR}/edm4hep.yaml + IO_BACKEND_HANDLERS ${PODIO_IO_HANDLERS} OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR} ) -add_library(eicd SHARED - ${sources} - ) +PODIO_ADD_DATAMODEL_CORE_LIB(eicd "${headers}" "${sources}" + OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR} +) -target_link_libraries(eicd - PUBLIC EDM4HEP::edm4hep - PUBLIC podio::podio - PUBLIC ROOT::Core - ) -target_include_directories(eicd - PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> - $<INSTALL_INTERFACE:include>) - -target_compile_features(eicd - PUBLIC cxx_auto_type - PUBLIC cxx_trailing_return_types - PRIVATE cxx_variadic_templates - PRIVATE cxx_std_17) - -PODIO_GENERATE_DICTIONARY(eicd ${headers} - SELECTION ${CMAKE_CURRENT_BINARY_DIR}/src/selection.xml - OPTIONS --library ${CMAKE_SHARED_LIBRARY_PREFIX}eicd${CMAKE_SHARED_LIBRARY_SUFFIX} - ) -set_target_properties(eicd-dictgen PROPERTIES EXCLUDE_FROM_ALL TRUE) -target_sources(eicd PRIVATE eicd.cxx) +PODIO_ADD_ROOT_IO_DICT(eicdDict eicd "${headers}" src/selection.xml + OUTPUT_FOLDER ${CMAKE_CURRENT_BINARY_DIR} +) + +add_library(eicd::eicdDict ALIAS eicdDict ) + +list(APPEND EICD_INSTALL_LIBS eicd eicdDict) add_subdirectory(utils) +install(TARGETS ${EICD_INSTALL_LIBS} + EXPORT EICDTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/eicd" + COMPONENT dev) -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/eicd - DESTINATION include - FILES_MATCHING PATTERN *.h - ) +install(FILES + "${PROJECT_BINARY_DIR}/eicdDictDict.rootmap" + DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT dev) -install(TARGETS eicd - EXPORT ${PROJECT_NAME}Targets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include - ) +install(FILES + eic_data.yaml + DESTINATION "${CMAKE_INSTALL_DATADIR}/eicd" COMPONENT dev) install(FILES - "${PROJECT_BINARY_DIR}/eicdDict.rootmap" - "${PROJECT_BINARY_DIR}/libeicd_rdict.pcm" - DESTINATION lib) + "${PROJECT_BINARY_DIR}/libeicdDict_rdict.pcm" + DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT dev) add_custom_target( doc_doxygen #ALL COMMAND doxygen ${CMAKE_SOURCE_DIR}/docs/Doxyfile diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 11cd6fc46d59fd323ce1f2d9659a3de7c94acc45..2e7e8527e6d000b75be0553788fc0a000bb3e622 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -1,15 +1,5 @@ find_package(ROOT REQUIRED COMPONENTS GenVector MathCore) -#ROOT_GENERATE_DICTIONARY(G__NPDetGeoCad -# include/TGeoToStep.h -# OPTIONS -I${OpenCASCADE_INCLUDE_DIR} -# OPTIONS -I${CMAKE_CURRENT_SOURCE_DIR} -# OPTIONS -I${CMAKE_CURRENT_SOURCE_DIR}/include -# OPTIONS -I${CMAKE_CURRENT_SOURCE_DIR}/src -# LINKDEF include/LinkDef.h -# ) -#add_custom_target(G__NPDetGeoCad_ROOTDICT DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/G__NPDetGeoCad.cxx) - add_library(eicd_utils SHARED src/utils.cxx ) @@ -29,6 +19,7 @@ target_compile_options(eicd_utils PRIVATE target_link_libraries(eicd_utils PUBLIC eicd + PUBLIC EDM4HEP::edm4hep PUBLIC ROOT::GenVector ROOT::MathCore) target_include_directories(eicd_utils @@ -43,11 +34,6 @@ install(FILES include/eicd/vector_utils_legacy.h DESTINATION include/eicd ) -#install(FILES -# "${CMAKE_CURRENT_BINARY_DIR}/libNPDetGeoCad.rootmap" -# "${CMAKE_CURRENT_BINARY_DIR}/libNPDetGeoCad_rdict.pcm" -# DESTINATION lib) - install(TARGETS eicd_utils EXPORT ${PROJECT_NAME}Targets