[gtk: 1/2] Meson: Simplify pkgconfig file generator




commit 802bf4199911c811938b0454a876089bafa97dba
Author: Xavier Claessens <xavier claessens collabora com>
Date:   Tue May 24 10:30:58 2022 -0400

    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

 meson.build | 47 ++++++++++++++---------------------------------
 1 file changed, 14 insertions(+), 33 deletions(-)
---
diff --git a/meson.build b/meson.build
index d78bbc1cd2..f46236dadd 100644
--- a/meson.build
+++ b/meson.build
@@ -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')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]