summaryrefslogtreecommitdiffstats
path: root/Tests/FindPython/Implementation
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2020-04-22 13:01:21 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2020-04-28 11:56:18 (GMT)
commitd2c47c822b50d3cfd23b208c663fbe4f40fcf2f5 (patch)
tree0f7183ab2b5a8875bc97b8673a9a726bf1e0358d /Tests/FindPython/Implementation
parent265fb71c917e3921012c2950a921cb380f60ae0f (diff)
downloadCMake-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.txt37
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()