qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] converting build system to Meson?


From: Paolo Bonzini
Subject: Re: [Qemu-devel] converting build system to Meson?
Date: Thu, 7 Mar 2019 12:06:11 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0

On 07/03/19 11:48, Peter Maydell wrote:
> On Thu, 7 Mar 2019 at 10:40, Paolo Bonzini <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]