1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-17 15:32:10 +08:00
Files
CMake/Tests/FindPython/ExactVersion/CMakeLists.txt
Marc Chevrier 2549dc7c93 FindPython: Enable C language in tests that find the Development component
Since commit 5537ccd814 (FindPython: Tests optimizations, 2020-10-01)
some FindPython tests fail because the Development component cannot be
found without knowing `CMAKE_LIBRARY_ARCHITECTURE`.  Enable at least one
language in each of these test cases to get that value.  This is
consistent with use in practice because the Development component does
not make much sense without a language to compile sources anyway.

Fixes: #21277
2020-10-07 12:01:43 -04:00

57 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.1)
project(TestExactVersion LANGUAGES C)
find_package(Python${Python_MAJOR_VERSION} ${Python_REQUESTED_VERSION} COMPONENTS Interpreter Development)
if(NOT Python${Python_MAJOR_VERSION}_FOUND)
message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION}")
endif()
if(NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Interpreter")
endif()
if(NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
message (FATAL_ERROR "Failed to find 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 "Failed to find Python ${Python_REQUESTED_VERSION}")
endif()
if(NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Interpreter")
endif()
if(NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
message (FATAL_ERROR "Failed to find 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()