CMake: Use FindPython instead of FindPythonInterp to build CMake itself

Fixes: #23444
This commit is contained in:
Kyle Edwards 2022-04-21 14:08:29 -04:00
parent b6a6190877
commit 313ea361b0
14 changed files with 31 additions and 31 deletions

View File

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

View File

@ -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) if(NOT CMakePresets_SCHEMA_EXPECTED_RESULT)
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0) set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
endif() endif()

View File

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

View File

@ -342,14 +342,14 @@ endfunction()
run_TestStdin() run_TestStdin()
function(show_only_json_check_python v) function(show_only_json_check_python v)
if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE) if(RunCMake_TEST_FAILED OR NOT Python_EXECUTABLE)
return() return()
endif() endif()
set(json_file "${RunCMake_TEST_BINARY_DIR}/ctest.json") set(json_file "${RunCMake_TEST_BINARY_DIR}/ctest.json")
file(WRITE "${json_file}" "${actual_stdout}") file(WRITE "${json_file}" "${actual_stdout}")
set(actual_stdout "" PARENT_SCOPE) set(actual_stdout "" PARENT_SCOPE)
execute_process( 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 RESULT_VARIABLE result
OUTPUT_VARIABLE output OUTPUT_VARIABLE output
ERROR_VARIABLE output ERROR_VARIABLE output

View File

@ -1,6 +1,6 @@
if(PYTHON_EXECUTABLE) if(Python_EXECUTABLE)
execute_process( 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 RESULT_VARIABLE result
OUTPUT_VARIABLE output OUTPUT_VARIABLE output
ERROR_VARIABLE output ERROR_VARIABLE output

View File

@ -1,6 +1,6 @@
if(PYTHON_EXECUTABLE) if(Python_EXECUTABLE)
execute_process( 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 RESULT_VARIABLE result
OUTPUT_VARIABLE output OUTPUT_VARIABLE output
ERROR_VARIABLE output ERROR_VARIABLE output

View File

@ -18,12 +18,12 @@ in directory:
endfunction() endfunction()
function(check_python case) function(check_python case)
if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE) if(RunCMake_TEST_FAILED OR NOT Python_EXECUTABLE)
return() return()
endif() endif()
file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json) file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json)
execute_process( 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}" "${RunCMake_TEST_BINARY_DIR}"
RESULT_VARIABLE result RESULT_VARIABLE result
OUTPUT_VARIABLE output OUTPUT_VARIABLE output

View File

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

View File

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

View File

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

View File

@ -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(LastCommandTimeout ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandTimeout.cmake)
run_cmake_command(LastCommandGood ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandGood.cmake) run_cmake_command(LastCommandGood ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandGood.cmake)
if(UNIX AND PYTHON_EXECUTABLE) if(UNIX AND Python_EXECUTABLE)
run_cmake_command(AnyCommandAbnormalExit ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/AnyCommandAbnormalExit.cmake) 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-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) run_cmake_command(LastCommandAbnormalExit-2 ${CMAKE_COMMAND} -DPython_EXECUTABLE=${Python_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/LastCommandAbnormalExit-2.cmake)
endif() endif()

View File

@ -19,7 +19,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-i386/plugins/pl
# Build documentation. # Build documentation.
CMAKE_DOC_DIR:STRING=doc/cmake 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_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
SPHINX_HTML:BOOL=ON SPHINX_HTML:BOOL=ON
SPHINX_MAN:BOOL=ON SPHINX_MAN:BOOL=ON

View File

@ -19,7 +19,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-x86_64/plugins/
# Build documentation. # Build documentation.
CMAKE_DOC_DIR:STRING=doc/cmake 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_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
SPHINX_HTML:BOOL=ON SPHINX_HTML:BOOL=ON
SPHINX_MAN:BOOL=ON SPHINX_MAN:BOOL=ON

View File

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