blob: 70bedc029399c0c5fcd314fb43fc8816dfaf17a1 (
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
|
This patch enables us to tell CMake to find a particular python
impl on a multi-impl system.
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -223,20 +223,26 @@ if(ENABLE_TESTS)
find_package(Libcheck REQUIRED)
# Used to generate the test files and for the application feature test framework
- find_package(Python3 REQUIRED)
+ # In distros that support multiple implementations of python it is helpful to specify the impl to use
+ if(DEFINED PYTHON_FIND_VERSION)
+ find_package(Python3 EXACT ${PYTHON_FIND_VERSION} REQUIRED)
+ else()
+ find_package(Python3 REQUIRED)
+ # Not requesting a specific python impl; try using pytest from the PATH
+ execute_process(
+ COMMAND pytest --version
+ RESULT_VARIABLE PYTEST_EXIT_CODE
+ ERROR_QUIET OUTPUT_QUIET
+ )
- # First try using pytest from the PATH
- execute_process(
- COMMAND pytest --version
- RESULT_VARIABLE PYTEST_EXIT_CODE
- ERROR_QUIET OUTPUT_QUIET
- )
+ if(${PYTEST_EXIT_CODE} EQUAL 0)
+ # pytest found in the path.
+ set(PythonTest_COMMAND "pytest;-v")
+ endif()
+ endif()
- if(${PYTEST_EXIT_CODE} EQUAL 0)
- # pytest found in the path.
- set(PythonTest_COMMAND "pytest;-v")
- else()
- # Not in the path, try using: python3 -m pytest
+ if("${PythonTest_COMMAND}" STREQUAL "")
+ # Not in the path or specified a python impl; try using: python3 -m pytest
execute_process(
COMMAND ${Python3_EXECUTABLE} -m pytest --version
RESULT_VARIABLE PYTEST_MODULE_EXIT_CODE
|