@@ -45,31 +45,25 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
45
45
find_package (PythonLibsNew ${PYBIND11_PYTHON_VERSION} MODULE REQUIRED ${_pybind11_quiet} )
46
46
list (REMOVE_AT CMAKE_MODULE_PATH -1 )
47
47
48
+ # Makes a normal variable a cached variable
49
+ macro (_PYBIND11_PROMOTE_TO_CACHE NAME )
50
+ set (_tmp_ptc "${${NAME} }" )
51
+ # CMake 3.21 complains if a cached variable is shadowed by a normal one
52
+ unset (${NAME} )
53
+ set (${NAME}
54
+ "${_tmp_ptc} "
55
+ CACHE INTERNAL "" )
56
+ endmacro ()
57
+
48
58
# Cache variables so pybind11_add_module can be used in parent projects
49
- set (PYTHON_INCLUDE_DIRS
50
- ${PYTHON_INCLUDE_DIRS}
51
- CACHE INTERNAL "" )
52
- set (PYTHON_LIBRARIES
53
- ${PYTHON_LIBRARIES}
54
- CACHE INTERNAL "" )
55
- set (PYTHON_MODULE_PREFIX
56
- ${PYTHON_MODULE_PREFIX}
57
- CACHE INTERNAL "" )
58
- set (PYTHON_MODULE_EXTENSION
59
- ${PYTHON_MODULE_EXTENSION}
60
- CACHE INTERNAL "" )
61
- set (PYTHON_VERSION_MAJOR
62
- ${PYTHON_VERSION_MAJOR}
63
- CACHE INTERNAL "" )
64
- set (PYTHON_VERSION_MINOR
65
- ${PYTHON_VERSION_MINOR}
66
- CACHE INTERNAL "" )
67
- set (PYTHON_VERSION
68
- ${PYTHON_VERSION}
69
- CACHE INTERNAL "" )
70
- set (PYTHON_IS_DEBUG
71
- "${PYTHON_IS_DEBUG} "
72
- CACHE INTERNAL "" )
59
+ _pybind11_promote_to_cache (PYTHON_INCLUDE_DIRS )
60
+ _pybind11_promote_to_cache (PYTHON_LIBRARIES )
61
+ _pybind11_promote_to_cache (PYTHON_MODULE_PREFIX )
62
+ _pybind11_promote_to_cache (PYTHON_MODULE_EXTENSION )
63
+ _pybind11_promote_to_cache (PYTHON_VERSION_MAJOR )
64
+ _pybind11_promote_to_cache (PYTHON_VERSION_MINOR )
65
+ _pybind11_promote_to_cache (PYTHON_VERSION )
66
+ _pybind11_promote_to_cache (PYTHON_IS_DEBUG )
73
67
74
68
if (PYBIND11_MASTER_PROJECT )
75
69
if (PYTHON_MODULE_EXTENSION MATCHES "pypy" )
0 commit comments