Merge pull request #61 from ignatenkobrain/wip/gnome

modules/gnome: auto-set gobject-introspection directories and install gir
pull/72/head
jpakkane 10 years ago
commit cf3995d717
  1. 16
      modules/gnome.py
  2. 5
      modules/rpm.py
  3. 3
      test cases/frameworks/7 gnome/gir/meson.build
  4. 3
      test cases/frameworks/7 gnome/installed_files.txt

@ -63,14 +63,18 @@ class GnomeModule:
scankwargs = {'output' : girfile,
'input' : libsources,
'command' : scan_command}
scan_target = build.CustomTarget(scan_name, state.subdir, scankwargs)
if kwargs.get('install'):
scankwargs['install'] = kwargs['install']
scankwargs['install_dir'] = os.path.join(state.environment.get_datadir(), 'gir-1.0')
scan_target = GirTarget(scan_name, state.subdir, scankwargs)
typelib_name = girtarget.name + '-typelib'
typelib_output = '%s-%s.typelib' % (ns, nsversion)
typelib_cmd = ['g-ir-compiler', scan_target, '--output', '@OUTPUT@']
kwargs['output'] = typelib_output
kwargs['command'] = typelib_cmd
typelib_target = build.CustomTarget(typelib_name, state.subdir, kwargs)
kwargs['install_dir'] = os.path.join(state.environment.get_libdir(), 'girepository-1.0')
typelib_target = TypelibTarget(typelib_name, state.subdir, kwargs)
return [scan_target, typelib_target]
def compile_schemas(self, state, args, kwargs):
@ -111,3 +115,11 @@ def initialize():
mlog.log('Warning, glib compiled dependencies will not work until this upstream issue is fixed:',
mlog.bold('https://bugzilla.gnome.org/show_bug.cgi?id=745754'))
return GnomeModule()
class GirTarget(build.CustomTarget):
def __init__(self, name, subdir, kwargs):
super().__init__(name, subdir, kwargs)
class TypelibTarget(build.CustomTarget):
def __init__(self, name, subdir, kwargs):
super().__init__(name, subdir, kwargs)

@ -19,6 +19,7 @@ import build
import compilers
import datetime
import mlog
import modules.gnome
import os
class RPMModule:
@ -62,6 +63,10 @@ class RPMModule:
to_delete.add('%%{buildroot}%%{_libdir}/%s' % target.get_filename())
mlog.log('Warning, removing', mlog.bold(target.get_filename()),
'from package because packaging static libs not recommended')
elif isinstance(target, modules.gnome.GirTarget) and target.should_install():
files_devel.add('%%{_datadir}/gir-1.0/%s' % target.get_filename()[0])
elif isinstance(target, modules.gnome.TypelibTarget) and target.should_install():
files.add('%%{_libdir}/girepository-1.0/%s' % target.get_filename()[0])
for header in state.headers:
if len(header.get_install_subdir()) > 0:
files_devel.add('%%{_includedir}/%s/' % header.get_install_subdir())

@ -8,8 +8,7 @@ gnome.generate_gir(girexe,
sources : libsources,
nsversion : '1.0',
namespace : 'Meson',
install : true,
install_dir : 'typelibdir',
install : true
)
test('gobject introspection', girexe)

@ -1,2 +1,3 @@
usr/typelibdir/Meson-1.0.typelib
usr/lib/girepository-1.0/Meson-1.0.typelib
usr/share/gir-1.0/Meson-1.0.gir
usr/share/glib-2.0/schemas/com.github.meson.gschema.xml

Loading…
Cancel
Save