From 198a351c7c5ad5fd13168a2b4aede4c65537d1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 2 Nov 2020 19:03:58 +0100 Subject: [PATCH] meson: particles: data-driven foreach loop, and link map against dynlist --- particles/meson.build | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/particles/meson.build b/particles/meson.build index f571f12..6b31081 100644 --- a/particles/meson.build +++ b/particles/meson.build @@ -1,21 +1,5 @@ particle_sdk = declare_dependency(dependencies: [pixman, tllist, fcft]) -particles = [] -foreach particle : ['empty', 'list', 'map', 'progress-bar', 'ramp', 'string'] - if plugs_as_libs - shared_module('@0@'.format(particle), '@0@.c'.format(particle), - dependencies: particle_sdk, - name_prefix: 'particle_', - install: true, - install_dir: join_paths(get_option('libdir'), 'yambar')) - else - particles += [declare_dependency( - sources: '@0@.c'.format(particle), - dependencies: particle_sdk, - compile_args: '-DHAVE_PLUGIN_@0@'.format(particle.underscorify()))] - endif -endforeach - dynlist_lib = build_target( 'dynlist', 'dynlist.c', 'dynlist.h', dependencies: particle_sdk, target_type: plugs_as_libs ? 'shared_library' : 'static_library', @@ -25,3 +9,29 @@ dynlist_lib = build_target( ) dynlist = declare_dependency(link_with: dynlist_lib) + +# Particle name -> dep-list +deps = { + 'empty': [], + 'list': [], + 'map': [dynlist], + 'progress-bar': [], + 'ramp': [], + 'string': [], +} + +particles = [] +foreach particle, particle_deps : deps + if plugs_as_libs + shared_module('@0@'.format(particle), '@0@.c'.format(particle), + dependencies: [particle_sdk] + particle_deps, + name_prefix: 'particle_', + install: true, + install_dir: join_paths(get_option('libdir'), 'yambar')) + else + particles += [declare_dependency( + sources: '@0@.c'.format(particle), + dependencies: [particle_sdk] + particle_deps, + compile_args: '-DHAVE_PLUGIN_@0@'.format(particle.underscorify()))] + endif +endforeach