Use system's pybind11 if available.
This commit is contained in:
parent
77050e5042
commit
f8c6fabb2d
@ -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)
|
||||
|
@ -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@]
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user