File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change 1- cmake_minimum_required (VERSION 3.12 )
1+ cmake_minimum_required (VERSION 3.20 )
22
33project (rclcpp)
44
@@ -127,6 +127,21 @@ set(${PROJECT_NAME}_SRCS
127127 src/rclcpp/waitable.cpp
128128)
129129
130+ # By default, without the settings below, find_package(Python3) will attempt
131+ # to find the newest python version it can, and additionally will find the
132+ # most specific version. For instance, on a system that has
133+ # /usr/bin/python3.10, /usr/bin/python3.11, and /usr/bin/python3, it will find
134+ # /usr/bin/python3.11, even if /usr/bin/python3 points to /usr/bin/python3.10.
135+ # The behavior we want is to prefer the "system" installed version unless the
136+ # user specifically tells us othewise through the Python3_EXECUTABLE hint.
137+ # Setting CMP0094 to NEW means that the search will stop after the first
138+ # python version is found. Setting Python3_FIND_UNVERSIONED_NAMES means that
139+ # the search will prefer /usr/bin/python3 over /usr/bin/python3.11. And that
140+ # latter functionality is only available in CMake 3.20 or later, so we need
141+ # at least that version.
142+ cmake_policy (SET CMP0094 NEW)
143+ set (Python3_FIND_UNVERSIONED_NAMES FIRST)
144+
130145find_package (Python3 REQUIRED COMPONENTS Interpreter)
131146
132147# "watch" template for changes
You can’t perform that action at this time.
0 commit comments