diff --git a/meson.build b/meson.build index 1e87672..4e2b921 100644 --- a/meson.build +++ b/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 \n\n' + - '\n'.join(platform_defs) + - '\n\n' + - '\n'.join(platform_array) - ]) + configuration: platforms) executable('debugcc', debugcc_srcs, diff --git a/platforms.c.in b/platforms.c.in new file mode 100644 index 0000000..bf8b9fc --- /dev/null +++ b/platforms.c.in @@ -0,0 +1,9 @@ +/* Autogenerated file, do not edit */ +#include + +@PLATFORM_DEFS@ + +const struct debugcc_platform *platforms[] = { +@PLATFORM_ARRAY@ + NULL, +};