Skip to content

Commit

Permalink
Fix unnecessary linking when using VecGeom+CUDA (#1487)
Browse files Browse the repository at this point in the history
Due to missing initialization and missing an intermediary variable, dependencies found
by cuda_rdc_cuda_gather_dependencies where bleeding from one target to the next.
  • Loading branch information
pcanal authored and sethrj committed Jan 14, 2025
1 parent 86a547b commit 38b286c
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions cmake/CudaRdcUtils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -925,25 +925,31 @@ function(cuda_rdc_cuda_gather_dependencies outlist target)
endif()
cuda_rdc_strip_alias(target ${target})
get_target_property(_target_type ${target} TYPE)
set(_deplist)
if(NOT _target_type STREQUAL "INTERFACE_LIBRARY")
get_target_property(_target_link_libraries ${target} LINK_LIBRARIES)
if(_target_link_libraries)
foreach(_lib ${_target_link_libraries})
cuda_rdc_strip_alias(_lib ${_lib})
set(_libmid)
if(TARGET ${_lib})
cuda_rdc_get_library_middle_target(_libmid ${_lib})
endif()
if(TARGET ${_libmid})
list(APPEND ${outlist} ${_libmid})
list(APPEND _deplist ${_libmid})
endif()
# and recurse
set(_midlist)
set(_before ${_midlist})
cuda_rdc_cuda_gather_dependencies(_midlist ${_lib})
list(APPEND ${outlist} ${_midlist})
list(APPEND _deplist ${_midlist})
endforeach()
endif()
endif()
list(REMOVE_DUPLICATES _deplist)
list(APPEND ${outlist} ${_deplist})
list(REMOVE_DUPLICATES ${outlist})
set_target_properties(${target} PROPERTIES CUDA_RDC_CACHED_LIB_DEPENDENCIES "${${outlist}}")
set_target_properties(${target} PROPERTIES CUDA_RDC_CACHED_LIB_DEPENDENCIES "${_deplist}")
set(${outlist} ${${outlist}} PARENT_SCOPE)
endfunction()

Expand Down

0 comments on commit 38b286c

Please sign in to comment.