From 36ed120f43daeaab31fd9ba2bf8dfb58db05091d Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Wed, 11 Aug 2021 11:56:30 -0700 Subject: [PATCH] Make rosidl packages use FindPython3 instead of FindPythonInterp (#612) Signed-off-by: Shane Loretz --- rosidl_adapter/CMakeLists.txt | 2 +- rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake | 9 ++++----- rosidl_adapter/package.xml | 3 +++ rosidl_generator_c/CMakeLists.txt | 2 +- .../cmake/rosidl_generator_c_generate_interfaces.cmake | 5 ++++- rosidl_generator_c/package.xml | 1 + rosidl_generator_cpp/CMakeLists.txt | 2 +- .../cmake/rosidl_generator_cpp_generate_interfaces.cmake | 5 ++++- rosidl_generator_cpp/package.xml | 1 + rosidl_typesupport_introspection_c/CMakeLists.txt | 2 +- ...typesupport_introspection_c_generate_interfaces.cmake | 5 ++++- rosidl_typesupport_introspection_c/package.xml | 1 + rosidl_typesupport_introspection_cpp/CMakeLists.txt | 2 +- ...pesupport_introspection_cpp_generate_interfaces.cmake | 5 ++++- rosidl_typesupport_introspection_cpp/package.xml | 1 + 15 files changed, 32 insertions(+), 14 deletions(-) diff --git a/rosidl_adapter/CMakeLists.txt b/rosidl_adapter/CMakeLists.txt index b14b5518b..2bea2759d 100644 --- a/rosidl_adapter/CMakeLists.txt +++ b/rosidl_adapter/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(rosidl_adapter NONE) diff --git a/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake b/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake index 7d2e444ef..0d703c99e 100644 --- a/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake +++ b/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake @@ -37,14 +37,13 @@ function(rosidl_adapt_interfaces idl_var arguments_file) "arguments: ${ARG_UNPARSED_ARGUMENTS}") endif() - find_package(PythonInterp REQUIRED) - if(NOT PYTHON_EXECUTABLE) - message(FATAL_ERROR "Variable 'PYTHON_EXECUTABLE' must not be empty") - endif() + find_package(ament_cmake_core REQUIRED) # for get_executable_path + find_package(Python3 REQUIRED COMPONENTS Interpreter) + get_executable_path(python_interpreter Python3::Interpreter CONFIGURE) set(idl_output "${CMAKE_CURRENT_BINARY_DIR}/rosidl_adapter/${ARG_TARGET}.idls") set(cmd - "${PYTHON_EXECUTABLE}" -m rosidl_adapter + "${python_interpreter}" -m rosidl_adapter --package-name ${PROJECT_NAME} --arguments-file "${arguments_file}" --output-dir "${CMAKE_CURRENT_BINARY_DIR}/rosidl_adapter/${PROJECT_NAME}" diff --git a/rosidl_adapter/package.xml b/rosidl_adapter/package.xml index 8a9219031..e8a7cd607 100644 --- a/rosidl_adapter/package.xml +++ b/rosidl_adapter/package.xml @@ -11,6 +11,9 @@ Apache License 2.0 Dirk Thomas + ament_cmake_core + python3 + ament_cmake python3-empy diff --git a/rosidl_generator_c/CMakeLists.txt b/rosidl_generator_c/CMakeLists.txt index 3d61cd87b..7b9b93be1 100644 --- a/rosidl_generator_c/CMakeLists.txt +++ b/rosidl_generator_c/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(rosidl_generator_c C) diff --git a/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake b/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake index 3e9b630e8..8dcadc5d3 100644 --- a/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake +++ b/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake @@ -79,9 +79,12 @@ rosidl_write_generator_arguments( TARGET_DEPENDENCIES ${target_dependencies} ) +find_package(Python3 REQUIRED COMPONENTS Interpreter) + add_custom_command( OUTPUT ${_generated_headers} ${_generated_sources} - COMMAND ${PYTHON_EXECUTABLE} ${rosidl_generator_c_BIN} + COMMAND Python3::Interpreter + ARGS ${rosidl_generator_c_BIN} --generator-arguments-file "${generator_arguments_file}" DEPENDS ${target_dependencies} COMMENT "Generating C code for ROS interfaces" diff --git a/rosidl_generator_c/package.xml b/rosidl_generator_c/package.xml index 00d3fa003..9a66332bb 100644 --- a/rosidl_generator_c/package.xml +++ b/rosidl_generator_c/package.xml @@ -14,6 +14,7 @@ ament_cmake_ros ament_cmake_core + python3 rosidl_cmake rosidl_typesupport_interface diff --git a/rosidl_generator_cpp/CMakeLists.txt b/rosidl_generator_cpp/CMakeLists.txt index 654d4c0f9..e99c75cc5 100644 --- a/rosidl_generator_cpp/CMakeLists.txt +++ b/rosidl_generator_cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(rosidl_generator_cpp) diff --git a/rosidl_generator_cpp/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/rosidl_generator_cpp/cmake/rosidl_generator_cpp_generate_interfaces.cmake index c944ee340..e5f6e4e27 100644 --- a/rosidl_generator_cpp/cmake/rosidl_generator_cpp_generate_interfaces.cmake +++ b/rosidl_generator_cpp/cmake/rosidl_generator_cpp_generate_interfaces.cmake @@ -74,9 +74,12 @@ rosidl_write_generator_arguments( TARGET_DEPENDENCIES ${target_dependencies} ) +find_package(Python3 REQUIRED COMPONENTS Interpreter) + add_custom_command( OUTPUT ${_generated_headers} - COMMAND ${PYTHON_EXECUTABLE} ${rosidl_generator_cpp_BIN} + COMMAND Python3::Interpreter + ARGS ${rosidl_generator_cpp_BIN} --generator-arguments-file "${generator_arguments_file}" DEPENDS ${target_dependencies} COMMENT "Generating C++ code for ROS interfaces" diff --git a/rosidl_generator_cpp/package.xml b/rosidl_generator_cpp/package.xml index 3dadba363..7bc4c9f74 100644 --- a/rosidl_generator_cpp/package.xml +++ b/rosidl_generator_cpp/package.xml @@ -12,6 +12,7 @@ ament_cmake ament_cmake_core + python3 rosidl_cmake diff --git a/rosidl_typesupport_introspection_c/CMakeLists.txt b/rosidl_typesupport_introspection_c/CMakeLists.txt index 5b581ec97..0172ecfac 100644 --- a/rosidl_typesupport_introspection_c/CMakeLists.txt +++ b/rosidl_typesupport_introspection_c/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(rosidl_typesupport_introspection_c C) diff --git a/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index bdd89184e..0d5fd4bf7 100644 --- a/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +++ b/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake @@ -72,9 +72,12 @@ rosidl_write_generator_arguments( TARGET_DEPENDENCIES ${target_dependencies} ) +find_package(Python3 REQUIRED COMPONENTS Interpreter) + add_custom_command( OUTPUT ${_generated_header_files} ${_generated_source_files} - COMMAND ${PYTHON_EXECUTABLE} ${rosidl_typesupport_introspection_c_BIN} + COMMAND Python3::Interpreter + ARGS ${rosidl_typesupport_introspection_c_BIN} --generator-arguments-file "${generator_arguments_file}" DEPENDS ${target_dependencies} COMMENT "Generating C introspection for ROS interfaces" diff --git a/rosidl_typesupport_introspection_c/package.xml b/rosidl_typesupport_introspection_c/package.xml index cb1f4f3a2..c5f61b6b2 100644 --- a/rosidl_typesupport_introspection_c/package.xml +++ b/rosidl_typesupport_introspection_c/package.xml @@ -14,6 +14,7 @@ ament_cmake_ros ament_cmake + python3 rosidl_cmake rosidl_runtime_c diff --git a/rosidl_typesupport_introspection_cpp/CMakeLists.txt b/rosidl_typesupport_introspection_cpp/CMakeLists.txt index c1d8b83cd..bb76b8922 100644 --- a/rosidl_typesupport_introspection_cpp/CMakeLists.txt +++ b/rosidl_typesupport_introspection_cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(rosidl_typesupport_introspection_cpp) diff --git a/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index daeb16f77..e553becf5 100644 --- a/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +++ b/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake @@ -72,9 +72,12 @@ rosidl_write_generator_arguments( TARGET_DEPENDENCIES ${target_dependencies} ) +find_package(Python3 REQUIRED COMPONENTS Interpreter) + add_custom_command( OUTPUT ${_generated_header_files} ${_generated_source_files} - COMMAND ${PYTHON_EXECUTABLE} ${rosidl_typesupport_introspection_cpp_BIN} + COMMAND Python3::Interpreter + ARGS ${rosidl_typesupport_introspection_cpp_BIN} --generator-arguments-file "${generator_arguments_file}" DEPENDS ${target_dependencies} COMMENT "Generating C++ introspection for ROS interfaces" diff --git a/rosidl_typesupport_introspection_cpp/package.xml b/rosidl_typesupport_introspection_cpp/package.xml index 44b7aa01c..791c4cdf2 100644 --- a/rosidl_typesupport_introspection_cpp/package.xml +++ b/rosidl_typesupport_introspection_cpp/package.xml @@ -14,6 +14,7 @@ ament_cmake_ros ament_cmake + python3 rosidl_cmake rosidl_runtime_c