Просмотр исходного кода

CMake: Use FindPython instead of FindPythonInterp to build CMake itself

Fixes: #23444
Kyle Edwards 3 лет назад
Родитель
Сommit
313ea361b0

+ 8 - 8
Tests/RunCMake/CMakeLists.txt

@@ -76,7 +76,7 @@ function(add_RunCMake_test_group test types)
 endfunction()
 
 # Some tests use python for extra checks.
-find_package(PythonInterp QUIET)
+find_package(Python QUIET)
 
 if(XCODE_VERSION AND "${XCODE_VERSION}" VERSION_LESS 6.1)
   set(Swift_ARGS -DXCODE_BELOW_6_1=1)
@@ -302,7 +302,7 @@ add_RunCMake_test(ExcludeFromAll)
 add_RunCMake_test(ExternalData)
 add_RunCMake_test(FeatureSummary)
 add_RunCMake_test(FPHSA)
-add_RunCMake_test(FileAPI -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+add_RunCMake_test(FileAPI -DPython_EXECUTABLE=${Python_EXECUTABLE}
                           -DCMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID})
 add_RunCMake_test(FindBoost)
 add_RunCMake_test(FindLua)
@@ -400,7 +400,7 @@ add_RunCMake_test(build_command)
 add_executable(exit_code exit_code.c)
 set(execute_process_ARGS
   -DEXIT_CODE_EXE=$<TARGET_FILE:exit_code>
-  -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+  -DPython_EXECUTABLE=${Python_EXECUTABLE}
   )
 if(NOT CMake_TEST_EXTERNAL_CMAKE)
   list(APPEND execute_process_ARGS -DTEST_ENCODING_EXE=$<TARGET_FILE:testEncoding>)
@@ -748,7 +748,7 @@ endif()
 
 add_executable(pseudo_llvm-rc pseudo_llvm-rc.c)
 add_RunCMake_test(CommandLine -DLLVM_RC=$<TARGET_FILE:pseudo_llvm-rc> -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-                  -DCYGWIN=${CYGWIN} -DMSYS=${MSYS} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+                  -DCYGWIN=${CYGWIN} -DMSYS=${MSYS} -DPython_EXECUTABLE=${Python_EXECUTABLE}
                   -DEXIT_CODE_EXE=$<TARGET_FILE:exit_code>)
 add_RunCMake_test(CommandLineTar)
 
@@ -784,7 +784,7 @@ if(CMake_TEST_RunCMake_ExternalProject_DOWNLOAD_SERVER_TIMEOUT)
 endif()
 add_RunCMake_test(ExternalProject)
 add_RunCMake_test(FetchContent)
-set(CTestCommandLine_ARGS -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE})
+set(CTestCommandLine_ARGS -DPython_EXECUTABLE=${Python_EXECUTABLE})
 if(NOT CMake_TEST_EXTERNAL_CMAKE)
   list(APPEND CTestCommandLine_ARGS -DTEST_AFFINITY=$<TARGET_FILE:testAffinity>)
 endif()
@@ -968,16 +968,16 @@ add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
 
 add_RunCMake_test("UnityBuild")
 add_RunCMake_test(CMakePresets
-  -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+  -DPython_EXECUTABLE=${Python_EXECUTABLE}
   -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
   )
 add_RunCMake_test(CMakePresetsBuild
-  -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+  -DPython_EXECUTABLE=${Python_EXECUTABLE}
   -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
   -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
   )
 add_RunCMake_test(CMakePresetsTest
-  -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+  -DPython_EXECUTABLE=${Python_EXECUTABLE}
   -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
   )
 

+ 1 - 1
Tests/RunCMake/CMakePresets/check.cmake

@@ -1,4 +1,4 @@
-if(PYTHON_EXECUTABLE AND CMake_TEST_JSON_SCHEMA)
+if(Python_EXECUTABLE AND CMake_TEST_JSON_SCHEMA)
   if(NOT CMakePresets_SCHEMA_EXPECTED_RESULT)
     set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
   endif()

+ 1 - 1
Tests/RunCMake/CMakePresets/validate_schema.cmake

@@ -4,7 +4,7 @@ function(validate_schema file expected_result)
   endif()
 
   execute_process(
-    COMMAND "${PYTHON_EXECUTABLE}" "${CMakePresets_VALIDATE_SCRIPT_PATH}" "${file}"
+    COMMAND "${Python_EXECUTABLE}" "${CMakePresets_VALIDATE_SCRIPT_PATH}" "${file}"
     RESULT_VARIABLE _result
     OUTPUT_VARIABLE _output
     ERROR_VARIABLE _error

+ 2 - 2
Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake

@@ -342,14 +342,14 @@ endfunction()
 run_TestStdin()
 
 function(show_only_json_check_python v)
-  if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE)
+  if(RunCMake_TEST_FAILED OR NOT Python_EXECUTABLE)
     return()
   endif()
   set(json_file "${RunCMake_TEST_BINARY_DIR}/ctest.json")
   file(WRITE "${json_file}" "${actual_stdout}")
   set(actual_stdout "" PARENT_SCOPE)
   execute_process(
-    COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/show-only_json-v${v}_check.py" "${json_file}"
+    COMMAND ${Python_EXECUTABLE} "${RunCMake_SOURCE_DIR}/show-only_json-v${v}_check.py" "${json_file}"
     RESULT_VARIABLE result
     OUTPUT_VARIABLE output
     ERROR_VARIABLE output

+ 2 - 2
Tests/RunCMake/CommandLine/trace-json-v1-check.cmake

@@ -1,6 +1,6 @@
-if(PYTHON_EXECUTABLE)
+if(Python_EXECUTABLE)
   execute_process(
-    COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/trace-json-v1-check.py" "${RunCMake_BINARY_DIR}/json-v1.trace"
+    COMMAND ${Python_EXECUTABLE} "${RunCMake_SOURCE_DIR}/trace-json-v1-check.py" "${RunCMake_BINARY_DIR}/json-v1.trace"
     RESULT_VARIABLE result
     OUTPUT_VARIABLE output
     ERROR_VARIABLE output

+ 2 - 2
Tests/RunCMake/CommandLine/trace-json-v1-expand-check.cmake

@@ -1,6 +1,6 @@
-if(PYTHON_EXECUTABLE)
+if(Python_EXECUTABLE)
   execute_process(
-    COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/trace-json-v1-check.py" --expand "${RunCMake_BINARY_DIR}/json-v1-expand.trace"
+    COMMAND ${Python_EXECUTABLE} "${RunCMake_SOURCE_DIR}/trace-json-v1-check.py" --expand "${RunCMake_BINARY_DIR}/json-v1-expand.trace"
     RESULT_VARIABLE result
     OUTPUT_VARIABLE output
     ERROR_VARIABLE output

+ 2 - 2
Tests/RunCMake/FileAPI/RunCMakeTest.cmake

@@ -18,12 +18,12 @@ in directory:
 endfunction()
 
 function(check_python case)
-  if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE)
+  if(RunCMake_TEST_FAILED OR NOT Python_EXECUTABLE)
     return()
   endif()
   file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json)
   execute_process(
-    COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/${case}-check.py" "${index}" "${CMAKE_CXX_COMPILER_ID}"
+    COMMAND ${Python_EXECUTABLE} "${RunCMake_SOURCE_DIR}/${case}-check.py" "${index}" "${CMAKE_CXX_COMPILER_ID}"
       "${RunCMake_TEST_BINARY_DIR}"
     RESULT_VARIABLE result
     OUTPUT_VARIABLE output

+ 1 - 1
Tests/RunCMake/execute_process/AnyCommandAbnormalExit.cmake

@@ -1,4 +1,4 @@
-execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c
+execute_process(COMMAND "${Python_EXECUTABLE}" -c
     "import os; os.kill(os.getpid(),11)"
   COMMAND ${CMAKE_COMMAND} -E true
   COMMAND_ERROR_IS_FATAL ANY

+ 2 - 2
Tests/RunCMake/execute_process/LastCommandAbnormalExit-1.cmake

@@ -1,11 +1,11 @@
-execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c
+execute_process(COMMAND "${Python_EXECUTABLE}" -c
     "import os; os.kill(os.getpid(),11)"
   COMMAND ${CMAKE_COMMAND} -E true
   RESULT_VARIABLE result
   )
 
 if(result EQUAL "0")
-  execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c
+  execute_process(COMMAND "${Python_EXECUTABLE}" -c
       "import os; os.kill(os.getpid(),11)"
     COMMAND ${CMAKE_COMMAND} -E true
     COMMAND_ERROR_IS_FATAL LAST

+ 2 - 2
Tests/RunCMake/execute_process/LastCommandAbnormalExit-2.cmake

@@ -1,12 +1,12 @@
 execute_process(COMMAND ${CMAKE_COMMAND} -E true
-  COMMAND "${PYTHON_EXECUTABLE}" -c
+  COMMAND "${Python_EXECUTABLE}" -c
     "import os; os.kill(os.getpid(),11)"
   RESULT_VARIABLE result
   )
 
 if(NOT result EQUAL "0")
   execute_process(COMMAND ${CMAKE_COMMAND} -E true
-    COMMAND "${PYTHON_EXECUTABLE}" -c
+    COMMAND "${Python_EXECUTABLE}" -c
       "import os; os.kill(os.getpid(),11)"
     COMMAND_ERROR_IS_FATAL LAST
     )

+ 4 - 4
Tests/RunCMake/execute_process/RunCMakeTest.cmake

@@ -35,8 +35,8 @@ run_cmake_command(LastCommandError ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/La
 run_cmake_command(LastCommandTimeout ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandTimeout.cmake)
 run_cmake_command(LastCommandGood ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandGood.cmake)
 
-if(UNIX AND PYTHON_EXECUTABLE)
-  run_cmake_command(AnyCommandAbnormalExit ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/AnyCommandAbnormalExit.cmake)
-  run_cmake_command(LastCommandAbnormalExit-1 ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/LastCommandAbnormalExit-1.cmake)
-  run_cmake_command(LastCommandAbnormalExit-2 ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/LastCommandAbnormalExit-2.cmake)
+if(UNIX AND Python_EXECUTABLE)
+  run_cmake_command(AnyCommandAbnormalExit ${CMAKE_COMMAND} -DPython_EXECUTABLE=${Python_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/AnyCommandAbnormalExit.cmake)
+  run_cmake_command(LastCommandAbnormalExit-1 ${CMAKE_COMMAND} -DPython_EXECUTABLE=${Python_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/LastCommandAbnormalExit-1.cmake)
+  run_cmake_command(LastCommandAbnormalExit-2 ${CMAKE_COMMAND} -DPython_EXECUTABLE=${Python_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/LastCommandAbnormalExit-2.cmake)
 endif()

+ 1 - 1
Utilities/Release/win/x86/cache-i386.txt

@@ -19,7 +19,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-i386/plugins/pl
 
 # Build documentation.
 CMAKE_DOC_DIR:STRING=doc/cmake
-PYTHON_EXECUTABLE:FILEPATH=C:/python3/python.exe
+Python_EXECUTABLE:FILEPATH=C:/python3/python.exe
 SPHINX_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
 SPHINX_HTML:BOOL=ON
 SPHINX_MAN:BOOL=ON

+ 1 - 1
Utilities/Release/win/x86/cache-x86_64.txt

@@ -19,7 +19,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-x86_64/plugins/
 
 # Build documentation.
 CMAKE_DOC_DIR:STRING=doc/cmake
-PYTHON_EXECUTABLE:FILEPATH=C:/python3/python.exe
+Python_EXECUTABLE:FILEPATH=C:/python3/python.exe
 SPHINX_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
 SPHINX_HTML:BOOL=ON
 SPHINX_MAN:BOOL=ON

+ 2 - 2
Utilities/Sphinx/CMakeLists.txt

@@ -101,7 +101,7 @@ if(SPHINX_INFO)
   )
 endif()
 if(SPHINX_QTHELP)
-  find_package(PythonInterp REQUIRED)
+  find_package(Python REQUIRED)
 
   find_program(QHELPGENERATOR_EXECUTABLE
     NAMES qhelpgenerator-qt5 qhelpgenerator
@@ -124,7 +124,7 @@ if(SPHINX_QTHELP)
 
     # Create proper identifiers. Workaround for
     # https://bitbucket.org/birkenfeld/sphinx/issue/1491/qthelp-should-generate-identifiers-for
-    COMMAND "${PYTHON_EXECUTABLE}"
+    COMMAND "${Python_EXECUTABLE}"
       "${CMAKE_CURRENT_SOURCE_DIR}/create_identifiers.py"
       "${CMAKE_CURRENT_BINARY_DIR}/qthelp/"