mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
FindPython: Add capability to specify Python implementations
Through hint Python_FIND_IMPLEMENTATIONS it is possble to specify, as an ordered list, which implementations must be searched for. Currently possible values are: * CPython * IronPython
This commit is contained in:
37
Tests/FindPython/Implementation/CMakeLists.txt
Normal file
37
Tests/FindPython/Implementation/CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
project(TestImplementation${Python_REQUESTED_IMPLEMENTATION} C)
|
||||
|
||||
|
||||
set (Python${Python_REQUESTED_VERSION}_FIND_IMPLEMENTATIONS ${Python_REQUESTED_IMPLEMENTATION})
|
||||
|
||||
find_package(Python${Python_REQUESTED_VERSION} COMPONENTS Interpreter)
|
||||
if (NOT Python${Python_REQUESTED_VERSION}_FOUND OR NOT Python${Python_REQUESTED_VERSION}_Interpreter_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python${Python_REQUESTED_VERSION}")
|
||||
endif()
|
||||
|
||||
if (Python_REQUESTED_IMPLEMENTATION STREQUAL "IronPython"
|
||||
AND NOT Python${Python_REQUESTED_VERSION}_INTERPRETER_ID STREQUAL "IronPython")
|
||||
message (FATAL_ERROR "Erroneous interpreter ID (${Python${Python_REQUESTED_VERSION}_INTERPRETER_ID})")
|
||||
endif()
|
||||
if (Python_REQUESTED_IMPLEMENTATION STREQUAL "CPython"
|
||||
AND Python${Python_REQUESTED_VERSION}_INTERPRETER_ID STREQUAL "IronPython")
|
||||
message (FATAL_ERROR "Erroneous interpreter ID (${Python${Python_REQUESTED_VERSION}_INTERPRETER_ID})")
|
||||
endif()
|
||||
|
||||
|
||||
set (Python_FIND_IMPLEMENTATIONS ${Python_REQUESTED_IMPLEMENTATION})
|
||||
|
||||
find_package(Python ${Python_REQUESTED_VERSION} REQUIRED COMPONENTS Interpreter)
|
||||
if (NOT Python_FOUND OR NOT Python_Interpreter_FOUND)
|
||||
message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION}")
|
||||
endif()
|
||||
|
||||
if (Python_REQUESTED_IMPLEMENTATION STREQUAL "IronPython"
|
||||
AND NOT Python_INTERPRETER_ID STREQUAL "IronPython")
|
||||
message (FATAL_ERROR "Erroneous interpreter ID (${Python_INTERPRETER_ID})")
|
||||
endif()
|
||||
if (Python_REQUESTED_IMPLEMENTATION STREQUAL "CPython"
|
||||
AND Python_INTERPRETER_ID STREQUAL "IronPython")
|
||||
message (FATAL_ERROR "Erroneous interpreter ID (${Python_INTERPRETER_ID})")
|
||||
endif()
|
||||
Reference in New Issue
Block a user