diff --git a/gail-3.0.pc.in b/gail-3.0.pc.in deleted file mode 100644 index 9777545c02..0000000000 --- a/gail-3.0.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: Gail -Description: GNOME Accessibility Implementation Library -Version: @VERSION@ -Requires: atk gtk+-3.0 -Libs: -L${libdir} -lgailutil-3 -Cflags: -I${includedir}/gail-3.0 diff --git a/gdk-3.0.pc.in b/gdk-3.0.pc.in deleted file mode 100644 index 97b0537291..0000000000 --- a/gdk-3.0.pc.in +++ /dev/null @@ -1,13 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -targets=@GDK_BACKENDS@ - -Name: GDK -Description: GTK+ Drawing Kit -Version: @VERSION@ -Requires: @GDK_PACKAGES@ -Requires.private: @GDK_PRIVATE_PACKAGES@ -Libs: -L${libdir} -lgdk-3 @GDK_EXTRA_LIBS@ -Cflags: -I${includedir}/gtk-@GTK_API_VERSION@ @GDK_EXTRA_CFLAGS@ diff --git a/gdk/broadway/meson.build b/gdk/broadway/meson.build index 6702280863..8a70652a82 100644 --- a/gdk/broadway/meson.build +++ b/gdk/broadway/meson.build @@ -28,7 +28,18 @@ gdk_broadway_public_headers = files( install_headers(gdk_broadway_public_headers, subdir: 'gtk-3.0/gdk/broadway/') install_headers('gdkbroadway.h', subdir: 'gtk-3.0/gdk/') -gdk_broadway_deps = [shmlib] +zlib_dep = dependency('zlib') +gdk_broadway_pkg_deps = [] +gdk_broadway_lib_deps = [shmlib] +if zlib_dep.type_name() == 'pkgconfig' + gdk_broadway_pkg_deps += zlib_dep +else + gdk_broadway_lib_deps += zlib_dep +endif +gdk_backend_extra_pkgs += gdk_broadway_pkg_deps +gdk_backend_extra_libs += gdk_broadway_lib_deps + +gdk_broadway_deps = gdk_broadway_lib_deps + gdk_broadway_pkg_deps gen_c_array = find_program('gen-c-array.py') diff --git a/gdk/meson.build b/gdk/meson.build index 4bb1bf2b6c..76d24b8389 100644 --- a/gdk/meson.build +++ b/gdk/meson.build @@ -197,28 +197,18 @@ wlinc = include_directories('.') gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros] -gdk_deps = [ - libm, - pixbuf_dep, - cairo_dep, - pango_dep, - fribidi_dep, - cairogobj_dep, - glib_dep, - epoxy_dep, - fontconfig_dep, - platform_gio_dep, - pangocairo_dep -] +pango_pkg_dep = win32_enabled ? pangowin32_dep : pango_dep + +gdk_pkg_deps = [pango_pkg_dep, pangocairo_dep, pixbuf_dep] + cairo_pkg_deps +gdk_pkg_private_deps = [platform_gio_dep, fontconfig_dep, epoxy_dep, fribidi_dep] +gdk_lib_deps = [libm, cairo_lib_deps] +if profiler_enabled + if profiler_dep.found() + gdk_pkg_private_deps += profiler_dep + endif +endif if win32_enabled - gdk_deps += [cc.find_library('advapi32'), - cc.find_library('comctl32'), - cc.find_library('dwmapi'), - cc.find_library('imm32'), - cc.find_library('setupapi'), - cc.find_library('winmm')] - gdk_rc = configure_file( input: 'win32/rc/gdk.rc.in', output: 'gdk.rc', @@ -228,11 +218,7 @@ if win32_enabled gdk_sources += gdk_res endif -if profiler_enabled - if profiler_dep.found() - gdk_deps += [profiler_dep] - endif -endif +gdk_deps = gdk_lib_deps + gdk_pkg_deps + gdk_pkg_private_deps gdk_sources = [ # Generated @@ -257,6 +243,9 @@ if wayland_enabled or broadway_enabled endif gdk_backends = [] +gdk_backend_extra_libs = [] +gdk_backend_extra_pkgs = [] + gdk_backends_gen_headers = [] # non-public generated headers foreach backend : ['broadway', 'quartz', 'wayland', 'win32', 'x11'] if get_variable('@0@_enabled'.format(backend)) @@ -302,6 +291,26 @@ libgdk = library('gdk-3', install: true) gdk_dep_sources = [gdkconfig, gdkenum_h] + +if cloudproviders_dep.found() + gdk_backend_extra_pkgs += cloudproviders_dep +endif + +# pkg-config +foreach gdk_pc: gdk_pcs + pkg.generate(libgdk, + name: 'GDK', + description: 'Gtk+ Drawing Kit', + filebase: gdk_pc, + libraries: ['-L${libdir}', '-lgdk-@0@'.format(gtk_major_version)] + \ + gdk_lib_deps + gdk_backend_extra_libs, + requires: gdk_pkg_deps, + requires_private: gdk_pkg_private_deps + gdk_backend_extra_pkgs, + subdirs: ['gtk-@0@'.format(gtk_api_version)], + unescaped_variables: gdk_pc_variables, + ) +endforeach + # Introspection if build_gir gir_args = ['--quiet'] diff --git a/gdk/quartz/meson.build b/gdk/quartz/meson.build index f4fcd8fba0..8a7e0dafca 100644 --- a/gdk/quartz/meson.build +++ b/gdk/quartz/meson.build @@ -54,6 +54,8 @@ iosurface_dep = dependency('appleframeworks', modules: 'IOSurface', required: tr gdk_quartz_deps = [ core_graphics_dep, appkit_dep, cocoa_dep, carbon_dep, quartzcore_dep, iosurface_dep ] +gdk_backend_extra_libs += gdk_quartz_deps + libgdk_quartz = static_library('gdk-quartz', gdk_quartz_sources, gdkconfig, gdkenum_h, include_directories: [confinc, gdkinc], diff --git a/gdk/wayland/meson.build b/gdk/wayland/meson.build index ad5dfe5591..c1bf4e125b 100644 --- a/gdk/wayland/meson.build +++ b/gdk/wayland/meson.build @@ -26,8 +26,8 @@ gdk_wayland_public_headers = files( install_headers(gdk_wayland_public_headers, subdir: 'gtk-3.0/gdk/wayland') install_headers('gdkwayland.h', subdir: 'gtk-3.0/gdk') -gdk_wayland_deps = [ - shmlib, +gdk_wayland_lib_deps = [shmlib] +gdk_wayland_pkg_deps = [ xkbdep, wlclientdep, wlprotocolsdep, @@ -35,6 +35,11 @@ gdk_wayland_deps = [ wlegldep, ] +gdk_wayland_deps = gdk_wayland_lib_deps + gdk_wayland_pkg_deps + +gdk_backend_extra_pkgs += gdk_wayland_pkg_deps +gdk_backend_extra_libs += gdk_wayland_lib_deps + # wayland protocols wlprotocolsdep = dependency('wayland-protocols') proto_dir = wlprotocolsdep.get_variable(pkgconfig: 'pkgdatadir') diff --git a/gdk/win32/meson.build b/gdk/win32/meson.build index ce35090aec..05622b70a6 100644 --- a/gdk/win32/meson.build +++ b/gdk/win32/meson.build @@ -48,12 +48,40 @@ endif install_headers(gdk_win32_public_headers, subdir: 'gtk-3.0/gdk/win32') install_headers('gdkwin32.h', subdir: 'gtk-3.0/gdk') +gdk_pkg_deps = [pangowin32_dep] + gdk_pkg_deps -gdk_win32_deps = [ # FIXME - pangowin32_dep, - meson.get_compiler('c').find_library('hid') +gdk_backend_extra_pkgs += dependency( + 'cairo-win32', + version: cairo_req, + required: false +) + +gdk_win32_lib_deps = [ + cc.find_library('advapi32'), + cc.find_library('dwmapi'), + cc.find_library('gdi32'), + cc.find_library('hid'), + cc.find_library('imm32'), + cc.find_library('ole32'), + cc.find_library('setupapi'), + cc.find_library('shell32'), + cc.find_library('user32'), + cc.find_library('winmm'), ] +gdk_backend_extra_libs = gdk_win32_lib_deps +# For Go users, should check whether we should ask people to +# whitelist -Wl,-l.... items, since we are dynamically linking +# items +if cc.get_argument_syntax() != 'msvc' + if get_option('default_library') == 'shared' + gdk_backend_extra_libs += [ '-Wl,-luuid' ] + else + gdk_backend_extra_libs += cc.find_library('uuid') + endif +endif +gdk_win32_deps = [gdk_pkg_deps, gdk_win32_lib_deps] + libgdk_win32 = static_library('gdk-win32', gdk_win32_sources, gdkconfig, gdkenum_h, include_directories: [confinc, gdkinc], diff --git a/gdk/x11/meson.build b/gdk/x11/meson.build index 754ae0a615..88919d14e1 100644 --- a/gdk/x11/meson.build +++ b/gdk/x11/meson.build @@ -68,6 +68,7 @@ gdk_x11_deps = [ xrandr_dep, xinerama_dep, ] +gdk_backend_extra_pkgs = gdk_x11_deps libgdk_x11 = static_library('gdk-x11', gdkmarshal_h, gdk_x11_sources, gdkconfig, gdkenum_h, diff --git a/gtk+-3.0.pc.in b/gtk+-3.0.pc.in deleted file mode 100644 index cf5d3be677..0000000000 --- a/gtk+-3.0.pc.in +++ /dev/null @@ -1,16 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -targets=@GDK_BACKENDS@ - -gtk_binary_version=@GTK_BINARY_VERSION@ -gtk_host=@host@ - -Name: GTK+ -Description: GTK+ Graphical UI Library -Version: @VERSION@ -Requires: gdk-@GTK_API_VERSION@ @GTK_PACKAGES@ -Requires.private: @GTK_PRIVATE_PACKAGES@ -Libs: -L${libdir} -lgtk-3 @GTK_EXTRA_LIBS@ -Cflags: -I${includedir}/gtk-@GTK_API_VERSION@ @GTK_EXTRA_CFLAGS@ diff --git a/gtk+-unix-print-3.0.pc.in b/gtk+-unix-print-3.0.pc.in deleted file mode 100644 index 8c0f32326c..0000000000 --- a/gtk+-unix-print-3.0.pc.in +++ /dev/null @@ -1,14 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -targets=@GDK_BACKENDS@ - -gtk_binary_version=@GTK_BINARY_VERSION@ -gtk_host=@host@ - -Name: GTK+ -Description: GTK+ Unix print support -Version: @VERSION@ -Requires: gtk+-@GTK_API_VERSION@ @GTK_PACKAGES@ -Cflags: -I${includedir}/gtk-@GTK_API_VERSION@/unix-print diff --git a/gtk/meson.build b/gtk/meson.build index 4b7a453e11..33ba05d929 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -831,41 +831,62 @@ gtk_sources += [ gtktypebuiltins, ] -gtk_deps = [ +harfbuzz_pkg = [] +harfbuzz_lib = [] + +if harfbuzz_dep.found() + if harfbuzz_dep.type_name() == 'pkgconfig' or harfbuzz_dep.type_name() == 'internal' + harfbuzz_pkg = harfbuzz_dep + else + harfbuzz_lib = harfbuzz_dep + endif +endif + +gtk_pkg_deps = [ + atk_dep, gmodule_dep, glib_dep, gobject_dep, - platform_gio_dep, pangocairo_dep, pango_dep, - pangoft_dep, - harfbuzz_dep, - fribidi_dep, - cairogobj_dep, - cairo_dep, + harfbuzz_pkg, +] + cairo_pkg_deps + [ fontconfig_dep, pixbuf_dep, - atk_dep, - epoxy_dep, - libm, ] +gtk_private_pkg_deps = [atk_dep, epoxy_dep, fribidi_dep] +gtk_extra_private_pkg_deps = [] + +gtk_lib_deps = [harfbuzz_lib] + cairo_lib_deps + [libm] + if x11_enabled x11_data_prefix = dependency('x11').get_variable(pkgconfig: 'prefix') gtk_cargs += [ '-DX11_DATA_PREFIX="@0@"'.format(x11_data_prefix), ] gtk_sources += gtk_use_x11_sources - gtk_deps += [ xi_dep, x11_dep, ] + gtk_extra_private_pkg_deps += [ xi_dep, x11_dep, ] endif if wayland_enabled gtk_sources += gtk_use_wayland_sources + gtk_extra_private_pkg_deps += [ + wlclientdep, + xkbdep, + wlcursordep, + wlegldep, +] endif if win32_enabled gtk_cargs += [] gtk_sources += gtk_use_win32_sources - gtk_deps += [ giowin32_dep, pangowin32_dep ] + gtk_pkg_deps += [ giowin32_dep, pangowin32_dep ] + gtk_lib_deps += [ + cc.find_library('comctl32'), + cc.find_library('comdlg32'), + cc.find_library('winspool'), + ] gtk_rc_body = configure_file( input: 'gtk-win32.rc.body.in', @@ -902,8 +923,9 @@ if win32_enabled gtk_res = import('windows').compile_resources(gtk_rc) gtk_sources += gtk_res else - gtk_deps += [ atkbridge_dep, ] + gtk_private_pkg_deps += [ atkbridge_dep, ] endif +gtk_private_pkg_deps += platform_gio_dep if quartz_enabled gtk_sources += gtk_use_quartz_sources @@ -913,7 +935,7 @@ endif # So we don't add these twice if x11_enabled or wayland_enabled gtk_sources += gtk_use_wayland_or_x11_sources - gtk_deps += pangoft_dep + gtk_extra_private_pkg_deps += pangoft_dep endif if not (x11_enabled or win32_enabled or quartz_enabled) @@ -921,16 +943,22 @@ if not (x11_enabled or win32_enabled or quartz_enabled) endif if cloudproviders_enabled - gtk_deps += cloudproviders_dep + gtk_pkg_deps += cloudproviders_dep endif if os_unix and tracker3_enabled - gtk_deps += tracker3_dep + gtk_pkg_deps += tracker3_dep endif # Unconditional. If libintl isn't found, # the object just does nothing being in the deplist -gtk_deps += libintl_dep +gtk_lib_deps += libintl_dep + +gtk_deps = \ + gtk_pkg_deps + \ + gtk_private_pkg_deps + \ + gtk_lib_deps + \ + gtk_extra_private_pkg_deps gtk_settings_schemas = [ 'org.gtk.Settings.FileChooser.gschema.xml', @@ -988,6 +1016,34 @@ libgtk = library('gtk-3', darwin_versions : gtk_osxversions, install: true) +# pkg-config +foreach gtk_pc: gtk_pcs + pkg.generate(libgtk, + name: 'GTK+', + description: 'GTK+ Graphical UI Library', + filebase: gtk_pc, + libraries: ['-L${libdir}', '-lgtk-@0@'.format(gtk_major_version)] + \ + gtk_lib_deps, + requires: [libgdk] + gtk_pkg_deps, + requires_private: gtk_private_pkg_deps, + subdirs: ['gtk-@0@'.format(gtk_api_version)], + unescaped_variables: gdk_pc_variables, + variables: gtk_pc_variables, + ) +endforeach + +if os_unix + pkg.generate(libgtk, + name: 'GTK+', + description: 'GTK+ Unix print support', + filebase: 'gtk+-unix-print-@0@'.format(gtk_api_version), + requires: ['gtk+-@0@'.format(gtk_api_version)] + gtk_pkg_deps, + subdirs: ['gtk-@0@/unix-print/gtk'.format(gtk_api_version)], + unescaped_variables: gdk_pc_variables, + variables: gtk_pc_variables, + ) +endif + # Introspection if build_gir gir_args = ['--quiet'] diff --git a/libgail-util/meson.build b/libgail-util/meson.build index 940ea40ca9..c04f4b40f5 100644 --- a/libgail-util/meson.build +++ b/libgail-util/meson.build @@ -30,3 +30,12 @@ libgailutil = library('gailutil-3', ] + common_cflags, link_args: gailutil_link_args, install: true) + +pkg.generate(libgailutil, + name: 'Gail', + filebase: 'gail-3.0', + description: 'GNOME Accessibility Implementation Library', + libraries: ['-L${libdir}', '-lgailutil-@0@'.format(gtk_major_version)], + requires: [atk_dep, libgtk], + subdirs: ['gail-@0@'.format(gtk_api_version)], +) diff --git a/meson.build b/meson.build index 0f73529358..a4bf66f6c3 100644 --- a/meson.build +++ b/meson.build @@ -39,6 +39,7 @@ cloudproviders_req = '>= 0.2.5' xkbcommon_req = '>= 0.2.0' gnome = import('gnome') +pkg = import('pkgconfig') add_project_arguments('-DG_LOG_USE_STRUCTURED=1', language: 'c') add_project_arguments('-DGLIB_MIN_REQUIRED_VERSION=' + glib_min_required, language: 'c') @@ -423,7 +424,8 @@ endif if win32_enabled # for GTK_IM_CONTEXT_IME - pangowin32_dep = dependency('pangowin32', fallback : ['pango', 'libpangowin32_dep']) + pangowin32_dep = dependency('pangowin32', version: pango_req, + fallback : ['pango', 'libpangowin32_dep']) endif pangocairo_dep = dependency('pangocairo', version: cairo_req, @@ -484,8 +486,6 @@ endif backend_immodules = [] -pc_gdk_extra_libs = [] - cairo_found_type = cairo_dep.type_name() if cairo_found_type == 'internal' cairo_features = subproject('cairo').get_variable('built_features') @@ -516,24 +516,9 @@ foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled], endif endforeach -cairo_pkg_found = false -cairogobj_pkg_found = false - -if cairo_found_type == 'internal' or cairo_found_type == 'pkgconfig' - cairo_pkg_found = true -endif -if cairogobj_found_type == 'internal' or cairogobj_found_type == 'pkgconfig' - cairogobj_pkg_found = true -endif - -cairo_libs = [] - cdata.set('HAVE_HARFBUZZ', harfbuzz_dep.found() ? 1 : false) cdata.set('HAVE_PANGOFT', pangoft_dep.found() ? 1 : false) -atk_pkgs = ['atk'] - -wayland_pkgs = [] if wayland_enabled wlclientdep = dependency('wayland-client', version: wayland_req) wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req) @@ -542,16 +527,8 @@ if wayland_enabled backend_immodules += ['wayland'] cdata.set('HAVE_XDG_ACTIVATION', wlprotocolsdep.version().version_compare('>=1.21')) - - wayland_pkgs = [ - 'wayland-client', wayland_req, - 'xkbcommon', xkbcommon_req, - 'wayland-cursor', wayland_req, - 'wayland-egl', - ] endif -x11_pkgs = [] if x11_enabled xrandr_dep = dependency('xrandr', version: '>= 1.2.99') xrandr15_dep = dependency('xrandr', version: '>= 1.5', required: false) @@ -568,23 +545,6 @@ if x11_enabled backend_immodules += ['xim'] - x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr'] - - if xcursor_dep.found() - x11_pkgs += ['xcursor'] - endif - if xfixes_dep.found() - x11_pkgs += ['xfixes'] - endif - if xcomposite_dep.found() - x11_pkgs += ['xcomposite'] - endif - if xdamage_dep.found() - x11_pkgs += ['xdamage'] - endif - - atk_pkgs += ['atk-bridge-2.0'] - cdata.set('HAVE_XDAMAGE', xdamage_dep.found() ? 1 : false) cdata.set('HAVE_XCURSOR', xcursor_dep.found() ? 1 : false) cdata.set('HAVE_XCOMPOSITE', xcomposite_dep.found() ? 1 : false) @@ -634,7 +594,6 @@ if x11_enabled if xinerama_dep.found() and cc.has_header_symbol('X11/extensions/Xinerama.h', 'XineramaQueryExtension', dependencies: xinerama_dep) cdata.set('HAVE_XFREE_XINERAMA', 1) cdata.set('HAVE_XINERAMA', 1) - x11_pkgs += ['xinerama'] endif else xinerama_dep = [] @@ -645,28 +604,22 @@ if x11_enabled endif if broadway_enabled - pc_gdk_extra_libs += ['-lz'] backend_immodules += ['broadway'] endif if quartz_enabled - pc_gdk_extra_libs += ['-Wl,-framework,Cocoa', '-Wl,-framework,Carbon', '-Wl,-framework,CoreGraphics'] backend_immodules += ['quartz'] cdata.set('QUARTZ_RELOCATION', 1) endif extra_demo_ldflags = [] if win32_enabled - pc_gdk_extra_libs += ['-lgdi32', '-limm32', '-lshell32', '-lole32'] if cc.get_id() == 'msvc' # Since the demo programs are now built as pure GUI programs, we # need to pass in /entry:mainCRTStartup so that they will properly # link on Visual Studio builds extra_demo_ldflags = ['/entry:mainCRTStartup'] - else - pc_gdk_extra_libs += ['-Wl,-luuid'] endif - pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32', '-lhid', '-lwinspool', '-lcomctl32', '-lcomdlg32'] backend_immodules += ['ime'] # Check whether libepoxy is built with EGL support on Windows @@ -819,11 +772,14 @@ if os_unix endif cloudproviders_enabled = get_option('cloudproviders') -cloudproviders_packages = [] +cloudproviders_dep = dependency( + 'cloudproviders', + version: cloudproviders_req, + required: cloudproviders_enabled, +) + if cloudproviders_enabled - cloudproviders_dep = dependency('cloudproviders', version: cloudproviders_req, required: true) if cloudproviders_dep.found() - cloudproviders_packages += ['cloudproviders', cloudproviders_req] cdata.set('HAVE_CLOUDPROVIDERS', cloudproviders_dep.found() ? 1 : false) else error('Cloudproviders support not found, but was explicitly requested.') @@ -849,6 +805,41 @@ endif gir = find_program('g-ir-scanner', required : get_option('introspection')) build_gir = gir.found() and get_option('introspection') +gtk_pcs = ['gtk+-@0@'.format(gtk_api_version)] +gdk_pcs = ['gdk-@0@'.format(gtk_api_version)] + +pkg_targets = [] +disabled_backends = [] +foreach backend: [ 'broadway', 'quartz', 'wayland', 'win32', 'x11'] + if get_variable('@0@_enabled'.format(backend)) + gtk_pcs += ['gtk+-@0@-@1@'.format(backend, gtk_api_version)] + gdk_pcs += ['gdk-@0@-@1@'.format(backend, gtk_api_version)] + pkg_targets += [backend] + else + disabled_backends += [backend] + endif +endforeach + +gdk_pc_variables = [ + 'targets=@0@'.format(' '.join(pkg_targets)) +] + +gtk_pc_variables = [ + 'gtk_binary_version=@0@'.format(gtk_binary_version), + 'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME +] + +# Sadly, Cairo only gained Meson build support quite a bit after 3.24.x was released +cairo_lib_deps = [] +cairo_pkg_deps = [] +foreach dep: [cairogobj_dep, cairo_dep] + if dep.type_name() == 'library' + cairo_lib_deps += dep + else + cairo_pkg_deps += dep + endif +endforeach + subdir('gdk') subdir('gtk') subdir('modules') @@ -870,122 +861,6 @@ configure_file( configuration: cdata, ) -# pkg-config files - bit of a mess all of this -pkgconf = configuration_data() - -pkgconf.set('prefix', get_option('prefix')) -pkgconf.set('exec_prefix', '${prefix}') -pkgconf.set('libdir', '${prefix}' / get_option('libdir')) -pkgconf.set('includedir', '${prefix}' / get_option('includedir')) -pkgconf.set('GTK_API_VERSION', gtk_api_version) -pkgconf.set('VERSION', meson.project_version()) -pkgconf.set('GTK_BINARY_VERSION', gtk_binary_version) -pkgconf.set('host', '@0@-@1@'.format(host_machine.cpu_family(), host_machine.system())) # FIXME - -# Requires -pango_pkgname = win32_enabled ? 'pangowin32' : 'pango' -gdk_packages = ' '.join([ pango_pkgname, pango_req, - 'pangocairo', pango_req, - 'gdk-pixbuf-2.0', gdk_pixbuf_req ]) - -cairo_packages = '' - -if cairo_pkg_found - cairo_packages += ' '.join([ ' cairo', cairo_req ]) -elif cc.get_id() == 'msvc' and cairo_dep.found() - cairo_libs += '-lcairo' -endif -if cairogobj_pkg_found - cairo_packages += ' '.join([ ' cairo-gobject', cairo_req ]) -elif cc.get_id() == 'msvc' and cairogobj_dep.found() - cairo_libs += '-lcairo-gobject' -endif - -gdk_packages += cairo_packages -pkgconf.set('GDK_PACKAGES', gdk_packages) - -if have_gio_unix - gio_packages = ['gio-unix-2.0', glib_req] -else - gio_packages = ['gio-2.0', glib_req] -endif - -pkgconf.set('GDK_PRIVATE_PACKAGES', - ' '.join(gio_packages + x11_pkgs + wayland_pkgs + cairo_backends + - ['epoxy', epoxy_req] + cloudproviders_packages + - ['fribidi', fribidi_req])) - -gtk_packages = ' '.join([ - atk_dep.name(), atk_req, - cairo_packages, - pixbuf_dep.name(), gdk_pixbuf_req, - 'gio-2.0', glib_req, -]) -pkgconf.set('GTK_PACKAGES', gtk_packages) - -# Requires.private -pc_gdk_extra_libs += cairo_libs - -gtk_private_packages = atk_pkgs + wayland_pkgs + ['epoxy', epoxy_req, 'fribidi', fribidi_req] -if wayland_enabled or x11_enabled - gtk_private_packages += ['pangoft2'] -endif -gtk_private_packages += gio_packages - -pkgconf.set('GTK_PRIVATE_PACKAGES', ' '.join(gtk_private_packages)) - -pkgconf.set('GDK_EXTRA_LIBS', ' '.join(pc_gdk_extra_libs)) -pkgconf.set('GSK_EXTRA_LIBS', '') -pkgconf.set('GTK_EXTRA_LIBS', '') - -pkgconf.set('GDK_EXTRA_CFLAGS', '') -pkgconf.set('GSK_EXTRA_CFLAGS', '') -pkgconf.set('GTK_EXTRA_CFLAGS', '') - -pkg_install_dir = join_paths(get_option('libdir'), 'pkgconfig') - -gtk_pcs = ['gtk+-3.0.pc'] -gdk_pcs = ['gdk-3.0.pc'] - -pkg_targets = '' -disabled_backends = [] -foreach backend: [ 'broadway', 'quartz', 'wayland', 'win32', 'x11'] - if get_variable('@0@_enabled'.format(backend)) - gtk_pcs += ['gtk+-@0@-3.0.pc'.format(backend)] - gdk_pcs += ['gdk-@0@-3.0.pc'.format(backend)] - pkg_targets += ' ' + backend - else - disabled_backends += [backend] - endif -endforeach -pkgconf.set('GDK_BACKENDS', pkg_targets.strip()) - -configure_file(input: 'gail-3.0.pc.in', - output: 'gail-3.0.pc', - configuration: pkgconf, - install_dir: pkg_install_dir) - -foreach pkg: gdk_pcs - configure_file(input: 'gdk-3.0.pc.in', - output: pkg, - configuration: pkgconf, - install_dir: pkg_install_dir) -endforeach - -foreach pkg: gtk_pcs - configure_file(input: 'gtk+-3.0.pc.in', - output: pkg, - configuration: pkgconf, - install_dir: pkg_install_dir) -endforeach - -if os_unix - configure_file(input: 'gtk+-unix-print-3.0.pc.in', - output: 'gtk+-unix-print-3.0.pc', - configuration: pkgconf, - install_dir: pkg_install_dir) -endif - subdir('po') subdir('po-properties') subdir('docs/tools') @@ -1015,7 +890,7 @@ summary = [ '------', 'GTK+ @0@ (@1@)'.format(gtk_version, gtk_api_version), '', - ' Display backends: @0@ [disabled: @1@]'.format(pkg_targets.strip(), ' '.join(disabled_backends)), + ' Display backends: @0@ [disabled: @1@]'.format(' '.join(pkg_targets), ' '.join(disabled_backends)), ' Print backends: @0@ [disabled: @1@]'.format(' '.join(print_backends), ' '.join(disabled_print_backends)), ' Cloud support: @0@'.format(get_option('cloudproviders')), ' Colord support: @0@'.format(get_option('colord')),