On 07/03/19 11:48, Peter Maydell wrote: > On Thu, 7 Mar 2019 at 10:40, Paolo Bonzini <pbonz...@redhat.com> wrote: >> --- >> # This would be ui/meson.build: >> >> vnc_sources = source_set.source_set() >> vnc_sources.add([], files( >> 'vnc.c', >> 'vnc-auth-vencrypt.c', >> 'vnc-enc-hextile.c', >> 'vnc-enc-tight.c', >> 'vnc-enc-zlib.c', >> 'vnc-enc-zrle.c', >> 'vnc-jobs.c', >> 'vnc-palette.c', >> 'vnc-ws.c')) >> vnc_sources.add('CONFIG_VNC_SASL', files( >> 'vnc-auth-sasl.c')) > > All this foo_sources.add() seems pretty clunky syntax, > which doesn't seem like a good sign for what is > pretty much the simplest possible case for the build system.
ui/Makefile.objs is actually one of the most complex cases. The quotes and commas are indeed somewhat clunky, but I don't think the above compares particularly negatively to vnc-obj-y = vnc.o vnc-obj-y += vnc-auth-vencrypt.o vnc-obj-y += vnc-enc-hextile.o vnc-obj-y += vnc-enc-tight.o vnc-obj-y += vnc-enc-zlib.o vnc-obj-y += vnc-enc-zrle.o vnc-obj-y += vnc-jobs.o vnc-obj-y += vnc-palette.o vnc-obj-y += vnc-ws.o vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o The simplest possible case is common-obj-$(CONFIG_IPACK) += ipack.o tpci200.o => common_obj.add('CONFIG_IPACK', files('ipack.c', 'tpci200.c')) or qemu-keymap$(EXESUF): qemu-keymap.o ui/input-keymap.o $(COMMON_LDADDS) qemu-keymap$(EXESUF): LIBS += $(XKBCOMMON_LIBS) qemu-keymap$(EXESUF): QEMU_CFLAGS += $(XKBCOMMON_CFLAGS) => executable('qemu-keymap', ['qemu-keymap.c', 'ui/input-keymap.c'], dependencies: [common_deps, xkbcommon]) (where the latter provides "make install" functionality without having to touch configure). Paolo