Skip to content

Commit 02e8229

Browse files
committed
Add EXTEND_EXISTING argument to ament_python_install_package
1 parent c1cf011 commit 02e8229

File tree

1 file changed

+45
-30
lines changed

1 file changed

+45
-30
lines changed

ament_cmake_python/cmake/ament_python_install_package.cmake

Lines changed: 45 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ endmacro()
4141

4242
function(_ament_cmake_python_install_package package_name)
4343
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})
4545
if(ARG_UNPARSED_ARGUMENTS)
4646
message(FATAL_ERROR "ament_python_install_package() called with unused "
4747
"arguments: ${ARG_UNPARSED_ARGUMENTS}")
@@ -97,10 +97,12 @@ setup(
9797
)
9898
" setup_py_content)
9999

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()
104106

105107
if(AMENT_CMAKE_SYMLINK_INSTALL)
106108
add_custom_target(
@@ -119,20 +121,29 @@ setup(
119121
list(APPEND egg_dependencies ament_cmake_python_symlink_${package_name}_setup)
120122
endif()
121123
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)
130125
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}"
134129
)
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()
136147
endif()
137148
endif()
138149

@@ -141,12 +152,14 @@ setup(
141152
# calls find_package(Python3) for us.
142153
get_executable_path(python_interpreter Python3::Interpreter BUILD)
143154

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()
150163

151164
set(python_version "py${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
152165

@@ -200,12 +213,14 @@ setup(
200213
)
201214
endif()
202215

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)
207225
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)
211226
endfunction()

0 commit comments

Comments
 (0)