summaryrefslogtreecommitdiffstats
path: root/Modules/FindPython/Support.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-04-24 12:36:05 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-04-24 12:36:16 (GMT)
commit63743bda0b3271bc57ecfdddba32454e5d95cba6 (patch)
tree82be303ea1f93e448a835451cfb154b8b833c8e4 /Modules/FindPython/Support.cmake
parent6713b29a1ee4169e8a051422fbb6923e0a8b7c0b (diff)
parentf39da773eee5ae018aa5c02352ec9933b9e64d08 (diff)
downloadCMake-63743bda0b3271bc57ecfdddba32454e5d95cba6.zip
CMake-63743bda0b3271bc57ecfdddba32454e5d95cba6.tar.gz
CMake-63743bda0b3271bc57ecfdddba32454e5d95cba6.tar.bz2
Merge topic 'FindPython-fix-python-compiler-validation' into release-3.17
f39da773ee FindPython: fix python compiler validation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4655
Diffstat (limited to 'Modules/FindPython/Support.cmake')
-rw-r--r--Modules/FindPython/Support.cmake31
1 files changed, 16 insertions, 15 deletions
diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake
index 0581145..90f3c11 100644
--- a/Modules/FindPython/Support.cmake
+++ b/Modules/FindPython/Support.cmake
@@ -474,7 +474,7 @@ function (_PYTHON_VALIDATE_INTERPRETER)
cmake_parse_arguments (PARSE_ARGV 0 _PVI "EXACT;CHECK_EXISTS" "" "")
if (_PVI_UNPARSED_ARGUMENTS)
- set (expected_version ${_PVI_UNPARSED_ARGUMENTS})
+ set (expected_version "${_PVI_UNPARSED_ARGUMENTS}")
else()
unset (expected_version)
endif()
@@ -585,18 +585,18 @@ function (_PYTHON_VALIDATE_INTERPRETER)
endfunction()
-function (_PYTHON_VALIDATE_COMPILER expected_version)
+function (_PYTHON_VALIDATE_COMPILER)
if (NOT _${_PYTHON_PREFIX}_COMPILER)
return()
endif()
- cmake_parse_arguments (_PVC "EXACT;CHECK_EXISTS" "" "" ${ARGN})
+ cmake_parse_arguments (PARSE_ARGV 0 _PVC "EXACT;CHECK_EXISTS" "" "")
if (_PVC_UNPARSED_ARGUMENTS)
set (major_version FALSE)
- set (expected_version ${_PVC_UNPARSED_ARGUMENTS})
+ set (expected_version "${_PVC_UNPARSED_ARGUMENTS}")
else()
set (major_version TRUE)
- set (expected_version ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR})
+ set (expected_version "${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}")
set (_PVC_EXACT TRUE)
endif()
@@ -625,15 +625,15 @@ function (_PYTHON_VALIDATE_COMPILER expected_version)
RESULT_VARIABLE result
OUTPUT_VARIABLE version
ERROR_QUIET)
- file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
-
- if (result OR (_PVC_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
- # Compiler not usable or has wrong version
- if (result)
- set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
- else()
- set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
- endif()
+ file (REMOVE_RECURSE "${working_dir}")
+ if (result)
+ # compiler is not usable
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ elseif ((_PVC_EXACT AND NOT version VERSION_EQUAL expected_version)
+ OR NOT version VERSION_GREATER_EQUAL expected_version)
+ # Compiler has wrong version
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
endif()
endfunction()
@@ -963,7 +963,8 @@ unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
# first step, search for the interpreter
if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
- list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE
+ _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
if (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter)
list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_EXECUTABLE)
endif()