Meson: Simplify pkgconfig file generator

Meson knows all private dependencies itself when passing the library as
first positional argument, no need to specify them manually. Also
simplify backend specific files by simply requiring gtk4, just like
unix-print already did.

This should fix generated gtk4-uninstalled.pc, see Meson bug report:
https://github.com/mesonbuild/meson/issues/10415
This commit is contained in:
Xavier Claessens 2022-05-24 10:30:58 -04:00
parent c0d79aa1ef
commit 802bf41999

View File

@ -471,9 +471,6 @@ if not os_win32
endif
endif
pc_gdk_extra_libs = []
cairo_backends = []
foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled],
['cairo-win32', cairo_req, win32_enabled],
@ -604,26 +601,14 @@ if x11_enabled
cdata.set('HAVE_RANDR15', xrandr15_dep.found())
endif
if broadway_enabled
pc_gdk_extra_libs += ['-lz']
endif
if macos_enabled
pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon']
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']
# Check whether libepoxy is built with EGL support on Windows
endif
@ -841,16 +826,7 @@ gsk_private_packages = [] # all already in gdk_private_packages
pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
gtk_private_packages = pangoft2_pkgs
gdk_extra_libs = pc_gdk_extra_libs
gsk_extra_libs = []
gtk_extra_libs = []
gdk_extra_cflags = []
gsk_extra_cflags = []
gtk_extra_cflags = []
pkgs = [ 'gtk4' ]
pkgs = []
pkg_targets = []
display_backends = []
foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ]
@ -867,18 +843,23 @@ common_pc_variables = [
'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME
]
pkg_config.generate(libgtk,
filebase: 'gtk4',
unescaped_variables: common_pc_variables,
name: 'GTK',
description: 'GTK Graphical UI Library',
requires: gdk_packages + gsk_packages + gtk_packages,
subdirs: ['gtk-@0@'.format(gtk_api_version)],
)
meson.override_dependency('gtk4', libgtk_dep)
foreach pkg: pkgs
pkg_config.generate(
filebase: pkg,
unescaped_variables: common_pc_variables,
name: 'GTK',
description: 'GTK Graphical UI Library',
requires: gdk_packages + gsk_packages + gtk_packages,
requires_private: gdk_private_packages + gsk_private_packages + gtk_private_packages,
libraries: ['-L${libdir}', '-lgtk-4'],
libraries_private: gdk_extra_libs + gsk_extra_libs + gtk_extra_libs,
subdirs: ['gtk-@0@'.format(gtk_api_version)],
extra_cflags: gdk_extra_cflags + gsk_extra_cflags + gtk_extra_cflags,
requires: 'gtk4',
)
meson.override_dependency(pkg, libgtk_dep)
endforeach
@ -889,10 +870,10 @@ if os_unix
unescaped_variables: common_pc_variables,
name: 'GTK',
description: 'GTK Unix print support',
requires: ['gtk4'] + gtk_packages,
libraries: [],
requires: 'gtk4',
subdirs: ['gtk-@0@/unix-print'.format(gtk_api_version)],
)
meson.override_dependency('gtk4-unix-print', libgtk_dep)
endif
subdir('po')