aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules/gnome.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-03 22:59:27 +0200
committerGitHub <noreply@github.com>2016-12-03 22:59:27 +0200
commit8e8f75005db38daf2e54bc76c4542b74f2f7cefe (patch)
treef2c17763fe18837d70e7104d8776534d0c54814c /mesonbuild/modules/gnome.py
parent10e2b9bca0016c5af87ec1647f29b5916304546b (diff)
parent9a6db2eb2f1acf3111371516c56eae0e7a69de13 (diff)
downloadmeson-8e8f75005db38daf2e54bc76c4542b74f2f7cefe.zip
meson-8e8f75005db38daf2e54bc76c4542b74f2f7cefe.tar.gz
meson-8e8f75005db38daf2e54bc76c4542b74f2f7cefe.tar.bz2
Merge pull request #1076 from mesonbuild/tingping/gresource-export
gnome.compile_resources(): Add export and install_header kwargs
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r--mesonbuild/modules/gnome.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 38b3319..d7b05eb 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -111,12 +111,33 @@ can not be used with the current version of glib-compiled-resources, due to
if 'c_name' in kwargs:
cmd += ['--c-name', kwargs.pop('c_name')]
+ export = kwargs.pop('export', False)
+ if not export:
+ cmd += ['--internal']
+
cmd += ['--generate', '--target', '@OUTPUT@']
cmd += mesonlib.stringlistify(kwargs.pop('extra_args', []))
+ gresource = kwargs.pop('gresource_bundle', False)
+ if gresource:
+ output = args[0] + '.gresource'
+ name = args[0] + '_gresource'
+ else:
+ output = args[0] + '.c'
+ name = args[0] + '_c'
+
+ if kwargs.get('install', False) and not gresource:
+ raise MesonException('The install kwarg only applies to gresource bundles, see install_header')
+
+ install_header = kwargs.pop('install_header', False)
+ if install_header and gresource:
+ raise MesonException('The install_header kwarg does not apply to gresource bundles')
+ if install_header and not export:
+ raise MesonException('GResource header is installed yet export is not enabled')
+
kwargs['input'] = args[1]
- kwargs['output'] = args[0] + '.c'
+ kwargs['output'] = output
kwargs['depends'] = depends
if not mesonlib.version_compare(glib_version, gresource_dep_needed_version):
# This will eventually go out of sync if dependencies are added
@@ -126,7 +147,10 @@ can not be used with the current version of glib-compiled-resources, due to
depfile = kwargs['output'] + '.d'
kwargs['depfile'] = depfile
kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@']
- target_c = build.CustomTarget(args[0] + '_c', state.subdir, kwargs)
+ target_c = build.CustomTarget(name, state.subdir, kwargs)
+
+ if gresource: # Only one target for .gresource files
+ return [target_c]
h_kwargs = {
'command': cmd,
@@ -135,6 +159,10 @@ can not be used with the current version of glib-compiled-resources, due to
# The header doesn't actually care about the files yet it errors if missing
'depends': depends
}
+ if install_header:
+ h_kwargs['install'] = install_header
+ h_kwargs['install_dir'] = kwargs.get('install_dir',
+ state.environment.coredata.get_builtin_option('includedir'))
target_h = build.CustomTarget(args[0] + '_h', state.subdir, h_kwargs)
return [target_c, target_h]