build: Generate pkg-config files

...instead of using templates for the sake of autotools build support.
This will hopefully attempt to clean things up a bit while attempting to
retain compatibility.

This ensures that the items in here are correct in terms of the libraries
and packages that are being used.
This commit is contained in:
Chun-wei Fan 2023-02-09 20:08:54 +08:00
parent b668e6d8a1
commit f0d0a8f5ed
13 changed files with 214 additions and 272 deletions

View File

@ -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

View File

@ -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@

View File

@ -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')

View File

@ -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']

View File

@ -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],

View File

@ -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')

View File

@ -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],

View File

@ -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,

View File

@ -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@

View File

@ -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

View File

@ -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']

View File

@ -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)],
)

View File

@ -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')),