@@ -283,6 +283,8 @@ def build(
283
283
quiet = False ,
284
284
build_dir = None ,
285
285
prefix = None ,
286
+ meson_compile_args = tuple (),
287
+ meson_install_args = tuple (),
286
288
):
287
289
"""🔧 Build package with Meson/ninja
288
290
@@ -328,12 +330,12 @@ def build(
328
330
)
329
331
return
330
332
331
- meson_args = list (meson_args )
333
+ meson_args_setup = list (meson_args )
332
334
333
335
if gcov :
334
- meson_args = meson_args + ["-Db_coverage=true" ]
336
+ meson_args_setup = meson_args_setup + ["-Db_coverage=true" ]
335
337
336
- setup_cmd = _meson_cli () + ["setup" , build_dir , f "--prefix={ prefix } " ] + meson_args
338
+ setup_cmd = _meson_cli () + ["setup" , abs_build_dir , "--prefix={}" . format ( abs_install_dir ) ] + meson_args_setup
337
339
338
340
if clean :
339
341
print (f"Removing `{ build_dir } `" )
@@ -360,15 +362,18 @@ def build(
360
362
361
363
# Any other conditions that warrant a reconfigure?
362
364
365
+ meson_compile_args = list (meson_compile_args )
363
366
compile_flags = ["-v" ] if verbose else []
364
367
if jobs :
365
368
compile_flags += ["-j" , str (jobs )]
366
369
367
370
p = _run (
368
- _meson_cli () + ["compile" ] + compile_flags + ["-C" , build_dir ],
371
+ _meson_cli () + ["compile" ] + compile_flags + ["-C" , build_dir ] + meson_compile_args ,
369
372
sys_exit = True ,
370
373
output = not quiet ,
371
374
)
375
+
376
+ meson_install_args = list (meson_install_args )
372
377
p = _run (
373
378
_meson_cli ()
374
379
+ [
@@ -380,7 +385,7 @@ def build(
380
385
install_dir
381
386
if os .path .isabs (install_dir )
382
387
else os .path .relpath (abs_install_dir , abs_build_dir ),
383
- ],
388
+ ] + meson_install_args ,
384
389
output = (not quiet ) and verbose ,
385
390
)
386
391
0 commit comments