diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2020-04-22 13:01:21 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2020-04-28 11:56:18 (GMT) |
commit | d2c47c822b50d3cfd23b208c663fbe4f40fcf2f5 (patch) | |
tree | 0f7183ab2b5a8875bc97b8673a9a726bf1e0358d /Tests/FindPython/Implementation | |
parent | 265fb71c917e3921012c2950a921cb380f60ae0f (diff) | |
download | CMake-d2c47c822b50d3cfd23b208c663fbe4f40fcf2f5.zip CMake-d2c47c822b50d3cfd23b208c663fbe4f40fcf2f5.tar.gz CMake-d2c47c822b50d3cfd23b208c663fbe4f40fcf2f5.tar.bz2 |
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
Diffstat (limited to 'Tests/FindPython/Implementation')
-rw-r--r-- | Tests/FindPython/Implementation/CMakeLists.txt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Tests/FindPython/Implementation/CMakeLists.txt b/Tests/FindPython/Implementation/CMakeLists.txt new file mode 100644 index 0000000..d64fa1e --- /dev/null +++ b/Tests/FindPython/Implementation/CMakeLists.txt @@ -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() |