@@ -23,6 +23,43 @@ nanoarrow_device_dep = nanoarrow_proj.get_variable('nanoarrow_device_dep')
23
23
24
24
py = import (' python' ).find_installation(pure : false )
25
25
26
+ nanoarrow_c = custom_target (
27
+ ' nanoarrow_c' ,
28
+ output : ' nanoarrow_c.pxd' ,
29
+ command : [
30
+ ' autopxd' ,
31
+ ' -I' ,
32
+ meson .project_source_root() / ' subprojects/arrow-nanoarrow/src/' ,
33
+ ' -I' ,
34
+ meson .project_build_root() / ' subprojects/arrow-nanoarrow/src/' ,
35
+ # ideally we could use @INPUT@ but that will throw a sandboxing violation
36
+ meson .project_source_root() / ' subprojects/arrow-nanoarrow/src/nanoarrow/nanoarrow.h' ,
37
+ ' @OUTPUT@' ,
38
+ ],
39
+ )
40
+ nanoarrow_c_dep = declare_dependency (
41
+ sources : nanoarrow_c,
42
+ )
43
+
44
+ nanoarrow_device_c = custom_target (
45
+ ' nanoarrow_device_c' ,
46
+ output : ' nanoarrow_device_c.pxd' ,
47
+ command : [
48
+ ' autopxd' ,
49
+ ' -I' ,
50
+ meson .project_source_root() / ' subprojects/arrow-nanoarrow/src/' ,
51
+ ' -I' ,
52
+ meson .project_build_root() / ' subprojects/arrow-nanoarrow/src/' ,
53
+ # ideally we could use @INPUT@ but that will throw a sandboxing violation
54
+ meson .project_source_root() / ' subprojects/arrow-nanoarrow/src/nanoarrow/nanoarrow_device.h' ,
55
+ ' @OUTPUT@' ,
56
+ ],
57
+ )
58
+
59
+ nanoarrow_device_c_dep = declare_dependency (
60
+ sources : nanoarrow_device_c,
61
+ )
62
+
26
63
cyfiles = [
27
64
' _array.pyx' ,
28
65
' _array_stream.pyx' ,
@@ -37,14 +74,16 @@ cyfiles = [
37
74
cython_args = [
38
75
' --include-dir' ,
39
76
meson .current_source_dir(),
77
+ ' --include-dir' ,
78
+ meson .current_build_dir(),
40
79
]
41
80
if get_option (' buildtype' ) in [' debug' , ' debugoptimized' ]
42
81
cython_args += [' --gdb' ]
43
82
endif
44
83
45
84
fs = import (' fs' )
46
85
foreach cyf : cyfiles
47
- cyfile_deps = [nanoarrow_dep]
86
+ cyfile_deps = [nanoarrow_dep, nanoarrow_c_dep, nanoarrow_device_c_dep ]
48
87
49
88
stem = fs.stem(cyf)
50
89
if stem in [' _array' , ' _device' ]
@@ -76,6 +115,7 @@ py_sources = [
76
115
' device.py' ,
77
116
' ipc.py' ,
78
117
' iterator.py' ,
118
+ ' nanoarrow_macros.pxd' ,
79
119
' _repr_utils.py' ,
80
120
' schema.py' ,
81
121
' visitor.py' ,
0 commit comments