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
|
||||
* `prefix`: the prefix to use for symbols
|
||||
* `skip_source`: if true, skip source location comments
|
||||
* `sources` []str *required*: List of string sources to consume
|
||||
* `sources`: the list of sources to use as inputs
|
||||
* `sources` [](str | File) *required*: the list of sources to use as inputs
|
||||
* `stdinc`: if true, include the standard marshallers from glib
|
||||
* `valist_marshallers`: if true, generate va_list marshallers
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ if T.TYPE_CHECKING:
|
|||
nostdinc: bool
|
||||
prefix: T.Optional[str]
|
||||
skip_source: bool
|
||||
sources: T.List[str]
|
||||
sources: T.List[FileOrString]
|
||||
stdinc: bool
|
||||
valist_marshallers: bool
|
||||
|
||||
|
@ -1813,7 +1813,7 @@ class GnomeModule(ExtensionModule):
|
|||
KwargInfo('nostdinc', bool, default=False),
|
||||
KwargInfo('prefix', (str, NoneType)),
|
||||
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('valist_marshallers', bool, default=False),
|
||||
)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<glib-object.h>
|
||||
#include"marshaller.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <glib-object.h>
|
||||
#include @MARSHALLER_HEADER@
|
||||
|
||||
static int singleton = 42;
|
||||
|
|
@ -1,12 +1,51 @@
|
|||
marshallers = gnome.genmarshal('marshaller',
|
||||
sources : 'marshaller.list',
|
||||
install_header : true,
|
||||
install_dir : get_option('includedir'),
|
||||
extra_args : ['-UG_ENABLE_DEBUG', '--prototypes'])
|
||||
m_list = configure_file(input: 'marshaller.list',
|
||||
output: 'm.list',
|
||||
copy: true)
|
||||
|
||||
marshaller_c = marshallers[0]
|
||||
marshaller_h = marshallers[1]
|
||||
idx = 0
|
||||
mlists = ['marshaller.list', files('marshaller.list'), m_list]
|
||||
|
||||
genmarshalexe = executable('genmarshalprog', 'main.c', marshaller_c, marshaller_h,
|
||||
dependencies : gobj)
|
||||
test('genmarshal test', genmarshalexe)
|
||||
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]
|
||||
|
||||
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/enums3.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": "file", "platform": "cygwin", "file": "usr/lib/libgir_lib.dll.a"},
|
||||
{"type": "expr", "file": "usr/lib/?libgir_lib2.so"},
|
||||
|
|
Loading…
Reference in New Issue