@@ -9,6 +9,29 @@ project('mohair-faodel'
9
9
)
10
10
11
11
12
+ # ------------------------------
13
+ # Build variables (convenience)
14
+
15
+ # base directory
16
+ cpp_srcdir = ' src' / ' cpp'
17
+
18
+ # dir for core mohair sources
19
+ cpp_querydir = cpp_srcdir / ' query'
20
+
21
+ # dir for generated protobuf code
22
+ cpp_proto_substrait = cpp_srcdir / ' query' / ' substrait'
23
+ cpp_proto_mohair = cpp_srcdir / ' query' / ' mohair'
24
+
25
+ # dir for adapters (execution engines)
26
+ cpp_enginedir = cpp_srcdir / ' engines'
27
+
28
+ # dir for flight services
29
+ cpp_servicedir = cpp_srcdir / ' services'
30
+
31
+ # dir for binary sources (1-1 with binaries)
32
+ cpp_tooldir = cpp_srcdir / ' toolbox'
33
+
34
+
12
35
# ------------------------------
13
36
# Meson dependencies (modules)
14
37
@@ -46,14 +69,21 @@ endif
46
69
# Library dependencies
47
70
48
71
# >> System-dependent dependencies
72
+
73
+ # Include directory for arrow headers
74
+ arrow_incdir = ''
75
+
49
76
if buildsys_type == ' macosx'
50
77
cpp_compiler = meson .get_compiler(' cpp' )
51
- prefix_local = ' /usr' / ' local' / ' arrow-dev' / ' lib'
78
+
79
+ arrow_prefix = ' /usr' / ' local' / ' apache-arrow-14.0.2'
80
+ arrow_libdir = arrow_prefix / ' lib'
81
+ arrow_incdir = arrow_prefix / ' include'
52
82
53
83
# |> Arrow
54
- dep_arrow = cpp_compiler.find_library (' arrow' , dirs : prefix_local , static : false )
55
- dep_acero = cpp_compiler.find_library (' arrow-substrait ' , dirs : prefix_local , static : false )
56
- dep_flight = cpp_compiler.find_library (' arrow-flight ' , dirs : prefix_local , static : false )
84
+ dep_arrow = cpp_compiler.find_library (' arrow' , dirs : arrow_libdir , static : false )
85
+ dep_acero = cpp_compiler.find_library (' arrow_substrait ' , dirs : arrow_libdir , static : false )
86
+ dep_flight = cpp_compiler.find_library (' arrow_flight ' , dirs : arrow_libdir , static : false )
57
87
58
88
elif buildsys_type == ' archlinux'
59
89
# |> Arrow
@@ -74,6 +104,8 @@ dep_absllog = dependency('absl_log')
74
104
# |> Faodel
75
105
dep_ompi = dependency (' ompi-cxx' , required : get_option (' mpi' ))
76
106
dep_faodel = dependency (' faodel' , required : get_option (' faodel' ))
107
+ dep_tiledb = dependency (' tiledb' , required : get_option (' tiledb' ))
108
+ dep_duckdb = dependency (' duckdb' , required : get_option (' duckdb' ))
77
109
78
110
79
111
# >> Make configuration data available to source files
@@ -84,9 +116,10 @@ mohair_cfgdata = configuration_data({
84
116
,' DUCKDB' : dep_duckdb.found()
85
117
})
86
118
87
- mohair_cfgfile = configuration_file(
88
- input : ' mohair-config.hpp.in'
89
- ,output : ' mohair-config.hpp'
119
+ mohair_cfgfile = configure_file (
120
+ input : cpp_srcdir / ' mohair-config.hpp.in'
121
+ ,output : ' mohair-config.hpp'
122
+ ,configuration : mohair_cfgdata
90
123
)
91
124
92
125
@@ -103,28 +136,13 @@ elif dep_ompi.found()
103
136
104
137
endif
105
138
139
+ if dep_tiledb.found()
140
+ dep_service += [dep_tiledb]
141
+ endif
106
142
107
- # ------------------------------
108
- # Build variables (convenience)
109
-
110
- # base directory
111
- cpp_srcdir = ' src' / ' cpp'
112
-
113
- # dir for core mohair sources
114
- cpp_coredir = cpp_srcdir / ' mohair'
115
-
116
- # dir for generated protobuf code
117
- cpp_proto_substrait = cpp_srcdir / ' mohair' / ' substrait'
118
- cpp_proto_mohair = cpp_srcdir / ' mohair' / ' mohair'
119
-
120
- # dir for adapters (execution engines)
121
- cpp_enginedir = cpp_srcdir / ' engines'
122
-
123
- # dir for flight services
124
- cpp_servicedir = cpp_srcdir / ' services'
125
-
126
- # dir for binary sources (1-1 with binaries)
127
- cpp_tooldir = cpp_srcdir / ' toolbox'
143
+ if dep_duckdb.found()
144
+ dep_service += [dep_duckdb]
145
+ endif
128
146
129
147
130
148
# ------------------------------
@@ -146,17 +164,17 @@ substrait_hdrlist = [
146
164
147
165
# >> For decomposable queries
148
166
query_hdrlist = [
149
- cpp_coredir / ' mohair.hpp'
150
- ,cpp_coredir / ' plans.hpp'
151
- ,cpp_coredir / ' operators.hpp'
152
- ,cpp_coredir / ' messages.hpp'
167
+ cpp_srcdir / ' mohair.hpp'
168
+ ,cpp_querydir / ' plans.hpp'
169
+ ,cpp_querydir / ' operators.hpp'
170
+ ,cpp_querydir / ' messages.hpp'
153
171
]
154
172
155
173
# >> For flight services
156
174
services_hdrlist = [
157
- cpp_coredir / ' mohair.hpp'
158
- ,cpp_coredir / ' plans.hpp'
159
- ,cpp_coredir / ' messages.hpp'
175
+ cpp_srcdir / ' mohair.hpp'
176
+ ,cpp_querydir / ' plans.hpp'
177
+ ,cpp_querydir / ' messages.hpp'
160
178
,cpp_enginedir / ' adapter_acero.hpp'
161
179
,cpp_enginedir / ' adapter_faodel.hpp'
162
180
,cpp_servicedir / ' service_mohair.hpp'
@@ -183,17 +201,17 @@ substrait_srclist = [
183
201
184
202
# >> For decomposable queries
185
203
query_srclist = [
186
- cpp_coredir / ' util.cpp'
187
- ,cpp_coredir / ' plans.cpp'
188
- ,cpp_coredir / ' operators.cpp'
189
- ,cpp_coredir / ' messages.cpp'
204
+ cpp_srcdir / ' util.cpp'
205
+ ,cpp_querydir / ' plans.cpp'
206
+ ,cpp_querydir / ' operators.cpp'
207
+ # ,cpp_querydir / 'messages.cpp'
190
208
]
191
209
192
210
# >> For flight services
193
211
services_srclist = [
194
- cpp_coredir / ' util.cpp'
195
- ,cpp_coredir / ' plans.cpp'
196
- ,cpp_coredir / ' operators.cpp'
212
+ cpp_srcdir / ' util.cpp'
213
+ ,cpp_querydir / ' plans.cpp'
214
+ ,cpp_querydir / ' operators.cpp'
197
215
,cpp_enginedir / ' execution.cpp'
198
216
,cpp_servicedir / ' service_mohair.cpp'
199
217
]
@@ -214,8 +232,9 @@ mohair_srv_srclist = (substrait_srclist + services_srclist)
214
232
215
233
lib_mohair = library (' mohair'
216
234
,lib_mohair_srclist
217
- ,dependencies : dep_query
218
- ,install : true
235
+ ,dependencies : dep_query
236
+ ,include_directories : arrow_incdir
237
+ ,install : true
219
238
)
220
239
221
240
module_pkgcfg.generate(lib_mohair)
@@ -233,14 +252,15 @@ install_headers(query_hdrlist, subdir: 'mohair')
233
252
234
253
# |> simple reader for Arrow files
235
254
bin_readarrow_srclist = [
236
- cpp_tooldir / ' read-arrow.cpp'
237
- ,cpp_coredir / ' util.cpp'
255
+ cpp_tooldir / ' read-arrow.cpp'
256
+ ,cpp_srcdir / ' util.cpp'
238
257
]
239
258
240
259
bin_readarrow = executable (' read-arrow'
241
260
,bin_readarrow_srclist
242
- ,dependencies : dep_arrow
243
- ,install : false
261
+ ,dependencies : dep_arrow
262
+ ,include_directories : arrow_incdir
263
+ ,install : false
244
264
)
245
265
246
266
# |> minimal query processor
@@ -251,16 +271,18 @@ bin_mohairquery_srclist = (
251
271
252
272
bin_mohairquery = executable (' mohair'
253
273
,bin_mohairquery_srclist
254
- ,dependencies : dep_query
255
- ,install : false
274
+ ,dependencies : dep_query
275
+ ,include_directories : arrow_incdir
276
+ ,install : false
256
277
)
257
278
258
279
# |> minimal client for mohair services
259
280
mohair_srv_srcmain = [ cpp_tooldir / ' mohair-client.cpp' ]
260
- bin_faodelclient = executable (' mohair-client'
281
+ bin_mohairclient = executable (' mohair-client'
261
282
,(mohair_srv_srcmain + mohair_srv_srclist)
262
- ,dependencies : dep_service
263
- ,install : false
283
+ ,dependencies : dep_service
284
+ ,include_directories : arrow_incdir
285
+ ,install : false
264
286
)
265
287
266
288
@@ -279,8 +301,9 @@ if dep_faodel.found()
279
301
280
302
bin_srv_faodel = executable (' faodel-service'
281
303
,(faodel_srv_srclist + mohair_srv_srclist)
282
- ,dependencies : dep_service
283
- ,install : false
304
+ ,dependencies : dep_service
305
+ ,include_directories : arrow_incdir
306
+ ,install : false
284
307
)
285
308
286
309
endif
0 commit comments