Use system's pybind11 if available.

This commit is contained in:
Markus Blatt 2021-03-15 21:55:40 +01:00
parent 77050e5042
commit f8c6fabb2d
2 changed files with 11 additions and 2 deletions

View File

@ -210,6 +210,11 @@ if (OPM_ENABLE_PYTHON)
endif()
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
endif()
find_package(pybind11 2.2 CONFIG)
if (NOT pybind11_FOUND)
# Use full path for reuse with pypi
set(pybind11_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/python/pybind11/include ${PYTHON_INCLUDE_DIRS})
endif()
endif()
@ -356,6 +361,10 @@ if (OPM_ENABLE_PYTHON)
set(opm-common_PYTHON_PACKAGE_VERSION ${OPM_PYTHON_PACKAGE_VERSION_TAG})
# Generate versioned setup.py
if (pybind11_INCLUDE_DIRS)
string(REGEX REPLACE ";" "', '" _tmp "${pybind11_INCLUDE_DIRS}" )
set(SETUP_PY_PYBIND_INCLUDE_DIR "'${_tmp}'")
endif()
configure_file (${PROJECT_SOURCE_DIR}/python/setup.py.in ${PROJECT_BINARY_DIR}/python/setup.py)
file(COPY ${PROJECT_SOURCE_DIR}/python/README.md DESTINATION ${PROJECT_BINARY_DIR}/python)
execute_process(COMMAND ${Python3_EXECUTABLE} target_name.py
@ -433,7 +442,7 @@ if (OPM_ENABLE_PYTHON)
# -------------------------------------------------------------------------
# 2: Embed the Python interpreter for keywords like PYACTION and PYINPUT
target_include_directories(opmcommon SYSTEM PRIVATE "python/pybind11/include;${PYTHON_INCLUDE_DIRS}")
target_include_directories(opmcommon SYSTEM PRIVATE "${pybind11_INCLUDE_DIRS}")
if (OPM_ENABLE_EMBEDDED_PYTHON)
target_link_libraries(opmcommon PUBLIC ${PYTHON_LIBRARY})
add_definitions(-DEMBEDDED_PYTHON)

View File

@ -65,7 +65,7 @@ ext_modules = [
libraries=libs,
language='c++',
undef_macros=["NDEBUG"],
include_dirs=["pybind11/include"],
include_dirs=[@SETUP_PY_PYBIND_INCLUDE_DIR@],
extra_compile_args=['-std=c++17', '-fopenmp'],
extra_link_args=['-fopenmp', @opm-common_PYTHON_LINKAGE@]
)