@@ -41,7 +41,7 @@ endmacro()
41
41
42
42
function (_ament_cmake_python_install_package package_name )
43
43
cmake_parse_arguments (
44
- ARG "SKIP_COMPILE" "PACKAGE_DIR;VERSION;SETUP_CFG;DESTINATION;SCRIPTS_DESTINATION" "" ${ARGN} )
44
+ ARG "SKIP_COMPILE;EXTEND_EXISTING " "PACKAGE_DIR;VERSION;SETUP_CFG;DESTINATION;SCRIPTS_DESTINATION" "" ${ARGN} )
45
45
if (ARG_UNPARSED_ARGUMENTS )
46
46
message (FATAL_ERROR "ament_python_install_package() called with unused "
47
47
"arguments: ${ARG_UNPARSED_ARGUMENTS} " )
@@ -97,10 +97,12 @@ setup(
97
97
)
98
98
" setup_py_content )
99
99
100
- file (GENERATE
101
- OUTPUT "${build_dir} /setup.py"
102
- CONTENT "${setup_py_content} "
103
- )
100
+ if (NOT ARG_EXTEND_EXISTING )
101
+ file (GENERATE
102
+ OUTPUT "${build_dir} /setup.py"
103
+ CONTENT "${setup_py_content} "
104
+ )
105
+ endif ()
104
106
105
107
if (AMENT_CMAKE_SYMLINK_INSTALL )
106
108
add_custom_target (
@@ -119,20 +121,29 @@ setup(
119
121
list (APPEND egg_dependencies ament_cmake_python_symlink_${package_name}_setup )
120
122
endif ()
121
123
else ()
122
- add_custom_target (
123
- ament_cmake_python_copy_${package_name}
124
- COMMAND ${CMAKE_COMMAND} -E copy_directory
125
- "${ARG_PACKAGE_DIR} " "${build_dir} /${package_name} "
126
- )
127
- set (egg_dependencies ament_cmake_python_copy_${package_name} )
128
-
129
- if (ARG_SETUP_CFG )
124
+ if (ARG_EXTEND_EXISTING )
130
125
add_custom_target (
131
- ament_cmake_python_copy_ ${package_name}_setup
132
- COMMAND ${CMAKE_COMMAND} -E copy
133
- "${ARG_SETUP_CFG } " "${build_dir} /setup.cfg "
126
+ ament_cmake_python_extend_ ${package_name}
127
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
128
+ "${ARG_PACKAGE_DIR } " "${build_dir} /${package_name} "
134
129
)
135
- list (APPEND egg_dependencies ament_cmake_python_copy_${package_name}_setup )
130
+ set (egg_dependencies ament_cmake_python_extend_${package_name} )
131
+ else ()
132
+ add_custom_target (
133
+ ament_cmake_python_copy_${package_name}
134
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
135
+ "${ARG_PACKAGE_DIR} " "${build_dir} /${package_name} "
136
+ )
137
+ set (egg_dependencies ament_cmake_python_copy_${package_name} )
138
+
139
+ if (ARG_SETUP_CFG )
140
+ add_custom_target (
141
+ ament_cmake_python_copy_${package_name}_setup
142
+ COMMAND ${CMAKE_COMMAND} -E copy
143
+ "${ARG_SETUP_CFG} " "${build_dir} /setup.cfg"
144
+ )
145
+ list (APPEND egg_dependencies ament_cmake_python_copy_${package_name}_setup )
146
+ endif ()
136
147
endif ()
137
148
endif ()
138
149
@@ -141,12 +152,14 @@ setup(
141
152
# calls find_package(Python3) for us.
142
153
get_executable_path (python_interpreter Python3::Interpreter BUILD )
143
154
144
- add_custom_target (
145
- ament_cmake_python_build_${package_name}_egg ALL
146
- COMMAND ${python_interpreter} setup.py egg_info
147
- WORKING_DIRECTORY "${build_dir} "
148
- DEPENDS ${egg_dependencies}
149
- )
155
+ if (NOT ARG_EXTEND_EXISTING )
156
+ add_custom_target (
157
+ ament_cmake_python_build_${package_name}_egg ALL
158
+ COMMAND ${python_interpreter} setup.py egg_info
159
+ WORKING_DIRECTORY "${build_dir} "
160
+ DEPENDS ${egg_dependencies}
161
+ )
162
+ endif ()
150
163
151
164
set (python_version "py${Python3_VERSION_MAJOR} .${Python3_VERSION_MINOR} " )
152
165
@@ -200,12 +213,14 @@ setup(
200
213
)
201
214
endif ()
202
215
203
- if (package_name IN_LIST AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES )
204
- message (FATAL_ERROR
205
- "ament_python_install_package() a Python module file or package with "
206
- "the same name '${package_name} ' has been installed before" )
216
+ if (NOT ARG_EXTEND_EXISTING )
217
+ if (package_name IN_LIST AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES )
218
+ message (FATAL_ERROR
219
+ "ament_python_install_package() a Python module file or package with "
220
+ "the same name '${package_name} ' has been installed before" )
221
+ endif ()
222
+ list (APPEND AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES "${package_name} " )
223
+ set (AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES
224
+ "${AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES} " PARENT_SCOPE )
207
225
endif ()
208
- list (APPEND AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES "${package_name} " )
209
- set (AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES
210
- "${AMENT_CMAKE_PYTHON_INSTALL_INSTALLED_NAMES} " PARENT_SCOPE )
211
226
endfunction ()
0 commit comments