Back to home page

EIC code displayed by LXR

 
 

    


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     JService.cc
0012     JVersion.cc
0013     JEvent.cc
0014     JLogger.cc
0015 
0016     Engine/JExecutionEngine.cc
0017 
0018     Topology/JArrow.cc
0019     Topology/JEventPool.cc
0020     Topology/JSourceArrow.cc
0021     Topology/JMapArrow.cc
0022     Topology/JTapArrow.cc
0023     Topology/JMultilevelSourceArrow.cc
0024     Topology/JTopologyBuilder.cc
0025 
0026     Services/JComponentManager.cc
0027     Services/JParameterManager.cc
0028     Services/JPluginLoader.cc
0029     Services/JWiringService.cc
0030 
0031     Components/JComponent.cc
0032     Components/JComponentSummary.cc
0033     Components/JDatabundle.cc
0034     Components/JHasInputs.cc
0035     Components/JHasOutputs.cc
0036 
0037     Utils/JCpuInfo.cc
0038     Utils/JProcessorMapping.cc
0039     Utils/JBenchUtils.cc
0040     Utils/JStringification.cc
0041     Utils/JAutoActivator.cc
0042     Utils/JTablePrinter.cc
0043     Utils/JCallGraphRecorder.cc
0044     Utils/JInspector.cc
0045     Utils/JApplicationInspector.cc
0046     Utils/JBacktrace.cc
0047 
0048     Calibrations/JCalibration.cc
0049     Calibrations/JCalibrationFile.cc
0050     Calibrations/JResource.cc
0051 
0052     Geometry/JGeometryManager.cc
0053     Geometry/JGeometryXML.cc
0054 
0055     CLI/JBenchmarker.cc
0056     CLI/JSignalHandler.cc
0057     CLI/JMain.cc
0058     )
0059 
0060 #if (${USE_PODIO})
0061 #    list(APPEND JANA2_SOURCES
0062 #   )
0063 #endif()
0064 
0065 if (NOT ${USE_XERCES})
0066     message(STATUS "Skipping support for libJANA's JGeometryXML because USE_XERCES=Off")
0067 endif()
0068 
0069 # Always compiled — JPerfettoService.cc contains a JANA2_HAVE_PERFETTO==0 stub
0070 # so it links correctly even when Perfetto support is not built in.
0071 list(APPEND JANA2_SOURCES Services/JPerfettoService.cc)
0072 
0073 add_library(jana2 OBJECT ${JANA2_SOURCES})
0074 
0075 find_package(Threads REQUIRED)
0076 set(THREADS_PREFER_PTHREAD_FLAG ON)
0077 target_link_libraries(jana2 PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0078 target_link_libraries(jana2 PRIVATE VendoredTomlPlusPlus)
0079 target_link_libraries(jana2 PRIVATE VendoredMD5) # To pull in the header file
0080 
0081 if (USE_PERFETTO)
0082     target_link_libraries(jana2 PUBLIC perfetto_sdk)
0083 endif()
0084 
0085 if (${USE_PODIO})
0086     target_link_libraries(jana2 PUBLIC podio::podio podio::podioRootIO)
0087 elseif (${USE_ROOT})
0088     target_link_libraries(jana2 PUBLIC ROOT::Core)
0089 endif()
0090 
0091 
0092 # Build static library
0093 add_library(jana2_static_lib STATIC $<TARGET_OBJECTS:jana2> $<TARGET_OBJECTS:VendoredMD5>)
0094 set_target_properties(jana2_static_lib PROPERTIES PREFIX "lib" OUTPUT_NAME "JANA")
0095 
0096 target_include_directories(jana2_static_lib PUBLIC $<INSTALL_INTERFACE:include>)
0097 target_link_libraries(jana2_static_lib PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0098 target_link_libraries(jana2_static_lib PUBLIC VendoredTomlPlusPlus)
0099 
0100 if (USE_PERFETTO)
0101     target_link_libraries(jana2_static_lib PUBLIC perfetto_sdk)
0102 endif()
0103 
0104 if (${USE_PODIO})
0105     target_link_libraries(jana2_static_lib PUBLIC podio::podio podio::podioRootIO)
0106 elseif (${USE_ROOT})
0107     target_link_libraries(jana2_static_lib PUBLIC ROOT::Core)
0108 endif()
0109 install(TARGETS jana2_static_lib EXPORT jana2_targets DESTINATION lib)
0110 
0111 
0112 # Build shared library
0113 add_library(jana2_shared_lib SHARED $<TARGET_OBJECTS:jana2> $<TARGET_OBJECTS:VendoredMD5>)
0114 set_target_properties(jana2_shared_lib PROPERTIES PREFIX "lib" OUTPUT_NAME "JANA")
0115 
0116 target_include_directories(jana2_shared_lib PUBLIC $<INSTALL_INTERFACE:include>)
0117 target_link_libraries(jana2_shared_lib PUBLIC ${CMAKE_DL_LIBS} Threads::Threads)
0118 target_link_libraries(jana2_shared_lib PUBLIC VendoredTomlPlusPlus)
0119 
0120 if (USE_PERFETTO)
0121     target_link_libraries(jana2_shared_lib PUBLIC perfetto_sdk)
0122 endif()
0123 
0124 if (${USE_PODIO})
0125     target_link_libraries(jana2_shared_lib PUBLIC podio::podio podio::podioRootIO)
0126 elseif (${USE_ROOT})
0127     target_link_libraries(jana2_shared_lib PUBLIC ROOT::Core)
0128 endif()
0129 
0130 install(TARGETS jana2_shared_lib EXPORT jana2_targets DESTINATION lib)
0131 set(INSTALL_RPATH_USE_LINK_PATH True)
0132 
0133 
0134 # Install "public" header files
0135 
0136 file(GLOB jana_headers "*.h*")
0137 file(GLOB jana_engine_headers "Engine/*.h*")
0138 file(GLOB jana_services_headers "Services/*.h*")
0139 file(GLOB jana_utils_headers "Utils/*.h*")
0140 file(GLOB jana_calibs_headers "Calibrations/*.h*")
0141 file(GLOB jana_geometry_headers "Geometry/*.h*")
0142 file(GLOB jana_cli_headers "CLI/*.h*")
0143 #file(GLOB jana_podio_headers "Podio/*.h*")
0144 file(GLOB jana_component_headers "Components/*.h*")
0145 file(GLOB jana_topology_headers "Topology/*.h*")
0146 
0147 install(FILES ${jana_headers} DESTINATION include/JANA)
0148 install(FILES ${jana_engine_headers} DESTINATION include/JANA/Engine)
0149 install(FILES ${jana_services_headers} DESTINATION include/JANA/Services)
0150 install(FILES ${jana_utils_headers} DESTINATION include/JANA/Utils)
0151 install(FILES ${jana_calibs_headers} DESTINATION include/JANA/Calibrations)
0152 install(FILES ${jana_geometry_headers} DESTINATION include/JANA/Geometry)
0153 install(FILES ${jana_cli_headers} DESTINATION include/JANA/CLI)
0154 install(FILES ${jana_component_headers} DESTINATION include/JANA/Components)
0155 install(FILES ${jana_topology_headers} DESTINATION include/JANA/Topology)
0156 
0157 #if (${USE_PODIO})
0158 #    install(FILES ${jana_podio_headers} DESTINATION include/JANA/Podio)
0159 #endif()
0160 
0161 
0162 
0163 
0164 
0165