Skip to content

Commit 00311aa

Browse files
committed
fix: always override with the latest file
Signed-off-by: Nadav Elkabets <[email protected]>
1 parent a8df7e3 commit 00311aa

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

ament_cmake_python/cmake/ament_python_install_registered_packages.cmake

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,42 +57,56 @@ endmacro()
5757

5858
macro(_ament_cmake_python_copy_or_symlink package_name)
5959
set(_sync_target "ament_cmake_python_sync_${package_name}")
60-
add_custom_target(${_sync_target})
6160

61+
set(_dsts "")
62+
set(_srcs "")
6263
foreach(_dir IN LISTS _PACKAGE_DIRS)
6364
file(GLOB_RECURSE _dir_files RELATIVE "${_dir}" "${_dir}/*")
6465
foreach(_rel IN LISTS _dir_files)
6566
set(_src "${_dir}/${_rel}")
6667
set(_dst "${_build_dir}/${package_name}/${_rel}")
6768

68-
get_filename_component(_dst_parent "${_dst}" DIRECTORY)
69-
file(MAKE_DIRECTORY "${_dst_parent}")
70-
71-
list(FIND _already_processed "${_dst}" _idx)
69+
list(FIND _dsts "${_dst}" _idx)
7270
if(NOT _idx EQUAL -1)
73-
continue()
71+
list(REMOVE_AT _dsts ${_idx})
72+
list(REMOVE_AT _srcs ${_idx})
7473
endif()
75-
list(APPEND _already_processed "${_dst}")
74+
list(APPEND _dsts "${_dst}")
75+
list(APPEND _srcs "${_src}")
76+
endforeach()
77+
endforeach()
78+
79+
set(_sync_deps "")
80+
list(LENGTH _dsts _len)
81+
if(_len GREATER 0)
82+
math(EXPR _last "${_len} - 1")
83+
foreach(_file_idx RANGE 0 ${_last})
84+
list(GET _dsts ${_file_idx} _dst)
85+
list(GET _srcs ${_file_idx} _src)
86+
87+
get_filename_component(_dst_parent "${_dst}" DIRECTORY)
88+
file(MAKE_DIRECTORY "${_dst_parent}")
7689

7790
if(AMENT_CMAKE_SYMLINK_INSTALL)
7891
add_custom_command(
7992
OUTPUT "${_dst}"
8093
COMMAND ${CMAKE_COMMAND} -E create_symlink "${_src}" "${_dst}"
8194
DEPENDS "${_src}"
82-
COMMENT "Symlinking ${_rel}"
95+
COMMENT "Symlinking ${_dst}"
8396
VERBATIM
8497
)
8598
else()
8699
add_custom_command(
87100
OUTPUT "${_dst}"
88101
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_src}" "${_dst}"
89102
DEPENDS "${_src}"
90-
COMMENT "Copying ${_rel}"
103+
COMMENT "Copying ${_dst}"
91104
VERBATIM
92105
)
93106
endif()
107+
list(APPEND _sync_deps "${_dst}")
94108
endforeach()
95-
endforeach()
109+
endif()
96110

97111
if(_SETUP_CFG)
98112
set(_cfg_dst "${_build_dir}/setup.cfg")
@@ -109,9 +123,11 @@ macro(_ament_cmake_python_copy_or_symlink package_name)
109123
COMMENT "Synchronising setup.cfg"
110124
VERBATIM
111125
)
112-
add_custom_target(phony_${package_name}_cfg DEPENDS "${_cfg_dst}")
113-
add_dependencies(${_sync_target} phony_${package_name}_cfg)
126+
list(APPEND _sync_deps "${_cfg_dst}")
114127
endif()
128+
129+
add_custom_target(${_sync_target} DEPENDS ${_sync_deps})
130+
115131
endmacro()
116132

117133
macro(_ament_cmake_python_generate_egg package_name)

0 commit comments

Comments
 (0)