mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
b82d28141d
Without this when compiling GLib with address sanitizer enabled, we'd end up failing with this error: ==375535==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD. Now, given that addressing the fix implies doing more radical changes, it's just fine here to ignore ASAN to work on tools we use for building gir files.
160 lines
3.5 KiB
Meson
160 lines
3.5 KiB
Meson
|
|
gi_identifier_prefix = 'G'
|
|
gi_symbol_prefix = 'g'
|
|
|
|
gi_gen_shared_sources = [
|
|
# Required to compile gdump
|
|
gmodule_visibility_h,
|
|
]
|
|
|
|
gi_gen_env_variables = environment()
|
|
|
|
if get_option('b_sanitize') != ''
|
|
gi_gen_env_variables.append(
|
|
'ASAN_OPTIONS', 'verify_asan_link_order=0', separator: ',')
|
|
endif
|
|
|
|
# GLib
|
|
glib_gir = gnome.generate_gir(libglib,
|
|
sources: [
|
|
gi_gen_shared_sources,
|
|
glibconfig_h,
|
|
gversionmacros_h,
|
|
glib_visibility_h,
|
|
glib_headers,
|
|
glib_deprecated_headers,
|
|
glib_sub_headers,
|
|
glib_enumtypes_h,
|
|
glib_types_h,
|
|
glib_deprecated_sources,
|
|
glib_sources,
|
|
],
|
|
namespace: 'GLib',
|
|
nsversion: '2.0',
|
|
identifier_prefix: gi_identifier_prefix,
|
|
symbol_prefix: gi_symbol_prefix,
|
|
export_packages: 'glib-2.0',
|
|
header: 'glib.h',
|
|
install: true,
|
|
dependencies: [
|
|
libgobject_dep,
|
|
],
|
|
env: gi_gen_env_variables,
|
|
extra_args: gir_args + [
|
|
'-DGLIB_COMPILATION',
|
|
'-DGETTEXT_PACKAGE="dummy"',
|
|
'--symbol-prefix=glib',
|
|
'--library-path=' + meson.current_build_dir(),
|
|
'--library=gobject-2.0',
|
|
],
|
|
)
|
|
|
|
# GObject
|
|
gobject_gir = gnome.generate_gir(libgobject,
|
|
sources: [
|
|
gi_gen_shared_sources,
|
|
gobject_visibility_h,
|
|
gobject_install_headers,
|
|
gobject_sources,
|
|
],
|
|
namespace: 'GObject',
|
|
nsversion: '2.0',
|
|
identifier_prefix: gi_identifier_prefix,
|
|
symbol_prefix: gi_symbol_prefix,
|
|
export_packages: 'gobject-2.0',
|
|
header: 'glib-object.h',
|
|
includes: [ glib_gir[0] ],
|
|
install: true,
|
|
env: gi_gen_env_variables,
|
|
extra_args: gir_args + [
|
|
'-DGOBJECT_COMPILATION',
|
|
'--symbol-prefix=gobject',
|
|
],
|
|
)
|
|
|
|
# GModule
|
|
gmodule_gir = gnome.generate_gir(libgmodule,
|
|
sources: [
|
|
gi_gen_shared_sources,
|
|
gmoduleconf_h,
|
|
gmodule_h,
|
|
gmodule_c,
|
|
gmodule_deprecated_c,
|
|
gmodule_visibility_h,
|
|
],
|
|
namespace: 'GModule',
|
|
nsversion: '2.0',
|
|
identifier_prefix: gi_identifier_prefix,
|
|
symbol_prefix: gi_symbol_prefix,
|
|
export_packages: 'gmodule-2.0',
|
|
header: 'gmodule.h',
|
|
includes: [ glib_gir[0] ],
|
|
install: true,
|
|
dependencies: [
|
|
libglib_dep,
|
|
],
|
|
env: gi_gen_env_variables,
|
|
extra_args: gir_args + [
|
|
'-DGMODULE_COMPILATION',
|
|
'-DGETTEXT_PACKAGE="dummy"',
|
|
'--symbol-prefix=gmodule',
|
|
],
|
|
)
|
|
|
|
# Gio
|
|
gio_gir_sources = [
|
|
gi_gen_shared_sources,
|
|
gio_visibility_h,
|
|
gioenumtypes_h,
|
|
gnetworking_h,
|
|
gio_headers,
|
|
gio_base_sources,
|
|
application_sources,
|
|
gdbus_sources,
|
|
appinfo_sources,
|
|
contenttype_sources,
|
|
unix_sources,
|
|
win32_sources,
|
|
settings_sources,
|
|
]
|
|
gio_gir_packages = [ 'gio-2.0' ]
|
|
gio_gir_args = [
|
|
'-DGIO_COMPILATION',
|
|
'-DG_SETTINGS_ENABLE_BACKEND',
|
|
'--symbol-prefix=gio',
|
|
]
|
|
if host_system == 'windows'
|
|
gio_gir_sources += gio_win32_include_headers
|
|
foreach h: gio_win32_include_headers
|
|
gio_gir_args += '--c-include=@0@'.format(h)
|
|
endforeach
|
|
gio_gir_packages += 'gio-win32-2.0'
|
|
gio_gir_args += '--pkg=gio-win32-2.0'
|
|
else
|
|
gio_gir_sources += gio_unix_include_headers
|
|
foreach h: gio_unix_include_headers
|
|
gio_gir_args += '--c-include=@0@'.format(h)
|
|
endforeach
|
|
gio_gir_packages += 'gio-unix-2.0'
|
|
gio_gir_args += '--pkg=gio-unix-2.0'
|
|
endif
|
|
|
|
gio_gir = gnome.generate_gir(libgio,
|
|
sources: gio_gir_sources,
|
|
namespace: 'Gio',
|
|
nsversion: '2.0',
|
|
identifier_prefix: gi_identifier_prefix,
|
|
symbol_prefix: gi_symbol_prefix,
|
|
export_packages: gio_gir_packages,
|
|
header: 'gio/gio.h',
|
|
includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ],
|
|
install: true,
|
|
dependencies: [
|
|
libglib_dep,
|
|
libgobject_dep,
|
|
libgmodule_dep,
|
|
],
|
|
env: gi_gen_env_variables,
|
|
extra_args: gir_args + gio_gir_args,
|
|
)
|