mirror of
https://github.com/linux-msm/debugcc.git
synced 2026-02-25 13:12:32 -08:00
meson: Use configuration_data() instead of piping variables through echo
Having a template file with replacement macros is a bit cleaner than encoding the setup of the file in `meson.build` and piping that through `echo` with caputred variables. Unfortunately there appears to be no support for repetition, to e.g. expand a list of platform names into the various uses (array with comma- separation, or individual `extern struct` declarations, forcing us to have some form of string expansion within `meson.build`).
This commit is contained in:
17
meson.build
17
meson.build
@@ -33,7 +33,7 @@ debugcc_srcs = [
|
||||
]
|
||||
|
||||
platform_defs = []
|
||||
platform_array = ['const struct debugcc_platform *platforms[] = {']
|
||||
platform_array = []
|
||||
|
||||
foreach p: platforms
|
||||
debugcc_srcs += p + '.c'
|
||||
@@ -45,19 +45,14 @@ foreach p: platforms
|
||||
pointing_to: 'debugcc')
|
||||
endforeach
|
||||
|
||||
platform_array += '\tNULL,'
|
||||
platform_array += '};'
|
||||
platforms = configuration_data()
|
||||
platforms.set('PLATFORM_DEFS', '\n'.join(platform_defs))
|
||||
platforms.set('PLATFORM_ARRAY', '\n'.join(platform_array))
|
||||
|
||||
debugcc_srcs += configure_file(
|
||||
input: 'platforms.c.in',
|
||||
output: 'platforms.c',
|
||||
capture: true,
|
||||
command: ['echo',
|
||||
'/* Autogenerated file, do not edit */\n\n' +
|
||||
'#include <stdlib.h>\n\n' +
|
||||
'\n'.join(platform_defs) +
|
||||
'\n\n' +
|
||||
'\n'.join(platform_array)
|
||||
])
|
||||
configuration: platforms)
|
||||
|
||||
executable('debugcc',
|
||||
debugcc_srcs,
|
||||
|
||||
9
platforms.c.in
Normal file
9
platforms.c.in
Normal file
@@ -0,0 +1,9 @@
|
||||
/* Autogenerated file, do not edit */
|
||||
#include <stdlib.h>
|
||||
|
||||
@PLATFORM_DEFS@
|
||||
|
||||
const struct debugcc_platform *platforms[] = {
|
||||
@PLATFORM_ARRAY@
|
||||
NULL,
|
||||
};
|
||||
Reference in New Issue
Block a user