mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-25 14:45:12 +00:00
cmake: robustified search for python
This commit is contained in:
parent
3faa3879c6
commit
caa9d44cc7
@ -14,6 +14,8 @@ option(PYBIND11_INSTALL "Install pybind11 header files?" ON)
|
|||||||
# Add a CMake parameter for choosing a desired Python version
|
# Add a CMake parameter for choosing a desired Python version
|
||||||
set(PYBIND11_PYTHON_VERSION "" CACHE STRING "Python version to use for compiling the example application")
|
set(PYBIND11_PYTHON_VERSION "" CACHE STRING "Python version to use for compiling the example application")
|
||||||
|
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
|
|
||||||
# Set a default build configuration if none is specified. 'MinSizeRel' produces the smallest binaries
|
# Set a default build configuration if none is specified. 'MinSizeRel' produces the smallest binaries
|
||||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
message(STATUS "Setting build type to 'MinSizeRel' as none was specified.")
|
message(STATUS "Setting build type to 'MinSizeRel' as none was specified.")
|
||||||
@ -23,11 +25,16 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|||||||
endif()
|
endif()
|
||||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE)
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE)
|
||||||
|
|
||||||
set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
|
set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6 3.7)
|
||||||
find_package(PythonLibs ${PYBIND11_PYTHON_VERSION} REQUIRED)
|
if (NOT ${PYBIND11_PYTHON_VERSION} STREQUAL "")
|
||||||
find_package(PythonInterp ${PYBIND11_PYTHON_VERSION} REQUIRED)
|
find_package(PythonLibs ${PYBIND11_PYTHON_VERSION} EXACT)
|
||||||
|
if (NOT PythonLibs_FOUND)
|
||||||
include(CheckCXXCompilerFlag)
|
find_package(PythonLibs ${PYBIND11_PYTHON_VERSION} REQUIRED)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
find_package(PythonLibs REQUIRED)
|
||||||
|
endif()
|
||||||
|
find_package(PythonInterp ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED)
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
# Enable C++11 mode on C++ / Clang
|
# Enable C++11 mode on C++ / Clang
|
||||||
|
@ -28,8 +28,15 @@ and that the pybind11 repository is located in a subdirectory named :file:`pybin
|
|||||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE)
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE)
|
||||||
|
|
||||||
# Try to autodetect Python (can be overridden manually if needed)
|
# Try to autodetect Python (can be overridden manually if needed)
|
||||||
set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
|
set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6 3.7)
|
||||||
find_package(PythonLibs ${EXAMPLE_PYTHON_VERSION} REQUIRED)
|
if (NOT ${PYBIND11_PYTHON_VERSION} STREQUAL "")
|
||||||
|
find_package(PythonLibs ${PYBIND11_PYTHON_VERSION} EXACT REQUIRED)
|
||||||
|
else()
|
||||||
|
find_package(PythonLibs REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Uncomment the following line if you will also require a matching Python interpreter
|
||||||
|
# find_package(PythonInterp ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED)
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
# Enable C++11 mode on C++ / Clang
|
# Enable C++11 mode on C++ / Clang
|
||||||
|
Loading…
Reference in New Issue
Block a user