diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d69488f3a9..1e1e13770c 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -40,9 +40,9 @@ jobs: python3.exe -m pip install --upgrade cmake python3.exe -m pip install --upgrade numpy - python3.exe -m pip wheel . + python3.exe -m pip wheel -v . if(!$?) { Exit $LASTEXITCODE } - python3.exe -m pip install openPMD_api-0.16.0-cp39-cp39-win_amd64.whl + python3.exe -m pip install -v openPMD_api-0.16.0-cp39-cp39-win_amd64.whl if(!$?) { Exit $LASTEXITCODE } python3.exe -c "import openpmd_api as api; print(api.variants)" diff --git a/cmake/dependencies/pybind11.cmake b/cmake/dependencies/pybind11.cmake index 6719a38c37..70899de816 100644 --- a/cmake/dependencies/pybind11.cmake +++ b/cmake/dependencies/pybind11.cmake @@ -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) diff --git a/setup.py b/setup.py index 4ecbfc5c68..7508d085ee 100644 --- a/setup.py +++ b/setup.py @@ -45,11 +45,14 @@ def build_extension(self, ext): extdir += os.path.sep cmake_args = [ + # Python: use the calling interpreter in CMake + # https://cmake.org/cmake/help/latest/module/FindPython.html#hints + '-DPython_ROOT_DIR=' + sys.prefix, + '-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,