@@ -184,6 +184,8 @@ target_compile_definitions(${targetName} PRIVATE $<TARGET_PROPERTY:O2::GPUTracki
184184add_library (${MODULE} _CXX OBJECT ${SRCS_CXX} ) # Adding a C++ library for the .cxx code of the HIP library, such that it does not link to HIP libraries, and CMake HIP Language doesn't add HIP compile flags.
185185target_compile_definitions (${MODULE} _CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB} ,COMPILE_DEFINITIONS >)
186186target_include_directories (${MODULE} _CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB} ,INCLUDE_DIRECTORIES >)
187+ target_link_libraries (${MODULE} _CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB} ,LINK_LIBRARIES >)
188+ add_dependencies (${MODULE} _CXX O2::GPUTracking)
187189target_link_libraries (${targetName} PRIVATE ${MODULE} _CXX)
188190
189191if (NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA} " )
@@ -213,6 +215,7 @@ elseif(GPUCA_HIP_COMPILE_MODE STREQUAL "perkernel")
213215 target_compile_definitions (${targetName} PRIVATE GPUCA_KERNEL_COMPILE_MODE=1)
214216 target_compile_definitions (GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName} ,COMPILE_DEFINITIONS >)
215217 target_include_directories (GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName} ,INCLUDE_DIRECTORIES >)
218+ target_link_libraries (GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName} ,LINK_LIBRARIES >)
216219 if (NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA} " )
217220 add_dependencies (GPUTrackingHIPKernels ${MODULE} _HIPIFIED)
218221 endif ()
@@ -249,6 +252,7 @@ target_compile_options(GPUTrackingHIPExternalProvider PRIVATE $<$<COMPILE_LANGUA
249252target_link_options (GPUTrackingHIPExternalProvider PRIVATE $<$<COMPILE_LANGUAGE:HIP>:-fgpu-rdc>)
250253target_compile_definitions (GPUTrackingHIPExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName} ,COMPILE_DEFINITIONS >)
251254target_include_directories (GPUTrackingHIPExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName} ,INCLUDE_DIRECTORIES >)
255+ add_dependencies (GPUTrackingHIPExternalProvider O2::GPUTracking) # must not depend on GPU backend to avoid cyclic dependencies
252256if (NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA} " )
253257 add_dependencies (GPUTrackingHIPExternalProvider ${MODULE} _HIPIFIED)
254258endif ()
0 commit comments