| gdk_public_sources = files([ |
| 'gdk.c', |
| 'gdkapplaunchcontext.c', |
| 'gdkcairo.c', |
| 'gdkcairocontext.c', |
| 'gdkclipboard.c', |
| 'gdkcontentdeserializer.c', |
| 'gdkcontentformats.c', |
| 'gdkcontentprovider.c', |
| 'gdkcontentproviderimpl.c', |
| 'gdkcontentserializer.c', |
| 'gdkcursor.c', |
| 'gdkdevice.c', |
| 'gdkdevicepad.c', |
| 'gdkdevicetool.c', |
| 'gdkdisplay.c', |
| 'gdkdisplaymanager.c', |
| 'gdkdrag.c', |
| 'gdkdrawcontext.c', |
| 'gdkdrop.c', |
| 'gdkevents.c', |
| 'filetransferportal.c', |
| 'gdkframeclock.c', |
| 'gdkframeclockidle.c', |
| 'gdkframetimings.c', |
| 'gdkgl.c', |
| 'gdkglcontext.c', |
| 'gdkglobals.c', |
| 'gdkgltexture.c', |
| 'gdkkeys.c', |
| 'gdkkeyuni.c', |
| 'gdkmemorytexture.c', |
| 'gdkmonitor.c', |
| 'gdkpaintable.c', |
| 'gdkpango.c', |
| 'gdkpixbuf-drawable.c', |
| 'gdkpipeiostream.c', |
| 'gdkrectangle.c', |
| 'gdkrgba.c', |
| 'gdkseat.c', |
| 'gdkseatdefault.c', |
| 'gdksnapshot.c', |
| 'gdktexture.c', |
| 'gdkvulkancontext.c', |
| 'gdksurface.c', |
| 'gdkpopuplayout.c', |
| 'gdkprofiler.c', |
| 'gdkpopup.c', |
| 'gdktoplevellayout.c', |
| 'gdktoplevel.c', |
| 'gdkdragsurface.c', |
| ]) |
| |
| gdk_public_headers = files([ |
| 'gdk-autocleanup.h', |
| 'gdk.h', |
| 'gdkapplaunchcontext.h', |
| 'gdkcairo.h', |
| 'gdkcairocontext.h', |
| 'gdkclipboard.h', |
| 'gdkcontentdeserializer.h', |
| 'gdkcontentformats.h', |
| 'gdkcontentprovider.h', |
| 'gdkcontentproviderimpl.h', |
| 'gdkcontentserializer.h', |
| 'gdkcursor.h', |
| 'gdkdevice.h', |
| 'gdkdevicepad.h', |
| 'gdkdevicetool.h', |
| 'gdkdisplay.h', |
| 'gdkdisplaymanager.h', |
| 'gdkdrag.h', |
| 'gdkdrawcontext.h', |
| 'gdkdrop.h', |
| 'gdkevents.h', |
| 'gdkframeclock.h', |
| 'gdkframetimings.h', |
| 'gdkglcontext.h', |
| 'gdkgltexture.h', |
| 'gdkkeys.h', |
| 'gdkkeysyms.h', |
| 'gdkmemorytexture.h', |
| 'gdkmonitor.h', |
| 'gdkpaintable.h', |
| 'gdkpango.h', |
| 'gdkpixbuf.h', |
| 'gdkrectangle.h', |
| 'gdkrgba.h', |
| 'gdkseat.h', |
| 'gdksnapshot.h', |
| 'gdktexture.h', |
| 'gdktypes.h', |
| 'gdkvulkancontext.h', |
| 'gdksurface.h', |
| 'gdkpopuplayout.h', |
| 'gdkpopup.h', |
| 'gdktoplevellayout.h', |
| 'gdktoplevel.h', |
| 'gdkdragsurface.h', |
| ]) |
| install_headers(gdk_public_headers, subdir: 'gtk-4.0/gdk/') |
| |
| gdk_sources = gdk_public_sources |
| |
| gdk_private_h_sources = files([ |
| 'gdkeventsprivate.h', |
| 'gdkdevicetoolprivate.h', |
| 'gdkmonitorprivate.h', |
| 'gdkseatdefaultprivate.h', |
| ]) |
| |
| gdk_gresource_xml = configure_file(output : 'gdk.gresource.xml', |
| input : 'gen-gdk-gresources-xml.py', |
| command : [find_program('gen-gdk-gresources-xml.py'), |
| meson.current_source_dir(), '@OUTPUT@']) |
| |
| gdkresources = gnome.compile_resources('gdkresources', |
| gdk_gresource_xml, |
| source_dir: '.', |
| c_name: '_gdk', |
| extra_args: '--manual-register') |
| |
| gdk_headers = gdk_public_headers |
| |
| gdk_enums = gnome.mkenums('gdkenumtypes', |
| sources: gdk_public_headers, |
| c_template : 'gdkenumtypes.c.template', |
| h_template : 'gdkenumtypes.h.template', |
| install_dir: join_paths(gtk_includedir, 'gtk-4.0/gdk'), |
| install_header : true) |
| |
| gdkenum_h = gdk_enums[1] |
| |
| gdk_marshalers = gnome.genmarshal('gdkmarshalers', |
| sources : 'gdkmarshalers.list', |
| prefix : '_gdk_marshal', |
| valist_marshallers : true) |
| |
| gdkmarshal_h = gdk_marshalers[1] |
| |
| gdkconfig_cdata = configuration_data() |
| gdkconfig_cdata.set('GDK_WINDOWING_X11', x11_enabled) |
| gdkconfig_cdata.set('GDK_WINDOWING_WAYLAND', wayland_enabled) |
| gdkconfig_cdata.set('GDK_WINDOWING_WIN32', win32_enabled) |
| gdkconfig_cdata.set('GDK_WINDOWING_BROADWAY', broadway_enabled) |
| gdkconfig_cdata.set('GDK_RENDERING_VULKAN', have_vulkan) |
| |
| gdkconfig = configure_file( |
| input : 'gdkconfig.h.meson', |
| output : 'gdkconfig.h', |
| configuration : gdkconfig_cdata, |
| install_dir: join_paths(gtk_includedir, 'gtk-4.0/gdk')) |
| |
| |
| gdkversion_cdata = configuration_data() |
| gdkversion_cdata.set('GTK_MAJOR_VERSION', gtk_major_version) |
| gdkversion_cdata.set('GTK_MINOR_VERSION', gtk_minor_version) |
| gdkversion_cdata.set('GTK_MICRO_VERSION', gtk_micro_version) |
| |
| gdkversionmacros = configure_file( |
| input : 'gdkversionmacros.h.in', |
| output : 'gdkversionmacros.h', |
| configuration: gdkversion_cdata, |
| install_dir: join_paths(gtk_includedir, 'gtk-4.0/gdk')) |
| |
| gdkinc = include_directories('.') |
| gdkx11_inc = include_directories('x11') |
| gdkwayland_inc = include_directories('wayland') |
| |
| wlinc = include_directories('.') |
| win32rcinc = include_directories('win32/rc') |
| |
| gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros] |
| |
| gdk_deps = [ |
| libm, |
| pixbuf_dep, |
| cairo_dep, |
| pango_dep, |
| fribidi_dep, |
| cairogobj_dep, |
| glib_dep, |
| gobject_dep, |
| graphene_dep, |
| epoxy_dep, |
| fontconfig_dep, |
| platform_gio_dep, |
| pangocairo_dep, |
| vulkan_dep, |
| ] |
| |
| if profiler_enabled |
| if profiler_dep.found() |
| gdk_deps += [profiler_dep] |
| endif |
| endif |
| |
| # add generated gdk sources |
| gdk_sources += [ |
| gdkconfig, |
| gdk_enums, |
| gdk_marshalers, |
| gdkresources, |
| gdkversionmacros, |
| gdk_private_h_sources, |
| gdk_public_headers |
| ] |
| |
| if wayland_enabled or broadway_enabled |
| if cc.has_function('shm_open') |
| shmlib = [] |
| elif cc.has_function('shm_open', args : '-lrt') |
| shmlib = cc.find_library('rt') |
| else |
| shmlib = [] |
| endif |
| endif |
| |
| gdk_backends = [] |
| gdk_backends_gen_headers = [] # non-public generated headers |
| foreach backend : ['broadway', 'quartz', 'wayland', 'win32', 'x11'] |
| if get_variable('@0@_enabled'.format(backend)) |
| subdir(backend) |
| gdk_deps += get_variable('gdk_@0@_deps'.format(backend)) |
| gdk_backends += get_variable('libgdk_@0@'.format(backend)) |
| # Special-case this for now to work around Meson bug with get_variable() |
| # fallback being an empty array, or any array (#1481) |
| if backend == 'wayland' |
| gdk_backends_gen_headers += get_variable('gdk_@0@_gen_headers'.format(backend)) |
| endif |
| endif |
| endforeach |
| |
| if gdk_backends.length() == 0 |
| error('No backends enabled') |
| endif |
| |
| # FIXME: might have to add '-xobjective-c' to c_args for quartz backend? |
| libgdk = static_library('gdk', |
| sources: [gdk_sources, gdk_backends_gen_headers, gdkconfig], |
| dependencies: gdk_deps + [libgtk_css_dep], |
| link_with: [libgtk_css, ], |
| include_directories: [confinc, gdkx11_inc, wlinc], |
| c_args: [ |
| '-DGTK_COMPILATION', |
| '-DG_LOG_DOMAIN="Gdk"', |
| ] + common_cflags, |
| link_whole: gdk_backends, |
| link_args: common_ldflags) |
| |
| # We don't have link_with: to internal static libs here on purpose, just |
| # list the dependencies and generated headers and such, for use in the |
| # "public" libgtk_dep used by internal executables. |
| libgdk_dep = declare_dependency( |
| sources: ['gdk.h', gdkconfig, gdkenum_h], |
| include_directories: [confinc, gdkx11_inc, wlinc], |
| dependencies: gdk_deps + [libgtk_css_dep]) |