Skip to content

Commit 833d2b3

Browse files
VRichardJPcottsay
andauthored
perf: faster ament_libraries_deduplicate implementation (#448)
Signed-off-by: Vincent Richard <[email protected]> Signed-off-by: Scott K Logan <[email protected]> Co-authored-by: Scott K Logan <[email protected]>
1 parent 5c9805a commit 833d2b3

4 files changed

+5
-89
lines changed

ament_cmake_libraries/ament_cmake_libraries-extras.cmake

-2
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,3 @@
1717
set(AMENT_BUILD_CONFIGURATION_KEYWORD_SEPARATOR ":")
1818

1919
include("${ament_cmake_libraries_DIR}/ament_libraries_deduplicate.cmake")
20-
include("${ament_cmake_libraries_DIR}/ament_libraries_pack_build_configuration.cmake")
21-
include("${ament_cmake_libraries_DIR}/ament_libraries_unpack_build_configuration.cmake")

ament_cmake_libraries/cmake/ament_libraries_deduplicate.cmake

+5-9
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,9 @@
2626
# @public
2727
#
2828
macro(ament_libraries_deduplicate VAR)
29-
ament_libraries_pack_build_configuration(_packed ${ARGN})
30-
set(_unique "")
31-
foreach(_lib ${_packed})
32-
# remove existing value if it exists
33-
list(REMOVE_ITEM _unique ${_lib})
34-
# append value to the end
35-
list(APPEND _unique ${_lib})
36-
endforeach()
37-
ament_libraries_unpack_build_configuration(${VAR} ${_unique})
29+
string(REGEX REPLACE "(^|;)(debug|optimized|general);([^;]+)" "\\1\\2${AMENT_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}\\3" _packed "${ARGN}")
30+
list(REVERSE _packed)
31+
list(REMOVE_DUPLICATES _packed)
32+
list(REVERSE _packed)
33+
string(REGEX REPLACE "(^|;)(debug|optimized|general)${AMENT_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}([^;]+)" "\\1\\2;\\3" ${VAR} "${_packed}")
3834
endmacro()

ament_cmake_libraries/cmake/ament_libraries_pack_build_configuration.cmake

-47
This file was deleted.

ament_cmake_libraries/cmake/ament_libraries_unpack_build_configuration.cmake

-31
This file was deleted.

0 commit comments

Comments
 (0)