Skip to content

Commit 9b2bda3

Browse files
committed
Fix: non-install time for UNIX platforms + CI adaptation
1 parent b3cea2b commit 9b2bda3

File tree

2 files changed

+49
-28
lines changed

2 files changed

+49
-28
lines changed

.github/workflows/ccpp.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,17 +128,24 @@ jobs:
128128
run: cmake --build . --target test
129129

130130
- name: Build Python interface
131-
run: |
132-
pip install --check-build-dependencies --no-build-isolation --config-settings=cmake.build-type="Developer" 'python/[test]'
133-
python -c "from mpi4py import MPI; import dolfinx; assert not dolfinx.has_petsc; assert not dolfinx.has_petsc4py; assert dolfinx.has_superlu_dist"
131+
run: >
132+
pip install 'python/[test]'
133+
--check-build-dependencies
134+
--no-build-isolation
135+
--config-settings=cmake.build-type="Developer"
136+
--verbose
137+
138+
- name: Check Python install
139+
run: python -c "from mpi4py import MPI; import dolfinx; assert not dolfinx.has_petsc; assert not dolfinx.has_petsc4py; assert dolfinx.has_superlu_dist"
134140

135141
- name: Run mypy # Use a venv to avoid NumPy upgrades that are incompatible with numba
136142
working-directory: python
137143
run: |
138-
python -m venv mypy-env
144+
python -m venv --system-site-packages mypy-env
139145
. ./mypy-env/bin/activate
140146
pip install mypy types-cffi scipy-stubs
141147
mypy -p dolfinx
148+
mypy -p dolfinx.cpp
142149
# mypy test
143150
# mypy demo
144151

python/CMakeLists.txt

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -187,27 +187,41 @@ set_target_properties(cpp PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
187187

188188
install(TARGETS cpp DESTINATION dolfinx)
189189

190-
nanobind_add_stub(
191-
cpp_stub
192-
MODULE dolfinx.cpp
193-
DEPENDS cpp
194-
VERBOSE
195-
RECURSIVE
196-
INSTALL_TIME
197-
OUTPUT_PATH dolfinx
198-
OUTPUT
199-
dolfinx/cpp/fem/__init__.pyi
200-
dolfinx/cpp/fem/petsc.pyi
201-
dolfinx/cpp/la/__init__.pyi
202-
dolfinx/cpp/la/petsc.pyi
203-
dolfinx/cpp/nls/__init__.pyi
204-
dolfinx/cpp/nls/petsc.pyi
205-
dolfinx/cpp/__init__.pyi
206-
dolfinx/cpp/common.pyi
207-
dolfinx/cpp/geometry.pyi
208-
dolfinx/cpp/graph.pyi
209-
dolfinx/cpp/io.pyi
210-
dolfinx/cpp/log.pyi
211-
dolfinx/cpp/mesh.pyi
212-
dolfinx/cpp/refinement.pyi
213-
)
190+
191+
if (WIN32)
192+
message("Windows..." STATUS FATAL_ERROR)
193+
else()
194+
nanobind_add_stub(
195+
cpp_stub
196+
MODULE cpp
197+
PYTHON_PATH $<TARGET_FILE_DIR:cpp>
198+
DEPENDS cpp
199+
MARKER_FILE cpp/py.typed
200+
VERBOSE
201+
RECURSIVE
202+
# INSTALL_TIME
203+
# OUTPUT_PATH dolfinx
204+
OUTPUT
205+
cpp/fem/__init__.pyi
206+
cpp/fem/petsc.pyi
207+
cpp/la/__init__.pyi
208+
cpp/la/petsc.pyi
209+
cpp/nls/__init__.pyi
210+
cpp/nls/petsc.pyi
211+
cpp/__init__.pyi
212+
cpp/common.pyi
213+
cpp/geometry.pyi
214+
cpp/graph.pyi
215+
cpp/io.pyi
216+
cpp/log.pyi
217+
cpp/mesh.pyi
218+
cpp/refinement.pyi
219+
)
220+
221+
install(TARGETS cpp LIBRARY DESTINATION dolfinx)
222+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cpp
223+
DESTINATION dolfinx
224+
FILES_MATCHING
225+
PATTERN "*.pyi"
226+
PATTERN "*.typed")
227+
endif()

0 commit comments

Comments
 (0)