meson: Fix introspection generation on Linux
This commit is contained in:
parent
a8ffb42739
commit
20c29fd8c0
@ -39,7 +39,7 @@ gdk_sources = files(
|
|||||||
'gdkmonitor.c'
|
'gdkmonitor.c'
|
||||||
)
|
)
|
||||||
|
|
||||||
gdk_public_headers = files(
|
gdk_gir_public_headers = files(
|
||||||
'gdk.h',
|
'gdk.h',
|
||||||
'gdk-autocleanup.h',
|
'gdk-autocleanup.h',
|
||||||
'gdkapplaunchcontext.h',
|
'gdkapplaunchcontext.h',
|
||||||
@ -58,7 +58,6 @@ gdk_public_headers = files(
|
|||||||
'gdkglcontext.h',
|
'gdkglcontext.h',
|
||||||
'gdkkeys.h',
|
'gdkkeys.h',
|
||||||
'gdkkeysyms.h',
|
'gdkkeysyms.h',
|
||||||
'gdkkeysyms-compat.h',
|
|
||||||
'gdkmain.h',
|
'gdkmain.h',
|
||||||
'gdkmonitor.h',
|
'gdkmonitor.h',
|
||||||
'gdkpango.h',
|
'gdkpango.h',
|
||||||
@ -77,6 +76,8 @@ gdk_public_headers = files(
|
|||||||
'gdkvisual.h',
|
'gdkvisual.h',
|
||||||
'gdkwindow.h',
|
'gdkwindow.h',
|
||||||
)
|
)
|
||||||
|
gdk_nogir_public_headers = [files('gdkkeysyms-compat.h')]
|
||||||
|
gdk_public_headers = gdk_gir_public_headers + gdk_nogir_public_headers
|
||||||
install_headers(gdk_public_headers, subdir : 'gtk-3.0/gdk')
|
install_headers(gdk_public_headers, subdir : 'gtk-3.0/gdk')
|
||||||
|
|
||||||
deprecated_h_sources = files('deprecated/gdkcolor.h')
|
deprecated_h_sources = files('deprecated/gdkcolor.h')
|
||||||
@ -142,8 +143,6 @@ gdkresources = gnome.compile_resources('gdkresources',
|
|||||||
extra_args: '--manual-register'
|
extra_args: '--manual-register'
|
||||||
)
|
)
|
||||||
|
|
||||||
gdk_headers = gdk_public_headers
|
|
||||||
|
|
||||||
gdk_enums = gnome.mkenums('gdkenumtypes',
|
gdk_enums = gnome.mkenums('gdkenumtypes',
|
||||||
sources: gdk_public_headers,
|
sources: gdk_public_headers,
|
||||||
c_template : 'gdkenumtypes.c.template',
|
c_template : 'gdkenumtypes.c.template',
|
||||||
@ -272,8 +271,85 @@ libgdk = shared_library('gdk-3',
|
|||||||
darwin_versions : gtk_osxversions,
|
darwin_versions : gtk_osxversions,
|
||||||
install: true)
|
install: true)
|
||||||
|
|
||||||
|
gdk_dep_sources = [gdkconfig, gdkenum_h]
|
||||||
|
# Introspection
|
||||||
|
if build_gir
|
||||||
|
gir_args = ['--quiet']
|
||||||
|
|
||||||
|
# We may build some of the dependencies as sub-projects; this means
|
||||||
|
# that we need to depend on the built introspection data, instead of
|
||||||
|
# the installed one
|
||||||
|
gdk_gir_inc = [ 'cairo-1.0', 'Gio-2.0', ]
|
||||||
|
|
||||||
|
if pixbuf_dep.type_name() == 'internal'
|
||||||
|
gdk_gir_inc += subproject('gdk-pixbuf').get_variable('gdkpixbuf_gir').get(0)
|
||||||
|
else
|
||||||
|
gdk_gir_inc += 'GdkPixbuf-2.0'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if pango_dep.type_name() == 'internal'
|
||||||
|
gdk_gir_inc += subproject('pango').get_variable('pango_gir').get(0)
|
||||||
|
else
|
||||||
|
gdk_gir_inc += 'Pango-1.0'
|
||||||
|
endif
|
||||||
|
|
||||||
|
gdk_gir_sources = gdk_gir_public_headers + deprecated_h_sources
|
||||||
|
gdk_gir_sources += gdk_sources + gdk_enums + [gdkconfig]
|
||||||
|
gdk_gir = gnome.generate_gir(libgdk,
|
||||||
|
sources: gdk_gir_sources,
|
||||||
|
namespace: 'Gdk',
|
||||||
|
nsversion: gtk_api_version,
|
||||||
|
identifier_prefix: 'Gdk',
|
||||||
|
symbol_prefix: 'gdk',
|
||||||
|
export_packages: 'gdk-3.0',
|
||||||
|
includes: gdk_gir_inc,
|
||||||
|
header: 'gdk/gdk.h',
|
||||||
|
install: true,
|
||||||
|
extra_args: gir_args + [
|
||||||
|
'-DGDK_COMPILATION',
|
||||||
|
])
|
||||||
|
gdk_gir_dep = declare_dependency(sources: gdk_gir)
|
||||||
|
gdk_dep_sources += gdk_gir
|
||||||
|
|
||||||
|
if x11_enabled
|
||||||
|
gdk_x11_gir = gnome.generate_gir(libgdk,
|
||||||
|
sources: gdk_x11_public_headers + gdk_x11_sources,
|
||||||
|
namespace: 'GdkX11',
|
||||||
|
nsversion: gtk_api_version,
|
||||||
|
identifier_prefix: 'Gdk',
|
||||||
|
symbol_prefix: 'gdk',
|
||||||
|
export_packages: 'gdk-x11-3.0',
|
||||||
|
includes: gdk_gir_inc + [ gdk_gir[0], 'xlib-2.0', ],
|
||||||
|
install: true,
|
||||||
|
dependencies: gdk_gir_dep,
|
||||||
|
header: 'gdk/gdkx.h',
|
||||||
|
extra_args: gir_args + [
|
||||||
|
'-DGDK_COMPILATION',
|
||||||
|
])
|
||||||
|
gdk_dep_sources += gdk_x11_gir
|
||||||
|
endif
|
||||||
|
|
||||||
|
if win32_enabled
|
||||||
|
gdk_win32_gir = gnome.generate_gir(libgdk,
|
||||||
|
sources: gdk_win32_public_headers + gdk_win32_sources,
|
||||||
|
namespace: 'GdkWin32',
|
||||||
|
nsversion: gtk_api_version,
|
||||||
|
identifier_prefix: 'Gdk',
|
||||||
|
symbol_prefix: 'gdk',
|
||||||
|
export_packages: 'gdk-win32-3.0',
|
||||||
|
includes: gdk_gir_inc + [gdk_gir[0]],
|
||||||
|
install: true,
|
||||||
|
dependencies: gdk_gir_dep,
|
||||||
|
header: 'gdk/gdkwin32.h',
|
||||||
|
extra_args: gir_args + [
|
||||||
|
'-DGDK_COMPILATION',
|
||||||
|
])
|
||||||
|
gdk_dep_sources += gdk_x11_gir
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
libgdk_dep = declare_dependency(
|
libgdk_dep = declare_dependency(
|
||||||
link_with: libgdk,
|
link_with: libgdk,
|
||||||
sources: ['gdk.h', gdkconfig, gdkenum_h],
|
sources: gdk_dep_sources,
|
||||||
include_directories: [confinc, gdkx11_inc, wlinc],
|
include_directories: [confinc, gdkx11_inc, wlinc],
|
||||||
dependencies: gdk_deps)
|
dependencies: gdk_deps)
|
||||||
|
@ -19,7 +19,6 @@ gdk_x11_sources = files(
|
|||||||
'gdkmain-x11.c',
|
'gdkmain-x11.c',
|
||||||
'gdkproperty-x11.c',
|
'gdkproperty-x11.c',
|
||||||
'gdkscreen-x11.c',
|
'gdkscreen-x11.c',
|
||||||
'gdkscreen-x11.h',
|
|
||||||
'gdkselection-x11.c',
|
'gdkselection-x11.c',
|
||||||
'gdktestutils-x11.c',
|
'gdktestutils-x11.c',
|
||||||
'gdkvisual-x11.c',
|
'gdkvisual-x11.c',
|
||||||
|
@ -394,10 +394,9 @@ gtk_private_type_headers = files(
|
|||||||
'gtktexthandleprivate.h',
|
'gtktexthandleprivate.h',
|
||||||
)
|
)
|
||||||
|
|
||||||
gtk_public_headers = files(
|
gtk_gir_public_headers = files(
|
||||||
'gtk.h',
|
'gtk.h',
|
||||||
'gtk-autocleanups.h',
|
'gtk-autocleanups.h',
|
||||||
'gtkx.h',
|
|
||||||
'gtkx-autocleanups.h',
|
'gtkx-autocleanups.h',
|
||||||
'gtk-a11y.h',
|
'gtk-a11y.h',
|
||||||
'gtkaboutdialog.h',
|
'gtkaboutdialog.h',
|
||||||
@ -589,7 +588,6 @@ gtk_public_headers = files(
|
|||||||
'gtktextbuffer.h',
|
'gtktextbuffer.h',
|
||||||
'gtktextbufferrichtext.h',
|
'gtktextbufferrichtext.h',
|
||||||
'gtktextchild.h',
|
'gtktextchild.h',
|
||||||
'gtktextdisplay.h',
|
|
||||||
'gtktextiter.h',
|
'gtktextiter.h',
|
||||||
'gtktextmark.h',
|
'gtktextmark.h',
|
||||||
'gtktexttag.h',
|
'gtktexttag.h',
|
||||||
@ -622,9 +620,14 @@ gtk_public_headers = files(
|
|||||||
'gtkwindowgroup.h',
|
'gtkwindowgroup.h',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
gtk_nogir_public_headers = files(
|
||||||
|
'gtkx.h',
|
||||||
|
'gtktextdisplay.h',
|
||||||
|
)
|
||||||
|
|
||||||
# Installed headers without compatibility guarantees that are not included in gtk/gtk.h
|
# Installed headers without compatibility guarantees that are not included in gtk/gtk.h
|
||||||
gtk_semi_private_headers = files('gtktextlayout.h')
|
gtk_semi_private_headers = files('gtktextlayout.h')
|
||||||
|
gtk_public_headers = gtk_gir_public_headers + gtk_nogir_public_headers
|
||||||
install_headers(gtk_public_headers + gtk_semi_private_headers, subdir: 'gtk-3.0/gtk')
|
install_headers(gtk_public_headers + gtk_semi_private_headers, subdir: 'gtk-3.0/gtk')
|
||||||
|
|
||||||
gtk_unix_sources = files(
|
gtk_unix_sources = files(
|
||||||
@ -654,6 +657,7 @@ gtk_win32_sources = files(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if os_win32
|
if os_win32
|
||||||
|
# FIXME these sources should not be added to generate_gir?
|
||||||
gtk_sources += gtk_win32_sources
|
gtk_sources += gtk_win32_sources
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -762,7 +766,7 @@ gtkprivatetypebuiltins_h = gtkprivatetypebuiltins[1]
|
|||||||
typefuncs = custom_target('gtktypefuncs.inc',
|
typefuncs = custom_target('gtktypefuncs.inc',
|
||||||
depends: [ gdkenum_h ],
|
depends: [ gdkenum_h ],
|
||||||
output: 'gtktypefuncs.inc',
|
output: 'gtktypefuncs.inc',
|
||||||
input: gdk_headers +
|
input: gdk_public_headers +
|
||||||
gtk_public_headers +
|
gtk_public_headers +
|
||||||
gtk_deprecated_headers +
|
gtk_deprecated_headers +
|
||||||
[ gtktypebuiltins_h, gdkenum_h ],
|
[ gtktypebuiltins_h, gdkenum_h ],
|
||||||
@ -846,7 +850,7 @@ endif
|
|||||||
|
|
||||||
if quartz_enabled
|
if quartz_enabled
|
||||||
gtk_sources += gtk_use_quartz_sources
|
gtk_sources += gtk_use_quartz_sources
|
||||||
gtk_cargs += ['-DGDK_WINDOWING_QUARTZ', '-xobjective-c'] # FIXME? maybe add_languages() instead?
|
gtk_cargs += ['-DGDK_WINDOWING_QUARTZ', '-xobjective-c']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# So we don't add these twice
|
# So we don't add these twice
|
||||||
@ -902,65 +906,12 @@ libgtk = shared_library('gtk-3',
|
|||||||
|
|
||||||
gtk_dep_sources = [gtkversion, gtktypebuiltins_h]
|
gtk_dep_sources = [gtkversion, gtktypebuiltins_h]
|
||||||
# Introspection
|
# Introspection
|
||||||
build_gir = get_option('introspection')
|
|
||||||
if build_gir
|
if build_gir
|
||||||
gir_args = [
|
gir_args = ['--quiet']
|
||||||
'--quiet',
|
|
||||||
]
|
|
||||||
|
|
||||||
# We may build some of the dependencies as sub-projects; this means
|
|
||||||
# that we need to depend on the built introspection data, instead of
|
|
||||||
# the installed one
|
|
||||||
gdk_gir_inc = [ 'cairo-1.0', 'Gio-2.0', ]
|
|
||||||
|
|
||||||
if pixbuf_dep.type_name() == 'internal'
|
|
||||||
gdk_gir_inc += subproject('gdk-pixbuf').get_variable('gdkpixbuf_gir').get(0)
|
|
||||||
else
|
|
||||||
gdk_gir_inc += 'GdkPixbuf-2.0'
|
|
||||||
endif
|
|
||||||
|
|
||||||
if pango_dep.type_name() == 'internal'
|
|
||||||
gdk_gir_inc += subproject('pango').get_variable('pango_gir').get(0)
|
|
||||||
else
|
|
||||||
gdk_gir_inc += 'Pango-1.0'
|
|
||||||
endif
|
|
||||||
|
|
||||||
gdk_gir = gnome.generate_gir(libgtk,
|
|
||||||
sources: gdk_public_headers + gdk_sources + [ gdkenum_h ],
|
|
||||||
namespace: 'Gdk',
|
|
||||||
nsversion: gtk_api_version,
|
|
||||||
identifier_prefix: 'Gdk',
|
|
||||||
symbol_prefix: 'gdk',
|
|
||||||
export_packages: 'gtk+-3.0',
|
|
||||||
includes: gdk_gir_inc,
|
|
||||||
header: 'gdk/gdk.h',
|
|
||||||
install: true,
|
|
||||||
extra_args: gir_args + [
|
|
||||||
'-DGDK_COMPILATION',
|
|
||||||
])
|
|
||||||
gdk_gir_dep = declare_dependency(sources: gdk_gir)
|
|
||||||
gtk_dep_sources += gdk_gir
|
|
||||||
|
|
||||||
if x11_enabled
|
|
||||||
gdk_x11_gir = gnome.generate_gir(libgtk,
|
|
||||||
sources: gdk_x11_public_headers + gdk_x11_sources,
|
|
||||||
namespace: 'GdkX11',
|
|
||||||
nsversion: gtk_api_version,
|
|
||||||
identifier_prefix: 'Gdk',
|
|
||||||
symbol_prefix: 'gdk',
|
|
||||||
export_packages: 'gtk+-x11-3.0',
|
|
||||||
includes: [ gdk_gir[0], 'xlib-2.0', ],
|
|
||||||
install: true,
|
|
||||||
dependencies: gdk_gir_dep,
|
|
||||||
header: 'gdk/gdkx.h',
|
|
||||||
extra_args: gir_args + [
|
|
||||||
'-DGDK_COMPILATION',
|
|
||||||
])
|
|
||||||
gtk_dep_sources += gdk_x11_gir
|
|
||||||
endif
|
|
||||||
|
|
||||||
gtk_introspection_sources = [
|
gtk_introspection_sources = [
|
||||||
gtk_public_headers,
|
gtk_gir_public_headers,
|
||||||
|
gtk_deprecated_headers,
|
||||||
gtk_sources,
|
gtk_sources,
|
||||||
a11y_headers,
|
a11y_headers,
|
||||||
a11y_sources,
|
a11y_sources,
|
||||||
|
@ -573,6 +573,7 @@ if cloudproviders_enabled
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
build_gir = get_option('introspection')
|
||||||
subdir('gdk')
|
subdir('gdk')
|
||||||
subdir('gtk')
|
subdir('gtk')
|
||||||
subdir('modules')
|
subdir('modules')
|
||||||
|
@ -27,7 +27,7 @@ option('documentation', type: 'boolean', value: 'false',
|
|||||||
description : 'Build API reference and tools documentation')
|
description : 'Build API reference and tools documentation')
|
||||||
option('man-pages', type: 'boolean', value: 'false',
|
option('man-pages', type: 'boolean', value: 'false',
|
||||||
description : 'Build man pages for installed tools')
|
description : 'Build man pages for installed tools')
|
||||||
option('introspection', type: 'boolean', value: 'false',
|
option('introspection', type: 'boolean', value: 'true',
|
||||||
description : 'Build introspection data (requires gobject-introspection)')
|
description : 'Build introspection data (requires gobject-introspection)')
|
||||||
|
|
||||||
# Demos and binaries
|
# Demos and binaries
|
||||||
|
Loading…
Reference in New Issue
Block a user