fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run

This commit is contained in:
lixiaoyong1 2024-05-09 17:04:04 +08:00
parent c8e29afe1c
commit 7c7c7018d4
2 changed files with 57 additions and 1 deletions

View File

@ -0,0 +1,52 @@
From aec6cc5406edb076f5a489c2d7f84bb07052c4a3 Mon Sep 17 00:00:00 2001
From: Ilya Lavrenov <ilya.lavrenov@intel.com>
Date: Mon, 8 Jan 2024 17:40:41 +0400
Subject: [PATCH] fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST
for the first cmake run (#4856)
* fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run
* style: pre-commit fixes
* Update pybind11NewTools.cmake
* style: pre-commit fixes
Reference: https://github.com/pybind/pybind11/commit/aec6cc5406edb076f5a489c2d7f84bb07052c4a3
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
---
tools/pybind11NewTools.cmake | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/tools/pybind11NewTools.cmake b/tools/pybind11NewTools.cmake
index cd88a645..9fe2eb08 100644
--- a/tools/pybind11NewTools.cmake
+++ b/tools/pybind11NewTools.cmake
@@ -110,15 +110,17 @@ if(NOT DEFINED ${_Python}_EXECUTABLE)
endif()
-if(NOT ${_Python}_EXECUTABLE STREQUAL PYBIND11_PYTHON_EXECUTABLE_LAST)
+if(DEFINED PYBIND11_PYTHON_EXECUTABLE_LAST AND NOT ${_Python}_EXECUTABLE STREQUAL
+ PYBIND11_PYTHON_EXECUTABLE_LAST)
# Detect changes to the Python version/binary in subsequent CMake runs, and refresh config if needed
unset(PYTHON_IS_DEBUG CACHE)
unset(PYTHON_MODULE_EXTENSION CACHE)
- set(PYBIND11_PYTHON_EXECUTABLE_LAST
- "${${_Python}_EXECUTABLE}"
- CACHE INTERNAL "Python executable during the last CMake run")
endif()
+set(PYBIND11_PYTHON_EXECUTABLE_LAST
+ "${${_Python}_EXECUTABLE}"
+ CACHE INTERNAL "Python executable during the last CMake run")
+
if(NOT DEFINED PYTHON_IS_DEBUG)
# Debug check - see https://stackoverflow.com/questions/646518/python-how-to-detect-debug-Interpreter
execute_process(
--
2.18.2

View File

@ -2,12 +2,13 @@
%bcond_without tests %bcond_without tests
Name: pybind11 Name: pybind11
Version: 2.11.1 Version: 2.11.1
Release: 1 Release: 2
Summary: Seamless operability between C++11 and Python Summary: Seamless operability between C++11 and Python
License: BSD License: BSD
URL: https://github.com/pybind/pybind11 URL: https://github.com/pybind/pybind11
Source0: https://github.com/pybind/pybind11/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source0: https://github.com/pybind/pybind11/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch0001: 0001-fix-cmake-skip-empty-PYBIND11_PYTHON_EXECUTABLE_LAST.patch
BuildRequires: make cmake eigen3-devel gcc-c++ BuildRequires: make cmake eigen3-devel gcc-c++
BuildRequires: python3-devel python3-setuptools BuildRequires: python3-devel python3-setuptools
@ -76,6 +77,9 @@ PYBIND11_USE_CMAKE=true %py3_install "--install-purelib" "%{python3_sitearch}"
%changelog %changelog
* Thu May 09 2024 lixiaoyong <lixiaoyong@kylinos.cn> - 2.11.1-2
- fix(cmake): skip empty PYBIND11_PYTHON_EXECUTABLE_LAST for the first cmake run
* Mon Jul 31 2023 zhangchenglin <zhangchenglin@kylinos.cn> - 2.11.1-1 * Mon Jul 31 2023 zhangchenglin <zhangchenglin@kylinos.cn> - 2.11.1-1
- Update package to version 2.11.1 - Update package to version 2.11.1