summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/FindPython/ExactVersion.cmake
blob: 6c048bdc894c1796fb1b64fb75b990ffe8566d7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
enable_language(C)

find_package(${PYTHON} ${Python_REQUESTED_VERSION} COMPONENTS Interpreter Development)
if(NOT ${PYTHON}_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION}")
endif()
if(NOT ${PYTHON}_Interpreter_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Interpreter")
endif()
if(NOT ${PYTHON}_Development_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Development")
endif()

if(NOT TARGET ${PYTHON}::Interpreter)
  message(SEND_ERROR "${PYTHON}::Interpreter not found")
endif()

if(NOT TARGET ${PYTHON}::Python)
  message(SEND_ERROR "${PYTHON}::Python not found")
endif()
if(NOT TARGET ${PYTHON}::Module)
  message(SEND_ERROR "${PYTHON}::Module not found")
endif()


# reset artifacts and second search with exact version already founded
unset(${PYTHON}_EXECUTABLE)
unset(_${PYTHON}_EXECUTABLE CACHE)

unset(_${PYTHON}_LIBRARY_RELEASE CACHE)
unset(_${PYTHON}_INCLUDE_DIR CACHE)

set(Python_REQUESTED_VERSION ${${PYTHON}_VERSION})
find_package(${PYTHON} ${Python_REQUESTED_VERSION} EXACT COMPONENTS Interpreter Development)
if(NOT ${PYTHON}_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION}")
endif()
if(NOT ${PYTHON}_Interpreter_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Interpreter")
endif()
if(NOT ${PYTHON}_Development_FOUND)
  message (FATAL_ERROR "Failed to find Python ${Python_REQUESTED_VERSION} Development")
endif()

if(NOT TARGET ${PYTHON}::Interpreter)
  message(SEND_ERROR "${PYTHON}::Interpreter not found")
endif()

if(NOT TARGET ${PYTHON}::Python)
  message(SEND_ERROR "${PYTHON}::Python not found")
endif()
if(NOT TARGET ${PYTHON}::Module)
  message(SEND_ERROR "${PYTHON}::Module not found")
endif()