@@ -35,6 +35,22 @@ ament_get_recursive_properties(deps_include_dirs deps_libraries ${pluginlib_TARG
35
35
list (APPEND deps_include_dirs ${TinyXML2_INCLUDE_DIRS} )
36
36
list (APPEND deps_libraries ${TinyXML2_LIBRARIES} )
37
37
38
+ # By default, without the settings below, find_package(Python3) will attempt
39
+ # to find the newest python version it can, and additionally will find the
40
+ # most specific version. For instance, on a system that has
41
+ # /usr/bin/python3.10, /usr/bin/python3.11, and /usr/bin/python3, it will find
42
+ # /usr/bin/python3.11, even if /usr/bin/python3 points to /usr/bin/python3.10.
43
+ # The behavior we want is to prefer the "system" installed version unless the
44
+ # user specifically tells us othewise through the Python3_EXECUTABLE hint.
45
+ # Setting CMP0094 to NEW means that the search will stop after the first
46
+ # python version is found. Setting Python3_FIND_UNVERSIONED_NAMES means that
47
+ # the search will prefer /usr/bin/python3 over /usr/bin/python3.11. And that
48
+ # latter functionality is only available in CMake 3.20 or later, so we need
49
+ # at least that version.
50
+ cmake_minimum_required (VERSION 3.20 )
51
+ cmake_policy (SET CMP0094 NEW )
52
+ set (Python3_FIND_UNVERSIONED_NAMES FIRST )
53
+
38
54
find_package (Python3 REQUIRED COMPONENTS Development )
39
55
40
56
set (_qt_gui_cpp_sip_LIBRARIES
0 commit comments