Commit 67a63929 by Wenzel Jakob

very minor cmake adjustments

parent 1503d2fb
...@@ -13,10 +13,10 @@ project(pybind11) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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() ...@@ -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})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment