Commit e7dc4c23f77726737d34483481aa2a4c0ff03156

Authored by Henry Fredrick Schreiner
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 113 export(PACKAGE CLI11)
114 114  
115 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 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 144 file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
122 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 147 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/CLI/CLI.hpp" ${CLI11_headers}
125 148 )
126 149 add_custom_target(generate_cli_single_file ALL
... ...