mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
Merge branch 'backport-3.17-FindPython-check-specified-version' into FindPython-check-specified-version
This commit is contained in:
@@ -150,6 +150,99 @@ if(CMake_TEST_FindPython)
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
|
||||
add_test(NAME FindPython.Python2.ExactVersion.LOCATION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.LOCATION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_MAJOR_VERSION=2
|
||||
-DPython_REQUESTED_VERSION=2.1.2
|
||||
-DPython2_FIND_STRATEGY=LOCATION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python2.ExactVersion.VERSION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.VERSION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_MAJOR_VERSION=2
|
||||
-DPython_REQUESTED_VERSION=2.1.2
|
||||
-DPython2_FIND_STRATEGY=VERSION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python3.ExactVersion.LOCATION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python3.ExactVersion.LOCATION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_MAJOR_VERSION=3
|
||||
-DPython_REQUESTED_VERSION=3.1.2
|
||||
-DPython3_FIND_STRATEGY=LOCATION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python3.ExactVersion.VERSION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python3.ExactVersion.VERSION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_MAJOR_VERSION=3
|
||||
-DPython_REQUESTED_VERSION=3.1.2
|
||||
-DPython3_FIND_STRATEGY=VERSION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python.V2.ExactVersion.LOCATION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.LOCATION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
|
||||
-DPython_FIND_STRATEGY=LOCATION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python.V2.ExactVersion.VERSION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.VERSION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
|
||||
-DPython_FIND_STRATEGY=VERSION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python.V3.ExactVersion.LOCATION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V3.ExactVersion.LOCATION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_REQUESTED_VERSION=3.1.2
|
||||
-DPython_FIND_STRATEGY=LOCATION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.Python.V3.ExactVersion.VERSION COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V3.ExactVersion.VERSION"
|
||||
${build_generator_args}
|
||||
--build-project TestExactVersion
|
||||
--build-options ${build_options} -DPython_REQUESTED_VERSION=3.1.2
|
||||
-DPython_FIND_STRATEGY=VERSION
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
|
||||
add_test(NAME FindPython.MultiplePackages COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
|
56
Tests/FindPython/ExactVersion/CMakeLists.txt
Normal file
56
Tests/FindPython/ExactVersion/CMakeLists.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
project(TestExactVersion C)
|
||||
|
||||
find_package(Python${Python_MAJOR_VERSION} ${Python_REQUESTED_VERSION} COMPONENTS Interpreter Development)
|
||||
if (NOT Python${Python_MAJOR_VERSION}_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION}")
|
||||
endif()
|
||||
if (NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Interpreter")
|
||||
endif()
|
||||
if (NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Development")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Interpreter)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Interpreter not found")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Python)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Python not found")
|
||||
endif()
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Module)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Module not found")
|
||||
endif()
|
||||
|
||||
|
||||
# reset artifacts and second search with exact version already founded
|
||||
unset (Python${Python_MAJOR_VERSION}_EXECUTABLE)
|
||||
unset (_Python${Python_MAJOR_VERSION}_EXECUTABLE CACHE)
|
||||
|
||||
unset (_Python${Python_MAJOR_VERSION}_LIBRARY_RELEASE CACHE)
|
||||
unset (_Python${Python_MAJOR_VERSION}_INCLUDE_DIR CACHE)
|
||||
|
||||
set (Python_REQUESTED_VERSION ${Python${Python_MAJOR_VERSION}_VERSION})
|
||||
find_package(Python${Python_MAJOR_VERSION} ${Python_REQUESTED_VERSION} EXACT COMPONENTS Interpreter Development)
|
||||
if (NOT Python${Python_MAJOR_VERSION}_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION}")
|
||||
endif()
|
||||
if (NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Interpreter")
|
||||
endif()
|
||||
if (NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Development")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Interpreter)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Interpreter not found")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Python)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Python not found")
|
||||
endif()
|
||||
if(NOT TARGET Python${Python_MAJOR_VERSION}::Module)
|
||||
message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Module not found")
|
||||
endif()
|
Reference in New Issue
Block a user