gnome.genmarshal: restore the ability to pass sources as Files objects
It used to support: - a single string - an array of anything And as long as CustomTarget supported it too, everything worked fine. So, a `files('foo')` worked but a `files('foo')[0]` did not, which is silly... and it's not exactly terrible to use files() here, the input is literally a list of source files. Fixes building gnome-terminal Fixes #9827 Test updated by Nirbheek Chauhan <nirbheek@centricular.com>
This commit is contained in:
parent
f3a8e5d3b2
commit
96d0005744
|
@ -133,8 +133,7 @@ argument is the basename of the output files.
|
||||||
* `nostdinc`: if true, don't include the standard marshallers from glib
|
* `nostdinc`: if true, don't include the standard marshallers from glib
|
||||||
* `prefix`: the prefix to use for symbols
|
* `prefix`: the prefix to use for symbols
|
||||||
* `skip_source`: if true, skip source location comments
|
* `skip_source`: if true, skip source location comments
|
||||||
* `sources` []str *required*: List of string sources to consume
|
* `sources` [](str | File) *required*: the list of sources to use as inputs
|
||||||
* `sources`: the list of sources to use as inputs
|
|
||||||
* `stdinc`: if true, include the standard marshallers from glib
|
* `stdinc`: if true, include the standard marshallers from glib
|
||||||
* `valist_marshallers`: if true, generate va_list marshallers
|
* `valist_marshallers`: if true, generate va_list marshallers
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,7 @@ if T.TYPE_CHECKING:
|
||||||
nostdinc: bool
|
nostdinc: bool
|
||||||
prefix: T.Optional[str]
|
prefix: T.Optional[str]
|
||||||
skip_source: bool
|
skip_source: bool
|
||||||
sources: T.List[str]
|
sources: T.List[FileOrString]
|
||||||
stdinc: bool
|
stdinc: bool
|
||||||
valist_marshallers: bool
|
valist_marshallers: bool
|
||||||
|
|
||||||
|
@ -1813,7 +1813,7 @@ class GnomeModule(ExtensionModule):
|
||||||
KwargInfo('nostdinc', bool, default=False),
|
KwargInfo('nostdinc', bool, default=False),
|
||||||
KwargInfo('prefix', (str, NoneType)),
|
KwargInfo('prefix', (str, NoneType)),
|
||||||
KwargInfo('skip_source', bool, default=False),
|
KwargInfo('skip_source', bool, default=False),
|
||||||
KwargInfo('sources', ContainerTypeInfo(list, str, allow_empty=False), listify=True, required=True),
|
KwargInfo('sources', ContainerTypeInfo(list, (str, mesonlib.File), allow_empty=False), listify=True, required=True),
|
||||||
KwargInfo('stdinc', bool, default=False),
|
KwargInfo('stdinc', bool, default=False),
|
||||||
KwargInfo('valist_marshallers', bool, default=False),
|
KwargInfo('valist_marshallers', bool, default=False),
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include<stdio.h>
|
#include <stdio.h>
|
||||||
#include<stdlib.h>
|
#include <stdlib.h>
|
||||||
#include<glib-object.h>
|
#include <glib-object.h>
|
||||||
#include"marshaller.h"
|
#include @MARSHALLER_HEADER@
|
||||||
|
|
||||||
static int singleton = 42;
|
static int singleton = 42;
|
||||||
|
|
|
@ -1,12 +1,51 @@
|
||||||
marshallers = gnome.genmarshal('marshaller',
|
m_list = configure_file(input: 'marshaller.list',
|
||||||
sources : 'marshaller.list',
|
output: 'm.list',
|
||||||
install_header : true,
|
copy: true)
|
||||||
install_dir : get_option('includedir'),
|
|
||||||
extra_args : ['-UG_ENABLE_DEBUG', '--prototypes'])
|
|
||||||
|
|
||||||
marshaller_c = marshallers[0]
|
idx = 0
|
||||||
marshaller_h = marshallers[1]
|
mlists = ['marshaller.list', files('marshaller.list'), m_list]
|
||||||
|
|
||||||
genmarshalexe = executable('genmarshalprog', 'main.c', marshaller_c, marshaller_h,
|
foreach mlist : mlists
|
||||||
dependencies : gobj)
|
marshallers = gnome.genmarshal('marshaller-@0@'.format(idx),
|
||||||
test('genmarshal test', genmarshalexe)
|
sources : mlist,
|
||||||
|
install_header : true,
|
||||||
|
install_dir : get_option('includedir') / 'subdir-@0@'.format(idx),
|
||||||
|
extra_args : ['-UG_ENABLE_DEBUG', '--prototypes'])
|
||||||
|
|
||||||
|
marshaller_c = marshallers[0]
|
||||||
|
marshaller_h = marshallers[1]
|
||||||
|
|
||||||
|
cdata = configuration_data()
|
||||||
|
cdata.set_quoted('MARSHALLER_HEADER', 'marshaller-@0@.h'.format(idx))
|
||||||
|
|
||||||
|
main_c = configure_file(input: 'main.c.in',
|
||||||
|
output: 'main-@0@.c'.format(idx),
|
||||||
|
configuration: cdata)
|
||||||
|
|
||||||
|
genmarshalexe = executable('genmarshalprog-@0@'.format(idx),
|
||||||
|
main_c, marshaller_c, marshaller_h,
|
||||||
|
dependencies : gobj)
|
||||||
|
test('genmarshal test @0@'.format(idx), genmarshalexe)
|
||||||
|
idx += 1
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
foreach mlist : mlists
|
||||||
|
marshallers = gnome.genmarshal('marshaller-@0@'.format(idx),
|
||||||
|
sources : [mlist],
|
||||||
|
install_header : true,
|
||||||
|
install_dir : get_option('includedir') / 'subdir-@0@'.format(idx),
|
||||||
|
extra_args : ['-UG_ENABLE_DEBUG', '--prototypes'])
|
||||||
|
|
||||||
|
marshaller_c = marshallers[0]
|
||||||
|
marshaller_h = marshallers[1]
|
||||||
|
|
||||||
|
main_c = configure_file(input: 'main.c.in',
|
||||||
|
output: 'main-@0@.c'.format(idx),
|
||||||
|
configuration: cdata)
|
||||||
|
|
||||||
|
genmarshalexe = executable('genmarshalprog-@0@'.format(idx),
|
||||||
|
main_c, marshaller_c, marshaller_h,
|
||||||
|
dependencies : gobj)
|
||||||
|
test('genmarshal test @0@'.format(idx), genmarshalexe)
|
||||||
|
idx += 1
|
||||||
|
endforeach
|
||||||
|
|
|
@ -4,7 +4,12 @@
|
||||||
{"type": "file", "file": "usr/include/enums2.h"},
|
{"type": "file", "file": "usr/include/enums2.h"},
|
||||||
{"type": "file", "file": "usr/include/enums3.h"},
|
{"type": "file", "file": "usr/include/enums3.h"},
|
||||||
{"type": "file", "file": "usr/include/enums5.h"},
|
{"type": "file", "file": "usr/include/enums5.h"},
|
||||||
{"type": "file", "file": "usr/include/marshaller.h"},
|
{"type": "file", "file": "usr/include/subdir-0/marshaller-0.h"},
|
||||||
|
{"type": "file", "file": "usr/include/subdir-1/marshaller-1.h"},
|
||||||
|
{"type": "file", "file": "usr/include/subdir-2/marshaller-2.h"},
|
||||||
|
{"type": "file", "file": "usr/include/subdir-3/marshaller-3.h"},
|
||||||
|
{"type": "file", "file": "usr/include/subdir-4/marshaller-4.h"},
|
||||||
|
{"type": "file", "file": "usr/include/subdir-5/marshaller-5.h"},
|
||||||
{"type": "expr", "file": "usr/lib/?libgir_lib.so"},
|
{"type": "expr", "file": "usr/lib/?libgir_lib.so"},
|
||||||
{"type": "file", "platform": "cygwin", "file": "usr/lib/libgir_lib.dll.a"},
|
{"type": "file", "platform": "cygwin", "file": "usr/lib/libgir_lib.dll.a"},
|
||||||
{"type": "expr", "file": "usr/lib/?libgir_lib2.so"},
|
{"type": "expr", "file": "usr/lib/?libgir_lib2.so"},
|
||||||
|
|
Loading…
Reference in New Issue