Warning, /jana2/src/libraries/JANA/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001
0002
0003 # Everything else happens below
0004 set(JANA2_SOURCES
0005
0006 JApplication.cc
0007 JEvent.cc
0008 JEventSource.cc
0009 JFactory.cc
0010 JFactorySet.cc
0011 JMultifactory.cc
0012 JService.cc
0013 JVersion.cc
0014 JEvent.cc
0015 JLogger.cc
0016
0017 Engine/JExecutionEngine.cc
0018
0019 Topology/JArrow.cc
0020 Topology/JEventSourceArrow.cc
0021 Topology/JEventMapArrow.cc
0022 Topology/JEventTapArrow.cc
0023 Topology/JTopologyBuilder.cc
0024
0025 Services/JComponentManager.cc
0026 Services/JParameterManager.cc
0027 Services/JPluginLoader.cc
0028 Services/JWiringService.cc
0029
0030 Components/JComponentSummary.cc
0031
0032 Utils/JCpuInfo.cc
0033 Utils/JProcessorMapping.cc
0034 Utils/JBenchUtils.cc
0035 Utils/JStringification.cc
0036 Utils/JAutoActivator.cc
0037 Utils/JTablePrinter.cc
0038 Utils/JCallGraphRecorder.cc
0039 Utils/JInspector.cc
0040 Utils/JApplicationInspector.cc
0041 Utils/JBacktrace.cc
0042
0043 Calibrations/JCalibration.cc
0044 Calibrations/JCalibrationFile.cc
0045 Calibrations/JResource.cc
0046
0047 Geometry/JGeometryManager.cc
0048 Geometry/JGeometryXML.cc
0049
0050 CLI/JBenchmarker.cc
0051 CLI/JSignalHandler.cc
0052 CLI/JMain.cc
0053 )
0054
0055 if (${USE_PODIO})
0056 list(APPEND JANA2_SOURCES
0057 Podio/JFactoryPodioT.cc
0058 )
0059 endif()
0060
0061 if (NOT ${USE_XERCES})
0062 message(STATUS "Skipping support for libJANA's JGeometryXML because USE_XERCES=Off")
0063 endif()
0064
0065 add_library(jana2 OBJECT ${JANA2_SOURCES})
0066
0067 find_package(Threads REQUIRED)
0068 set(THREADS_PREFER_PTHREAD_FLAG ON)
0069 target_link_libraries(jana2 PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0070 target_link_libraries(jana2 PRIVATE VendoredTomlPlusPlus)
0071 target_link_libraries(jana2 PRIVATE VendoredMD5) # To pull in the header file
0072
0073 if (${USE_PODIO})
0074 target_link_libraries(jana2 PUBLIC podio::podio podio::podioRootIO ${ROOT_LIBRARIES})
0075 elseif (${USE_ROOT})
0076 target_link_libraries(jana2 PUBLIC ${ROOT_LIBRARIES})
0077 endif()
0078
0079
0080 # Build static library
0081 add_library(jana2_static_lib STATIC $<TARGET_OBJECTS:jana2> $<TARGET_OBJECTS:VendoredMD5>)
0082 set_target_properties(jana2_static_lib PROPERTIES PREFIX "lib" OUTPUT_NAME "JANA")
0083
0084 target_include_directories(jana2_static_lib PUBLIC $<INSTALL_INTERFACE:include>)
0085 target_link_libraries(jana2_static_lib PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0086 target_link_libraries(jana2_static_lib PUBLIC VendoredTomlPlusPlus)
0087
0088 if (${USE_PODIO})
0089 target_link_libraries(jana2_static_lib PUBLIC podio::podio podio::podioRootIO ${ROOT_LIBRARIES})
0090 elseif (${USE_ROOT})
0091 target_link_libraries(jana2_static_lib PUBLIC ${ROOT_LIBRARIES})
0092 endif()
0093 install(TARGETS jana2_static_lib EXPORT jana2_targets DESTINATION lib)
0094
0095
0096 # Build shared library
0097 add_library(jana2_shared_lib SHARED $<TARGET_OBJECTS:jana2> $<TARGET_OBJECTS:VendoredMD5>)
0098 set_target_properties(jana2_shared_lib PROPERTIES PREFIX "lib" OUTPUT_NAME "JANA")
0099
0100 target_include_directories(jana2_shared_lib PUBLIC $<INSTALL_INTERFACE:include>)
0101 target_link_libraries(jana2_shared_lib PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0102 target_link_libraries(jana2_shared_lib PUBLIC VendoredTomlPlusPlus)
0103
0104 if (${USE_PODIO})
0105 target_link_libraries(jana2_shared_lib PUBLIC podio::podio podio::podioRootIO ${ROOT_LIBRARIES})
0106 elseif (${USE_ROOT})
0107 target_link_libraries(jana2_shared_lib PUBLIC ${ROOT_LIBRARIES})
0108 endif()
0109
0110 install(TARGETS jana2_shared_lib EXPORT jana2_targets DESTINATION lib)
0111 set(INSTALL_RPATH_USE_LINK_PATH True)
0112
0113
0114 # Install "public" header files
0115
0116 file(GLOB jana_headers "*.h*")
0117 file(GLOB jana_engine_headers "Engine/*.h*")
0118 file(GLOB jana_services_headers "Services/*.h*")
0119 file(GLOB jana_streaming_headers "Streaming/*.h*")
0120 file(GLOB jana_utils_headers "Utils/*.h*")
0121 file(GLOB jana_calibs_headers "Calibrations/*.h*")
0122 file(GLOB jana_geometry_headers "Geometry/*.h*")
0123 file(GLOB jana_cli_headers "CLI/*.h*")
0124 file(GLOB jana_podio_headers "Podio/*.h*")
0125 file(GLOB jana_component_headers "Components/*.h*")
0126 file(GLOB jana_topology_headers "Topology/*.h*")
0127
0128 install(FILES ${jana_headers} DESTINATION include/JANA)
0129 install(FILES ${jana_engine_headers} DESTINATION include/JANA/Engine)
0130 install(FILES ${jana_services_headers} DESTINATION include/JANA/Services)
0131 install(FILES ${jana_streaming_headers} DESTINATION include/JANA/Streaming)
0132 install(FILES ${jana_utils_headers} DESTINATION include/JANA/Utils)
0133 install(FILES ${jana_calibs_headers} DESTINATION include/JANA/Calibrations)
0134 install(FILES ${jana_geometry_headers} DESTINATION include/JANA/Geometry)
0135 install(FILES ${jana_cli_headers} DESTINATION include/JANA/CLI)
0136 install(FILES ${jana_component_headers} DESTINATION include/JANA/Components)
0137 install(FILES ${jana_topology_headers} DESTINATION include/JANA/Topology)
0138
0139 if (${USE_PODIO})
0140 install(FILES ${jana_podio_headers} DESTINATION include/JANA/Podio)
0141 endif()
0142
0143
0144
0145
0146
0147