meson: Build gtk marshallers

And fix libgtk_dep/libgdk_dep to link_with the shared lib
This commit is contained in:
Timm Bäder 2016-08-22 21:26:38 +02:00 committed by Emmanuele Bassi
parent 1e8a606403
commit 082cf3553d
13 changed files with 126 additions and 103 deletions

View File

@ -7,15 +7,19 @@
import sys, os, shutil, subprocess
# HORRIBLE, use current_source_dir() as an argument instead.
h_array = ['--prefix=_gdk_marshal', '--header']
c_array = ['--prefix=_gdk_marshal', '--body']
# [genmarshal, infile, outfile]
# [genmarshal, prefix, infile, outfile]
cmd = [sys.argv[1]]
ifilename = sys.argv[2]
ofilename = sys.argv[3]
prefix = sys.argv[2]
ifilename = sys.argv[3]
ofilename = sys.argv[4]
# HORRIBLE, use current_source_dir() as an argument instead.
h_array = ['--prefix=' + prefix, '--header', '--valist-marshallers']
c_array = ['--prefix=' + prefix, '--body', '--valist-marshallers']
if ofilename.endswith('.h'):
arg_array = h_array

View File

@ -16,7 +16,6 @@ iconbrowser = executable(
iconbrowser_sources,
iconbrowser_resources,
dependencies: libgtk_dep,
link_with: libgtk,
include_directories : confinc,
gui_app: true
)

View File

@ -3,8 +3,6 @@ widgetfactory_sources = [
'widget-factory.c'
]
widgetfactory_resources = gnome.compile_resources(
'widgetfactory_resources',
'widget-factory.gresource.xml',
@ -16,7 +14,6 @@ widget_factory = executable(
widgetfactory_sources,
widgetfactory_resources,
dependencies: libgtk_dep,
link_with: libgtk,
include_directories : confinc,
gui_app: true
)

View File

@ -222,8 +222,7 @@ gdk_headers = gdk_public_h_sources + deprecated_h_sources
mkenum = find_program('build_enum.py')
perl = find_program('perl')
glib_mkenums = find_program('glib-mkenums')
mkmarshal = find_program('build_marshal.py')
glib_marshal = find_program('glib-genmarshal')
gdkenum_h = custom_target('gdkenum_h',
output : 'gdkenumtypes.h',
@ -239,19 +238,20 @@ gdkenum_c = custom_target('gdkenum_c',
gdkmarshal_h = custom_target('gdkmarshal_h',
output : 'gdkmarshall.h',
input : 'gdkmarshalers.list',
command : [mkmarshal, glib_marshal, '@INPUT@', '@OUTPUT@'])
command : [mkmarshal, glib_marshal, '_gdk_marshal', '@INPUT@', '@OUTPUT@'])
gdkmarshal_c = custom_target('gdkmarshal_c',
output : 'gdkmarshall.c',
input : 'gdkmarshalers.list',
command : [mkmarshal, glib_marshal, '@INPUT@', '@OUTPUT@'])
command : [mkmarshal, glib_marshal, '_gdk_marshal', '@INPUT@', '@OUTPUT@'])
cdata = configuration_data()
if x11_enabled cdata.set('GDK_WINDOWING_X11', 1) endif
if wayland_enabled cdata.set('GDK_WINDOWING_WAYLAND', 1) endif
if broadway_enabled cdata.set('GDK_WINDOWING_BROADWAY', 1) endif
gdkconfig = configure_file(input : 'gdkconfig.h.meson',
gdkconfig = configure_file(
input : 'gdkconfig.h.meson',
output : 'gdkconfig.h',
configuration : cdata
)
@ -311,16 +311,18 @@ if wayland_enabled
endif
libgdk_dep = declare_dependency(
sources: ['gdk.h'],
include_directories: [confinc, xinc, wlinc],
dependencies: gdk_deps,
)
libgdk = shared_library('gdk',
gdk_sources,
c_args: ['-DHAVE_CONFIG_H', '-DGDK_COMPILATION'],
include_directories: [confinc, xinc, wlinc],
dependencies: gdk_deps,
)
libgdk_dep = declare_dependency(
sources: ['gdk.h', gdkenum_h],
depends: gdk_sources,
include_directories: [confinc, xinc, wlinc],
dependencies: gdk_deps,
link_with: libgdk
)

View File

@ -234,7 +234,6 @@ gtk_sources = [
'gtklockbutton.c',
'gtkmain.c',
'gtkmagnifier.c',
'gtkmarshalers.c',
'gtkmenu.c',
'gtkmenubar.c',
'gtkmenubutton.c',
@ -419,6 +418,17 @@ gtk_dbus_src = gnome.gdbus_codegen('gtkdbusgenerated', 'gtkdbusinterfaces.xml',
interface_prefix: 'org.Gtk.',
namespace: '_Gtk')
gtkmarshal_h = custom_target('gtkmarshal_h',
output : 'gtkmarshalers.h',
input : 'gtkmarshalers.list',
command : [mkmarshal, glib_marshal, '_gtk_marshal', '@INPUT@', '@OUTPUT@']
)
gtkmarshal_c = custom_target('gtkmarshal_c',
output : 'gtkmarshalers.c',
input : 'gtkmarshalers.list',
command : [mkmarshal, glib_marshal, '_gtk_marshal', '@INPUT@', '@OUTPUT@']
)
gtk_sources = [
gtk_sources,
@ -428,7 +438,9 @@ gtk_sources = [
dnd_sources,
inspector_sources,
a11y_sources,
gtkresources
gtkresources,
gtkmarshal_c,
gtkmarshal_h,
]
gtk_deps = [
@ -467,17 +479,6 @@ if wayland_enabled
]
endif
libgtk_dep = declare_dependency(
link_with: libgdk,
sources: [
'gtk.h'
],
dependencies: gtk_deps,
include_directories: confinc
)
libgtk = shared_library('gtk',
gtk_sources,
c_args: [
@ -489,6 +490,15 @@ libgtk = shared_library('gtk',
'-DX11_DATA_PREFIX="/share/x11/locale"'
],
include_directories: [ confinc, gdkinc ],
dependencies: gtk_deps,
dependencies: [gtk_deps, libgdk_dep],
link_with: libgdk
)
libgtk_dep = declare_dependency(
sources: [
'gtk.h'
],
dependencies: gtk_deps,
link_with: [libgdk, libgtk],
include_directories: confinc
)

View File

@ -24,6 +24,9 @@ wayland_enabled = get_option('enable-wayland-backend')
broadway_enabled = get_option('enable-broadway-backend')
mkmarshal = find_program('build_marshal.py')
glib_marshal = find_program('glib-genmarshal')
cc = meson.get_compiler('c')
cdata = configuration_data()
cdata.set('PACKAGE_VERSION', '"'+meson.project_version()+'"')
@ -156,4 +159,5 @@ configure_file(input: 'config.h.meson', output: 'config.h', configuration: cdata
subdir('gdk')
subdir('gtk')
subdir('demos')
subdir('tests')
subdir('testsuite')

5
tests/meson.build Normal file
View File

@ -0,0 +1,5 @@
testpopover = executable('testpopover', 'testpopover.c', dependencies: libgtk_dep)
install_data('popover.ui', install_dir: meson.build_root())
testcairo = executable('testcairo', 'testcairo.c', dependencies: libgtk_dep)

View File

@ -2,5 +2,5 @@ subdir('parser')
subdir('nodes')
subdir('style')
test_api = executable('api', 'api.c', dependencies: libgtk_dep, link_with: libgtk)
test_api = executable('api', 'api.c', dependencies: libgtk_dep)
test('css/api', test_api)

View File

@ -1,3 +1,3 @@
test_nodes = executable('test-css-nodes', 'test-css-nodes.c', dependencies: libgtk_dep, link_with: libgtk)
test_nodes = executable('test-css-nodes', 'test-css-nodes.c', dependencies: libgtk_dep)
test('css/nodes/test-nodes', test_nodes)

View File

@ -1,3 +1,3 @@
test_parser = executable('test-css-parser', 'test-css-parser.c', dependencies: libgtk_dep, link_with: libgtk)
test_parser = executable('test-css-parser', 'test-css-parser.c', dependencies: libgtk_dep)
test('css/parser/css-parser', test_parser)

View File

@ -10,6 +10,5 @@ test_style = executable(
'test-css-style.c',
cssresources,
dependencies: libgtk_dep,
link_with: libgtk
)
test('css/style/test-style', test_style)

View File

@ -1,24 +1,24 @@
test_cairo = executable('cairo', 'cairo.c', dependencies: libgdk_dep, link_with: libgdk)
test_cairo = executable('cairo', 'cairo.c', dependencies: libgdk_dep)
test('gdk/cairo', test_cairo)
test_display = executable('display', 'display.c', dependencies: libgdk_dep, link_with: libgdk)
test_display = executable('display', 'display.c', dependencies: libgdk_dep)
test('gdk/display', test_display)
test_encoding = executable('encoding', 'encoding.c', dependencies: libgdk_dep, link_with: libgdk)
test_encoding = executable('encoding', 'encoding.c', dependencies: libgdk_dep)
test('gdk/encoding', test_encoding)
test_keysyms = executable('keysyms', 'keysyms.c', dependencies: libgdk_dep, link_with: libgdk)
test_keysyms = executable('keysyms', 'keysyms.c', dependencies: libgdk_dep)
test('gdk/keysyms', test_keysyms)
test_rectangle = executable('rectangle', 'rectangle.c', dependencies: libgdk_dep, link_with: libgdk)
test_rectangle = executable('rectangle', 'rectangle.c', dependencies: libgdk_dep)
test('gdk/rectangle', test_rectangle)
test_rgba = executable('rgba', 'rgba.c', dependencies: libgdk_dep, link_with: libgdk)
test_rgba = executable('rgba', 'rgba.c', dependencies: libgdk_dep)
test('gdk/rgba', test_rgba)
test_seat = executable('seat', 'seat.c', dependencies: libgdk_dep, link_with: libgdk)
test_seat = executable('seat', 'seat.c', dependencies: libgdk_dep)
test('gdk/seat', test_seat)
test_visual = executable('visual', 'visual.c', dependencies: libgdk_dep, link_with: libgdk)
test_visual = executable('visual', 'visual.c', dependencies: libgdk_dep)
test('gdk/visual', test_visual)

View File

@ -1,20 +1,20 @@
test_accel = executable('accel', 'accel.c', dependencies: libgtk_dep, link_with: libgtk)
test_accel = executable('accel', 'accel.c', dependencies: libgtk_dep)
test('gtk/accel test', test_accel)
test_accessible = executable('accessible', 'accessible.c', dependencies: libgtk_dep, link_with: libgtk)
test_accessible = executable('accessible', 'accessible.c', dependencies: libgtk_dep)
test('gtk/accessible test', test_accessible)
test_action = executable('action', 'action.c', dependencies: libgtk_dep, link_with: libgtk)
test_action = executable('action', 'action.c', dependencies: libgtk_dep)
test('gtk/action test', test_action)
test_adjustment = executable('adjustment', 'adjustment.c', dependencies: libgtk_dep, link_with: libgtk)
test_adjustment = executable('adjustment', 'adjustment.c', dependencies: libgtk_dep)
test('gtk/adjustment test', test_adjustment)
test_bitmask = executable('bitmask', 'bitmask.c', dependencies: libgtk_dep, link_with: libgtk)
test_bitmask = executable('bitmask', 'bitmask.c', dependencies: libgtk_dep)
test('gtk/bitmask test', test_bitmask)
test_builder = executable('builder', 'builder.c', dependencies: libgtk_dep, link_with: libgtk)
test_builder = executable('builder', 'builder.c', dependencies: libgtk_dep)
test('gtk/builder test', test_builder)
install_subdir('ui', install_dir: '.')
@ -23,126 +23,129 @@ test_builderparser = executable(
'builderparser.c',
dependencies: libgtk_dep,
link_with: libgtk,
)
test(
'gtk/builderparser test',
test_builderparser,
env: [
'G_TEST_SRCDIR='+meson.source_root(),
'G_TEST_BUILDDIR='+meson.build_root()
]
)
test('gtk/builderparser test', test_builderparser)
test_cellarea = executable('cellarea', 'cellarea.c', dependencies: libgtk_dep, link_with: libgtk)
test_cellarea = executable('cellarea', 'cellarea.c', dependencies: libgtk_dep)
test('gtk/cellarea test', test_cellarea)
test_check_icon_names = executable('check_icon_names', 'check-icon-names.c', dependencies: libgtk_dep, link_with: libgtk)
test_check_icon_names = executable('check_icon_names', 'check-icon-names.c', dependencies: libgtk_dep)
test('gtk/check_icon_names test', test_check_icon_names)
test_check_cursor_names = executable('check_cursor_names', 'check-cursor-names.c', dependencies: libgtk_dep, link_with: libgtk)
test_check_cursor_names = executable('check_cursor_names', 'check-cursor-names.c', dependencies: libgtk_dep)
test('gtk/check_cursor_names test', test_check_cursor_names)
test_clipboard = executable('clipboard', 'clipboard.c', dependencies: libgtk_dep, link_with: libgtk)
test_clipboard = executable('clipboard', 'clipboard.c', dependencies: libgtk_dep)
test('gtk/clipboard test', test_clipboard)
test_cssprovider = executable('cssprovider', 'cssprovider.c', dependencies: libgtk_dep, link_with: libgtk)
test_cssprovider = executable('cssprovider', 'cssprovider.c', dependencies: libgtk_dep)
test('gtk/cssprovider test', test_cssprovider)
test_defaultvalue = executable('defaultvalue', 'defaultvalue.c', dependencies: libgtk_dep, link_with: libgtk)
test_defaultvalue = executable('defaultvalue', 'defaultvalue.c', dependencies: libgtk_dep)
test('gtk/defaultvalue test', test_defaultvalue)
test_entry = executable('entry', 'entry.c', dependencies: libgtk_dep, link_with: libgtk)
test_entry = executable('entry', 'entry.c', dependencies: libgtk_dep)
test('gtk/entry test', test_entry)
test_firefox_stylecontext = executable('firefox_stylecontext', 'firefox-stylecontext.c', dependencies: libgtk_dep, link_with: libgtk)
test_firefox_stylecontext = executable('firefox_stylecontext', 'firefox-stylecontext.c', dependencies: libgtk_dep)
test('gtk/firefox_stylecontext test', test_firefox_stylecontext)
test_floating = executable('floating', 'floating.c', dependencies: libgtk_dep, link_with: libgtk)
test_floating = executable('floating', 'floating.c', dependencies: libgtk_dep)
test('gtk/floating test', test_floating)
test_focus = executable('focus', 'focus.c', dependencies: libgtk_dep, link_with: libgtk)
test_focus = executable('focus', 'focus.c', dependencies: libgtk_dep)
test('gtk/focus test', test_focus)
test_gestures = executable('gestures', 'gestures.c', dependencies: libgtk_dep, link_with: libgtk)
test_gestures = executable('gestures', 'gestures.c', dependencies: libgtk_dep)
test('gtk/gestures test', test_gestures)
test_grid = executable('grid', 'grid.c', dependencies: libgtk_dep, link_with: libgtk)
test_grid = executable('grid', 'grid.c', dependencies: libgtk_dep)
test('gtk/grid test', test_grid)
test_gtkmenu = executable('gtkmenu', 'gtkmenu.c', dependencies: libgtk_dep, link_with: libgtk)
test_gtkmenu = executable('gtkmenu', 'gtkmenu.c', dependencies: libgtk_dep)
test('gtk/gtkmenu test', test_gtkmenu)
test_icontheme = executable('icontheme', 'icontheme.c', dependencies: libgtk_dep, link_with: libgtk)
test_icontheme = executable('icontheme', 'icontheme.c', dependencies: libgtk_dep)
test('gtk/icontheme test', test_icontheme)
test_keyhash = executable('keyhash', 'keyhash.c', dependencies: libgtk_dep, link_with: libgtk)
test_keyhash = executable('keyhash', 'keyhash.c', dependencies: libgtk_dep)
test('gtk/keyhash test', test_keyhash)
test_listbox = executable('listbox', 'listbox.c', dependencies: libgtk_dep, link_with: libgtk)
test_listbox = executable('listbox', 'listbox.c', dependencies: libgtk_dep)
test('gtk/listbox test', test_listbox)
test_notify = executable('notify', 'notify.c', dependencies: libgtk_dep, link_with: libgtk)
test_notify = executable('notify', 'notify.c', dependencies: libgtk_dep)
test('gtk/notify test', test_notify)
test_no_gtk_init = executable('no_gtk_init', 'no-gtk-init.c', dependencies: libgtk_dep, link_with: libgtk)
test_no_gtk_init = executable('no_gtk_init', 'no-gtk-init.c', dependencies: libgtk_dep)
test('gtk/no_gtk_init test', test_no_gtk_init)
test_object = executable('object', 'object.c', dependencies: libgtk_dep, link_with: libgtk)
test_object = executable('object', 'object.c', dependencies: libgtk_dep)
test('gtk/object test', test_object)
test_objects_finalize = executable('objects_finalize', 'objects-finalize.c', dependencies: libgtk_dep, link_with: libgtk)
test_objects_finalize = executable('objects_finalize', 'objects-finalize.c', dependencies: libgtk_dep)
test('gtk/objects_finalize test', test_objects_finalize)
test_papersize = executable('papersize', 'papersize.c', dependencies: libgtk_dep, link_with: libgtk)
test_papersize = executable('papersize', 'papersize.c', dependencies: libgtk_dep)
test('gtk/papersize test', test_papersize)
test_rbtree = executable('rbtree', 'rbtree.c', dependencies: libgtk_dep, link_with: libgtk)
test_rbtree = executable('rbtree', 'rbtree.c', dependencies: libgtk_dep)
test('gtk/rbtree test', test_rbtree)
test_recentmanager = executable('recentmanager', 'recentmanager.c', dependencies: libgtk_dep, link_with: libgtk)
test_recentmanager = executable('recentmanager', 'recentmanager.c', dependencies: libgtk_dep)
test('gtk/recentmanager test', test_recentmanager)
test_regression_tests = executable('regression_tests', 'regression-tests.c', dependencies: libgtk_dep, link_with: libgtk)
test_regression_tests = executable('regression_tests', 'regression-tests.c', dependencies: libgtk_dep)
test('gtk/regression_tests test', test_regression_tests)
test_scrolledwindow = executable('scrolledwindow', 'scrolledwindow.c', dependencies: libgtk_dep, link_with: libgtk)
test_scrolledwindow = executable('scrolledwindow', 'scrolledwindow.c', dependencies: libgtk_dep)
test('gtk/scrolledwindow test', test_scrolledwindow)
test_spinbutton = executable('spinbutton', 'spinbutton.c', dependencies: libgtk_dep, link_with: libgtk)
test_spinbutton = executable('spinbutton', 'spinbutton.c', dependencies: libgtk_dep)
test('gtk/spinbutton test', test_spinbutton)
test_stylecontext = executable('stylecontext', 'stylecontext.c', dependencies: libgtk_dep, link_with: libgtk)
test_stylecontext = executable('stylecontext', 'stylecontext.c', dependencies: libgtk_dep)
test('gtk/stylecontext test', test_stylecontext)
test_templates = executable('templates', 'templates.c', dependencies: libgtk_dep, link_with: libgtk)
test_templates = executable('templates', 'templates.c', dependencies: libgtk_dep)
test('gtk/templates test', test_templates)
test_textbuffer = executable('textbuffer', 'textbuffer.c', dependencies: libgtk_dep, link_with: libgtk)
test_textbuffer = executable('textbuffer', 'textbuffer.c', dependencies: libgtk_dep)
test('gtk/textbuffer test', test_textbuffer)
test_textiter = executable('textiter', 'textiter.c', dependencies: libgtk_dep, link_with: libgtk)
test_textiter = executable('textiter', 'textiter.c', dependencies: libgtk_dep)
test('gtk/textiter test', test_textiter)
test_treemodel = executable(
'treemodel',
'treemodel.c', 'liststore.c', 'treestore.c', 'filtermodel.c',
'modelrefcount.c', 'sortmodel.c', 'gtktreemodelrefcount.c',
dependencies: libgtk_dep,
link_with: libgtk
dependencies: libgtk_dep
)
test('gtk/treemodel test', test_treemodel)
test_treepath = executable('treepath', 'treepath.c', dependencies: libgtk_dep, link_with: libgtk)
test_treepath = executable('treepath', 'treepath.c', dependencies: libgtk_dep)
test('gtk/treepath test', test_treepath)
test_treeview = executable('treeview', 'treeview.c', dependencies: libgtk_dep, link_with: libgtk)
test_treeview = executable('treeview', 'treeview.c', dependencies: libgtk_dep)
test('gtk/treeview test', test_treeview)
test_typename = executable('typename', 'typename.c', dependencies: libgtk_dep, link_with: libgtk)
test_typename = executable('typename', 'typename.c', dependencies: libgtk_dep)
test('gtk/typename test', test_typename)
test_window = executable('window', 'window.c', dependencies: libgtk_dep, link_with: libgtk)
test_window = executable('window', 'window.c', dependencies: libgtk_dep)
test('gtk/window test', test_window)
test_displayclose = executable('displayclose', 'displayclose.c', dependencies: libgtk_dep, link_with: libgtk)
test_displayclose = executable('displayclose', 'displayclose.c', dependencies: libgtk_dep)
test('gtk/displayclose test', test_displayclose)
test_revealer_size = executable('revealer_size', 'revealer-size.c', dependencies: libgtk_dep, link_with: libgtk)
test_revealer_size = executable('revealer_size', 'revealer-size.c', dependencies: libgtk_dep)
test('gtk/revealer_size test', test_revealer_size)