File tree 1 file changed +16
-0
lines changed
ament_cmake_core/cmake/core
1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 18
18
# find_package(Python3 3.8 REQUIRED)
19
19
# find_package(ament_cmake REQUIRED)
20
20
if (NOT TARGET Python3::Interpreter)
21
+ # By default, without the settings below, find_package(Python3) will attempt
22
+ # to find the newest python version it can, and additionally will find the
23
+ # most specific version. For instance, on a system that has
24
+ # /usr/bin/python3.10, /usr/bin/python3.11, and /usr/bin/python3, it will find
25
+ # /usr/bin/python3.11, even if /usr/bin/python3 points to /usr/bin/python3.10.
26
+ # The behavior we want is to prefer the "system" installed version unless the
27
+ # user specifically tells us othewise through the Python3_EXECUTABLE hint.
28
+ # Setting CMP0094 to NEW means that the search will stop after the first
29
+ # python version is found. Setting Python3_FIND_UNVERSIONED_NAMES means that
30
+ # the search will prefer /usr/bin/python3 over /usr/bin/python3.11. And that
31
+ # latter functionality is only available in CMake 3.20 or later, so we need
32
+ # at least that version.
33
+ cmake_minimum_required (VERSION 3.20)
34
+ cmake_policy (SET CMP0094 NEW)
35
+ set (Python3_FIND_UNVERSIONED_NAMES FIRST)
36
+
21
37
find_package (Python3 REQUIRED COMPONENTS Interpreter)
22
38
endif ()
You can’t perform that action at this time.
0 commit comments