Patch pybind11 for MSVC
Re-comit of earlier ef38642bf1
after updating pybind11 to 2.9.2
This commit is contained in:
parent
8d003804e0
commit
c483c58276
|
@ -153,7 +153,6 @@
|
||||||
# define HAVE_SNPRINTF 1
|
# define HAVE_SNPRINTF 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Include Python header, disable linking to pythonX_d.lib on Windows in debug mode
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
# pragma warning(push)
|
# pragma warning(push)
|
||||||
// C4505: 'PySlice_GetIndicesEx': unreferenced local function has been removed (PyPy only)
|
// C4505: 'PySlice_GetIndicesEx': unreferenced local function has been removed (PyPy only)
|
||||||
|
@ -170,6 +169,7 @@
|
||||||
# define PYBIND11_DEBUG_MARKER
|
# define PYBIND11_DEBUG_MARKER
|
||||||
# undef _DEBUG
|
# undef _DEBUG
|
||||||
# endif
|
# endif
|
||||||
|
# pragma warning(disable: 4510 4610 4512 4005)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// https://en.cppreference.com/w/c/chrono/localtime
|
// https://en.cppreference.com/w/c/chrono/localtime
|
||||||
|
|
|
@ -201,6 +201,21 @@ if(CMAKE_HOST_WIN32)
|
||||||
if(NOT EXISTS "${PYTHON_LIBRARY}")
|
if(NOT EXISTS "${PYTHON_LIBRARY}")
|
||||||
get_filename_component(_PYTHON_ROOT ${PYTHON_INCLUDE_DIR} DIRECTORY)
|
get_filename_component(_PYTHON_ROOT ${PYTHON_INCLUDE_DIR} DIRECTORY)
|
||||||
set(PYTHON_LIBRARY "${_PYTHON_ROOT}/libs/python${PYTHON_LIBRARY_SUFFIX}.lib")
|
set(PYTHON_LIBRARY "${_PYTHON_ROOT}/libs/python${PYTHON_LIBRARY_SUFFIX}.lib")
|
||||||
|
elseif(DEFINED VCPKG_TOOLCHAIN AND NOT EXISTS "${PYTHON_LIBRARY}")
|
||||||
|
set(PYTHON_LIBRARY "${PYTHON_PREFIX}/../../lib/python${PYTHON_LIBRARY_SUFFIX}.lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED VCPKG_TOOLCHAIN)
|
||||||
|
unset(PYTHON_LIBRARY)
|
||||||
|
find_library(
|
||||||
|
PYTHON_LIBRARY
|
||||||
|
NAMES "python${PYTHON_LIBRARY_SUFFIX}"
|
||||||
|
NO_SYSTEM_ENVIRONMENT_PATH)
|
||||||
|
|
||||||
|
find_library(PYTHON_DEBUG_LIBRARY
|
||||||
|
NAMES python${PYTHON_LIBRARY_SUFFIX}_d
|
||||||
|
NO_SYSTEM_ENVIRONMENT_PATH
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# if we are in MSYS & MINGW, and we didn't find windows python lib, look for system python lib
|
# if we are in MSYS & MINGW, and we didn't find windows python lib, look for system python lib
|
||||||
|
@ -246,7 +261,7 @@ else()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
mark_as_advanced(PYTHON_LIBRARY PYTHON_INCLUDE_DIR)
|
mark_as_advanced(PYTHON_DEBUG_LIBRARY PYTHON_LIBRARY PYTHON_INCLUDE_DIR)
|
||||||
|
|
||||||
# We use PYTHON_INCLUDE_DIR, PYTHON_LIBRARY and PYTHON_DEBUG_LIBRARY for the
|
# We use PYTHON_INCLUDE_DIR, PYTHON_LIBRARY and PYTHON_DEBUG_LIBRARY for the
|
||||||
# cache entries because they are meant to specify the location of a single
|
# cache entries because they are meant to specify the location of a single
|
||||||
|
@ -259,6 +274,10 @@ if(NOT PYTHON_DEBUG_LIBRARY)
|
||||||
endif()
|
endif()
|
||||||
set(PYTHON_DEBUG_LIBRARIES "${PYTHON_DEBUG_LIBRARY}")
|
set(PYTHON_DEBUG_LIBRARIES "${PYTHON_DEBUG_LIBRARY}")
|
||||||
|
|
||||||
|
set(PYTHON_LIBRARY_DEBUG "${PYTHON_DEBUG_LIBRARY}")
|
||||||
|
set(PYTHON_LIBRARY_RELEASE, "${PYTHON_LIBRARY}")
|
||||||
|
select_library_configurations(PYTHON)
|
||||||
|
|
||||||
find_package_message(PYTHON "Found PythonLibs: ${PYTHON_LIBRARY}"
|
find_package_message(PYTHON "Found PythonLibs: ${PYTHON_LIBRARY}"
|
||||||
"${PYTHON_EXECUTABLE}${PYTHON_VERSION_STRING}")
|
"${PYTHON_EXECUTABLE}${PYTHON_VERSION_STRING}")
|
||||||
|
|
||||||
|
|
|
@ -119,8 +119,11 @@ set_property(
|
||||||
TARGET pybind11::module
|
TARGET pybind11::module
|
||||||
APPEND
|
APPEND
|
||||||
PROPERTY
|
PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES pybind11::python_link_helper
|
INTERFACE_LINK_LIBRARIES pybind11::python_link_helper)
|
||||||
"$<$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Cygwin>>:$<BUILD_INTERFACE:${PYTHON_LIBRARIES}>>")
|
|
||||||
|
if(WIN32)
|
||||||
|
target_link_libraries(pybind11::module INTERFACE ${PYTHON_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(PYTHON_VERSION VERSION_LESS 3)
|
if(PYTHON_VERSION VERSION_LESS 3)
|
||||||
set_property(
|
set_property(
|
||||||
|
@ -129,10 +132,13 @@ if(PYTHON_VERSION VERSION_LESS 3)
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES pybind11::python2_no_register)
|
PROPERTY INTERFACE_LINK_LIBRARIES pybind11::python2_no_register)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# KiCad Workaround, this ends tying release libraries into debug builds which doesn't end well
|
||||||
set_property(
|
set_property(
|
||||||
TARGET pybind11::embed
|
TARGET pybind11::embed
|
||||||
APPEND
|
APPEND
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES pybind11::pybind11 $<BUILD_INTERFACE:${PYTHON_LIBRARIES}>)
|
PROPERTY INTERFACE_LINK_LIBRARIES pybind11::pybind11)
|
||||||
|
|
||||||
|
target_link_libraries(pybind11::embed INTERFACE ${PYTHON_LIBRARIES})
|
||||||
|
|
||||||
function(pybind11_extension name)
|
function(pybind11_extension name)
|
||||||
# The prefix and extension are provided by FindPythonLibsNew.cmake
|
# The prefix and extension are provided by FindPythonLibsNew.cmake
|
||||||
|
|
Loading…
Reference in New Issue