Warning, /acts/Examples/Io/HepMC3/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 acts_add_library(
0002 ExamplesIoHepMC3
0003 SHARED
0004 src/HepMC3Reader.cpp
0005 src/HepMC3Writer.cpp
0006 src/HepMC3InputConverter.cpp
0007 src/HepMC3OutputConverter.cpp
0008 src/HepMC3Util.cpp
0009 src/HepMC3FactoryWrappers.cpp
0010 src/HepMC3Metadata.cpp
0011 )
0012 target_include_directories(
0013 ActsExamplesIoHepMC3
0014 SYSTEM
0015 PUBLIC ${HEPMC3_INCLUDE_DIR}
0016 )
0017 target_include_directories(
0018 ActsExamplesIoHepMC3
0019 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0020 )
0021 target_link_libraries(
0022 ActsExamplesIoHepMC3
0023 PUBLIC Acts::ExamplesFramework ${HEPMC3_LIBRARIES}
0024 PRIVATE Acts::Fatras nlohmann_json::nlohmann_json
0025 )
0026
0027 # HepMC3 version < 3.3.0 had non-inline pseudo static members that give linker errors:
0028 # https://gitlab.cern.ch/hepmc/HepMC3/-/merge_requests/284
0029 if(${HEPMC3_VERSION} VERSION_GREATER_EQUAL 3.2.7)
0030 # The code below conditionally tries to find a number of compression libraries,
0031 # and will then configure the HepMC3 IO targets to make use of them
0032 # conditionally.
0033 target_compile_definitions(
0034 ActsExamplesIoHepMC3
0035 PRIVATE HEPMC3_USE_COMPRESSION
0036 )
0037
0038 message(CHECK_START "Examples HepMC3 IO: checking for zlib")
0039 find_package(ZLIB QUIET)
0040 if(ZLIB_FOUND)
0041 message(CHECK_PASS "found")
0042 target_link_libraries(ActsExamplesIoHepMC3 PRIVATE ZLIB::ZLIB)
0043 target_compile_definitions(
0044 ActsExamplesIoHepMC3
0045 PRIVATE HEPMC3_Z_SUPPORT=1
0046 )
0047 else()
0048 message(CHECK_PASS "not found")
0049 endif()
0050
0051 message(CHECK_START "Examples HepMC3 IO: checking for lzma")
0052 find_package(LibLZMA QUIET)
0053 if(LIBLZMA_FOUND)
0054 message(CHECK_PASS "found")
0055 target_link_libraries(ActsExamplesIoHepMC3 PRIVATE LibLZMA::LibLZMA)
0056 target_compile_definitions(
0057 ActsExamplesIoHepMC3
0058 PRIVATE HEPMC3_LZMA_SUPPORT=1
0059 )
0060 else()
0061 message(CHECK_PASS "not found")
0062 endif()
0063
0064 message(CHECK_START "Examples HepMC3 IO: checking for bzip2")
0065 find_package(BZip2 QUIET)
0066 if(BZIP2_FOUND)
0067 message(CHECK_PASS "found")
0068 target_link_libraries(ActsExamplesIoHepMC3 PRIVATE BZip2::BZip2)
0069 target_compile_definitions(
0070 ActsExamplesIoHepMC3
0071 PRIVATE HEPMC3_BZ2_SUPPORT=1
0072 )
0073 else()
0074 message(CHECK_PASS "not found")
0075 endif()
0076
0077 message(CHECK_START "Examples HepMC3 IO: checking for zstd")
0078 find_package(ZSTD QUIET)
0079 if(ZSTD_FOUND)
0080 message(CHECK_PASS "found")
0081 target_link_libraries(ActsExamplesIoHepMC3 PRIVATE ZSTD::ZSTD)
0082 target_compile_definitions(
0083 ActsExamplesIoHepMC3
0084 PRIVATE HEPMC3_ZSTD_SUPPORT=1
0085 )
0086 else()
0087 message(CHECK_PASS "not found")
0088 endif()
0089 endif()
0090
0091 message(CHECK_START "Examples HepMC3 IO: checking for ROOT IO")
0092 if(TARGET HepMC3::rootIO)
0093 message(CHECK_PASS "found")
0094 target_link_libraries(ActsExamplesIoHepMC3 PRIVATE HepMC3::rootIO)
0095 target_compile_definitions(
0096 ActsExamplesIoHepMC3
0097 PRIVATE HEPMC3_ROOT_SUPPORT=1
0098 )
0099 else()
0100 message(CHECK_PASS "not found")
0101 endif()