Skip to content

Commit

Permalink
PYBIND11_FINDPYTHON=ON
Browse files Browse the repository at this point in the history
Reuse our `find_package(Python ...)` call and use new CMake logic in
pybind11.
https://pybind11.readthedocs.io/en/stable/compiling.html#modules-with-cmake
https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-version-selection

Signed-off-by: Axel Huebl <axel.huebl@plasma.ninja>
  • Loading branch information
ax3l committed Oct 11, 2024
1 parent 9806b04 commit 22c34fc
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
5 changes: 5 additions & 0 deletions cmake/dependencies/pybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ function(find_pybind11)
message(STATUS "pybind11 repository: ${openPMD_pybind11_repo} (${openPMD_pybind11_branch})")
endif()
endif()

# rely on our find_package(Python ...) call
# https://pybind11.readthedocs.io/en/stable/compiling.html#modules-with-cmake
set(PYBIND11_FINDPYTHON ON)

if(TARGET pybind11::module)
# nothing to do, target already exists in the superbuild
elseif(openPMD_USE_INTERNAL_PYBIND11 AND openPMD_pybind11_src)
Expand Down
9 changes: 8 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,19 @@ def build_extension(self, ext):
if not extdir.endswith(os.path.sep):
extdir += os.path.sep

pyv = sys.version_info
cmake_args = [
# Python: use the calling interpreter in CMake
# https://cmake.org/cmake/help/latest/module/FindPython.html#hints
# https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-version-selection
'-DPython_ROOT_DIR=' + sys.prefix,
f'-DPython_FIND_VERSION={pyv.major}.{pyv.minor}.{pyv.micro}',
'-DPython_FIND_VERSION_EXACT=TRUE',
'-DPython_FIND_STRATEGY=LOCATION',
'-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=' +
os.path.join(extdir, "openpmd_api"),
# '-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=' + extdir,
'-DopenPMD_PYTHON_OUTPUT_DIRECTORY=' + extdir,
'-DPython_EXECUTABLE=' + sys.executable,
'-DopenPMD_USE_PYTHON:BOOL=ON',
# variants
'-DopenPMD_USE_MPI:BOOL=' + openPMD_USE_MPI,
Expand Down

0 comments on commit 22c34fc

Please sign in to comment.