Commit e7dc4c23f77726737d34483481aa2a4c0ff03156
Committed by
Henry Schreiner
1 parent
eb7a75dc
Adding check for correct python version for search
Showing
1 changed file
with
27 additions
and
4 deletions
CMakeLists.txt
| @@ -113,14 +113,37 @@ export(TARGETS CLI11 | @@ -113,14 +113,37 @@ export(TARGETS CLI11 | ||
| 113 | export(PACKAGE CLI11) | 113 | export(PACKAGE CLI11) |
| 114 | 114 | ||
| 115 | # Single file test | 115 | # Single file test |
| 116 | -find_package(PythonInterp) | ||
| 117 | -cmake_dependent_option(CLI11_SINGLE_FILE "Generate a single header file" ON "CUR_PROJ;PYTHONINTERP_FOUND" OFF) | 116 | +if(CMAKE_VERSION VERSION_LESS 3.12) |
| 117 | + set(Python_ADDITIONAL_VERSIONS 2.7 3.4 3.5 3.6 3.7 3.8) | ||
| 118 | + find_package(PythonInterp) | ||
| 119 | + set(Python_VERSION ${PYTHON_VERSION_STRING}) | ||
| 120 | + set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}") | ||
| 121 | +else() | ||
| 122 | + find_package(Python) | ||
| 123 | +endif() | ||
| 124 | + | ||
| 125 | +if(Python_Interpreter_FOUND OR PYTHONINTERP_FOUND) | ||
| 126 | + if(Python_VERSION VERSION_LESS 2.7) | ||
| 127 | + set(CLI11_PYTHON_FOUND FALSE) | ||
| 128 | + else() | ||
| 129 | + set(CLI11_PYTHON_FOUND TRUE) | ||
| 130 | + endif() | ||
| 131 | +else() | ||
| 132 | + set(CLI11_PYTHON_FOUND FALSE) | ||
| 133 | +endif() | ||
| 134 | + | ||
| 135 | +cmake_dependent_option(CLI11_SINGLE_FILE "Generate a single header file" ON "CUR_PROJ;CLI11_PYTHON_FOUND" OFF) | ||
| 118 | 136 | ||
| 119 | if(CLI11_SINGLE_FILE) | 137 | if(CLI11_SINGLE_FILE) |
| 120 | - find_package(PythonInterp REQUIRED) | 138 | + if(NOT CLI11_PYTHON_FOUND) |
| 139 | + message(FATAL_ERROR "CLI11_SINGLE_FILE requires Python 2.7 or 3 (not found)") | ||
| 140 | + else() | ||
| 141 | + message(STATUS "Building single file include using Python ${Python_VERSION} at ${Python_EXECUTABLE}") | ||
| 142 | + endif() | ||
| 143 | + | ||
| 121 | file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") | 144 | file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") |
| 122 | add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp" | 145 | add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp" |
| 123 | - COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/MakeSingleHeader.py" "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp" | 146 | + COMMAND "${Python_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/MakeSingleHeader.py" "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp" |
| 124 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/CLI/CLI.hpp" ${CLI11_headers} | 147 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/CLI/CLI.hpp" ${CLI11_headers} |
| 125 | ) | 148 | ) |
| 126 | add_custom_target(generate_cli_single_file ALL | 149 | add_custom_target(generate_cli_single_file ALL |