mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-25 22:52:01 +00:00
very minor cmake adjustments
This commit is contained in:
parent
1503d2fb50
commit
67a6392987
@ -13,10 +13,10 @@ project(pybind11)
|
|||||||
set(PYBIND11_MASTER_PROJECT OFF)
|
set(PYBIND11_MASTER_PROJECT OFF)
|
||||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||||
set(PYBIND11_MASTER_PROJECT ON)
|
set(PYBIND11_MASTER_PROJECT ON)
|
||||||
endif ()
|
endif()
|
||||||
|
|
||||||
option(PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT})
|
option(PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT})
|
||||||
option(PYBIND11_TEST "Build tests?" ${PYBIND11_MASTER_PROJECT})
|
option(PYBIND11_TEST "Build pybind11 test suite?" ${PYBIND11_MASTER_PROJECT})
|
||||||
|
|
||||||
# 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")
|
||||||
@ -61,6 +61,10 @@ function(pybind11_add_module target_name)
|
|||||||
set_target_properties(${target_name} PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}")
|
set_target_properties(${target_name} PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}")
|
||||||
set_target_properties(${target_name} PROPERTIES SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
set_target_properties(${target_name} PROPERTIES SUFFIX "${PYTHON_MODULE_EXTENSION}")
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# Link against the Python shared library on Windows
|
||||||
|
target_link_libraries(${target_name} PRIVATE ${PYTHON_LIBRARIES})
|
||||||
|
elseif(APPLE)
|
||||||
# It's quite common to have multiple copies of the same Python version
|
# It's quite common to have multiple copies of the same Python version
|
||||||
# installed on one's system. E.g.: one copy from the OS and another copy
|
# installed on one's system. E.g.: one copy from the OS and another copy
|
||||||
# that's statically linked into an application like Blender or Maya.
|
# that's statically linked into an application like Blender or Maya.
|
||||||
@ -74,10 +78,7 @@ function(pybind11_add_module target_name)
|
|||||||
# link against the Python library. The resulting shared library will have
|
# link against the Python library. The resulting shared library will have
|
||||||
# missing symbols, but that's perfectly fine -- they will be resolved at
|
# missing symbols, but that's perfectly fine -- they will be resolved at
|
||||||
# import time.
|
# import time.
|
||||||
if(MSVC)
|
|
||||||
target_link_libraries(${target_name} PRIVATE ${PYTHON_LIBRARIES})
|
|
||||||
elseif(APPLE)
|
|
||||||
# Make sure OS X does not have any issues with missing symbols
|
|
||||||
target_link_libraries(${target_name} PRIVATE "-undefined dynamic_lookup")
|
target_link_libraries(${target_name} PRIVATE "-undefined dynamic_lookup")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -124,6 +125,7 @@ function(pybind11_add_module target_name)
|
|||||||
|
|
||||||
# Enforce link time code generation on MSVC, except in debug mode
|
# Enforce link time code generation on MSVC, except in debug mode
|
||||||
target_compile_options(${target_name} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/GL>)
|
target_compile_options(${target_name} PRIVATE $<$<NOT:$<CONFIG:Debug>>:/GL>)
|
||||||
|
|
||||||
# Fancy generator expressions don't work with linker flags, for reasons unknown
|
# Fancy generator expressions don't work with linker flags, for reasons unknown
|
||||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE /LTCG)
|
set_property(TARGET ${target_name} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE /LTCG)
|
||||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY LINK_FLAGS_MINSIZEREL /LTCG)
|
set_property(TARGET ${target_name} APPEND_STRING PROPERTY LINK_FLAGS_MINSIZEREL /LTCG)
|
||||||
@ -132,7 +134,7 @@ function(pybind11_add_module target_name)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Compile with compiler warnings turned on
|
# Compile with compiler warnings turned on
|
||||||
function(pybind11_turn_on_warnings target_name)
|
function(pybind11_enable_warnings target_name)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
target_compile_options(${target_name} PRIVATE /W4)
|
target_compile_options(${target_name} PRIVATE /W4)
|
||||||
else()
|
else()
|
||||||
|
@ -39,7 +39,7 @@ endif()
|
|||||||
|
|
||||||
# Create the binding library
|
# Create the binding library
|
||||||
pybind11_add_module(example example.cpp ${PYBIND11_EXAMPLES})
|
pybind11_add_module(example example.cpp ${PYBIND11_EXAMPLES})
|
||||||
pybind11_turn_on_warnings(example)
|
pybind11_enable_warnings(example)
|
||||||
|
|
||||||
if(EIGEN3_FOUND)
|
if(EIGEN3_FOUND)
|
||||||
target_include_directories(example PRIVATE ${EIGEN3_INCLUDE_DIR})
|
target_include_directories(example PRIVATE ${EIGEN3_INCLUDE_DIR})
|
||||||
|
Loading…
Reference in New Issue
Block a user