Skip to content

Commit

Permalink
Set hints to find the python version we actually want.
Browse files Browse the repository at this point in the history
The comment in the commit explains the reasoning behind it.

Signed-off-by: Chris Lalancette <[email protected]>
  • Loading branch information
clalancette committed Jun 25, 2024
1 parent 5c4ddef commit 2c1aed9
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion lttngpy/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.20)

project(lttngpy)

Expand Down Expand Up @@ -27,6 +27,21 @@ option(
"Explicitly disable support, don't link against liblttng-ctl"
${DISABLED_DEFAULT})

# By default, without the settings below, find_package(Python3) will attempt
# to find the newest python version it can, and additionally will find the
# most specific version. For instance, on a system that has
# /usr/bin/python3.10, /usr/bin/python3.11, and /usr/bin/python3, it will find
# /usr/bin/python3.11, even if /usr/bin/python3 points to /usr/bin/python3.10.
# The behavior we want is to prefer the "system" installed version unless the
# user specifically tells us othewise through the Python3_EXECUTABLE hint.
# Setting CMP0094 to NEW means that the search will stop after the first
# python version is found. Setting Python3_FIND_UNVERSIONED_NAMES means that
# the search will prefer /usr/bin/python3 over /usr/bin/python3.11. And that
# latter functionality is only available in CMake 3.20 or later, so we need
# at least that version.
cmake_policy(SET CMP0094 NEW)
set(Python3_FIND_UNVERSIONED_NAMES FIRST)

# Find python before pybind11
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)

Expand Down

0 comments on commit 2c1aed9

Please sign in to comment.