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 Feb 13, 2024
1 parent 51c0c79 commit d7a3580
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 d7a3580

Please sign in to comment.