4
4
import sys
5
5
import pathlib
6
6
import sysconfig
7
+ import importlib .metadata
7
8
8
9
from skbuild import setup
9
10
import skbuild .cmaker
10
11
from subprocess import check_output
11
12
12
- setup_requires = ['pybind11-stubgen== 2.5' ]
13
+ setup_requires = ['pybind11-stubgen>= 2.5' , 'netgen-occt-devel ' ]
13
14
14
15
pyprefix = pathlib .Path (sys .prefix ).as_posix ()
15
16
17
+ def find_occt_dir ():
18
+ for f in importlib .metadata .files ("netgen-occt-devel" ):
19
+ if f .match ("OpenCASCADEConfig.cmake" ):
20
+ return f .locate ().parent .resolve ().absolute ().as_posix ()
21
+
16
22
def install_filter (cmake_manifest ):
17
23
print (cmake_manifest )
18
24
return cmake_manifest
@@ -36,7 +42,7 @@ def _patched_parse_manifests(self):
36
42
if len (version )> 1 :
37
43
version = '.post' .join (version )
38
44
if not 'NG_NO_DEV_PIP_VERSION' in os .environ :
39
- version += '.dev '
45
+ version += '.dev0 '
40
46
else :
41
47
version = version [0 ]
42
48
@@ -47,6 +53,7 @@ def _patched_parse_manifests(self):
47
53
cmake_args = [
48
54
f'-DNETGEN_VERSION_GIT={ git_version } ' ,
49
55
f'-DNETGEN_VERSION_PYTHON={ version } ' ,
56
+ f'-DOpenCascade_DIR={ find_occt_dir ()} ' ,
50
57
]
51
58
52
59
if 'NETGEN_ARCH' in os .environ and os .environ ['NETGEN_ARCH' ] == 'avx2' :
@@ -132,7 +139,7 @@ def _patched_parse_manifests(self):
132
139
'-DUSE_GUI=ON' ,
133
140
'-DUSE_NATIVE_ARCH=OFF' ,
134
141
'-DBUILD_ZLIB=ON' ,
135
- '-DBUILD_OCC=ON ' ,
142
+ '-DBUILD_OCC=OFF ' ,
136
143
'-DUSE_OCC=ON' ,
137
144
'-DBUILD_FOR_CONDA=ON' ,
138
145
f'-DNETGEN_PYTHON_PACKAGE_NAME={ name } ' ,
@@ -149,6 +156,7 @@ def _patched_parse_manifests(self):
149
156
license = "LGPL2.1" ,
150
157
packages = packages ,
151
158
#package_dir={'netgen': 'python'},
159
+ install_requires = [f"netgen-occt=={ importlib .metadata .version ('netgen-occt-devel' )} " ],
152
160
tests_require = ['pytest' ],
153
161
#include_package_data=True,
154
162
cmake_process_manifest_hook = install_filter ,
0 commit comments