Warning, /acts/Plugins/ExaTrkX/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 add_library(
0002 ActsPluginExaTrkX
0003 SHARED
0004 src/ExaTrkXPipeline.cpp
0005 src/Tensor.cpp
0006 src/BoostTrackBuilding.cpp
0007 src/TruthGraphMetricsHook.cpp
0008 src/GraphStoreHook.cpp
0009 )
0010
0011 if(ACTS_EXATRKX_ENABLE_CUDA)
0012 target_compile_definitions(ActsPluginExaTrkX PUBLIC ACTS_EXATRKX_WITH_CUDA)
0013 target_sources(
0014 ActsPluginExaTrkX
0015 PRIVATE src/CudaTrackBuilding.cu src/JunctionRemoval.cu src/Tensor.cu
0016 )
0017 endif()
0018
0019 if(ACTS_EXATRKX_ENABLE_MODULEMAP)
0020 target_compile_definitions(
0021 ActsPluginExaTrkX
0022 PUBLIC ACTS_EXATRKX_WITH_MODULEMAP
0023 )
0024
0025 target_link_libraries(
0026 ActsPluginExaTrkX
0027 PRIVATE ModuleMapGraph::CPU ModuleMapGraph::GPU
0028 )
0029 target_sources(ActsPluginExaTrkX PRIVATE src/ModuleMapCuda.cu)
0030 endif()
0031
0032 if(ACTS_EXATRKX_ENABLE_ONNX)
0033 target_sources(ActsPluginExaTrkX PRIVATE src/OnnxEdgeClassifier.cpp)
0034 target_link_libraries(ActsPluginExaTrkX PRIVATE onnxruntime::onnxruntime)
0035 target_compile_definitions(
0036 ActsPluginExaTrkX
0037 PUBLIC ACTS_EXATRKX_ONNX_BACKEND
0038 )
0039 endif()
0040
0041 if(ACTS_EXATRKX_ENABLE_TORCH)
0042 target_sources(
0043 ActsPluginExaTrkX
0044 PRIVATE
0045 src/TorchEdgeClassifier.cpp
0046 src/TorchMetricLearning.cpp
0047 src/buildEdges.cpp
0048 )
0049 endif()
0050
0051 if(ACTS_EXATRKX_ENABLE_TENSORRT)
0052 find_package(TensorRT REQUIRED)
0053 message(STATUS "Found TensorRT ${TensorRT_VERSION}")
0054 target_link_libraries(
0055 ActsPluginExaTrkX
0056 PUBLIC trt::nvinfer trt::nvinfer_plugin
0057 )
0058 target_sources(ActsPluginExaTrkX PRIVATE src/TensorRTEdgeClassifier.cpp)
0059 target_compile_definitions(
0060 ActsPluginExaTrkX
0061 PUBLIC ACTS_EXATRKX_WITH_TENSORRT
0062 )
0063 endif()
0064
0065 target_include_directories(
0066 ActsPluginExaTrkX
0067 PUBLIC
0068 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0069 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0070 )
0071
0072 target_link_libraries(ActsPluginExaTrkX PUBLIC ActsCore Boost::boost)
0073
0074 target_link_libraries(ActsPluginExaTrkX PRIVATE std::filesystem)
0075
0076 if(ACTS_EXATRKX_ENABLE_CUDA)
0077 target_compile_features(ActsPluginExaTrkX PUBLIC cuda_std_20)
0078 set_target_properties(
0079 ActsPluginExaTrkX
0080 PROPERTIES CUDA_STANDARD_REQUIRED ON CUDA_SEPARABLE_COMPILATION OFF
0081 )
0082 target_compile_options(
0083 ActsPluginExaTrkX
0084 PRIVATE
0085 $<$<COMPILE_LANGUAGE:CUDA>:-g
0086 --generate-line-info
0087 --expt-relaxed-constexpr
0088 --extended-lambda>
0089 )
0090 target_compile_definitions(
0091 ActsPluginExaTrkX
0092 PUBLIC CUDA_API_PER_THREAD_DEFAULT_STREAM
0093 )
0094 target_link_libraries(ActsPluginExaTrkX PUBLIC CUDA::cudart)
0095 else()
0096 target_compile_definitions(ActsPluginExaTrkX PUBLIC ACTS_EXATRKX_CPUONLY)
0097 endif()
0098
0099 if(ACTS_EXATRKX_ENABLE_TORCH)
0100 target_compile_definitions(
0101 ActsPluginExaTrkX
0102 PUBLIC ACTS_EXATRKX_TORCH_BACKEND
0103 )
0104 target_link_libraries(ActsPluginExaTrkX PRIVATE ${TORCH_LIBRARIES} frnn)
0105 find_package(TorchScatter QUIET)
0106 if(NOT TARGET TorchScatter::TorchScatter)
0107 message(
0108 WARNING
0109 "Torch scatter not found, models that rely on torch-scatter will not work"
0110 )
0111 else()
0112 target_link_libraries(
0113 ActsPluginExaTrkX
0114 PRIVATE TorchScatter::TorchScatter
0115 )
0116 # Should not discard TorchScatter even if its not needed at this point
0117 # since we need the scatter_max operation in the torch script later
0118 target_link_options(ActsPluginExaTrkX PUBLIC "-Wl,-no-as-needed")
0119 endif()
0120 endif()
0121
0122 install(
0123 TARGETS ActsPluginExaTrkX
0124 EXPORT ActsPluginExaTrkXTargets
0125 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
0126 )
0127 install(DIRECTORY include/Acts DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})