From 5f5fd77f096174c45f8335afe6efd6745796d9a5 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Mon, 25 Jul 2022 16:21:50 +0200
Subject: [PATCH] Revert "Meson: Simplify pkgconfig file generator"

Temporarily revert this until we figure out how to best restore
private requires that are needed for rpm automatic dep extraction.

https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4756

This reverts commit 802bf4199911c811938b0454a876089bafa97dba.
---
 meson.build | 47 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 33 insertions(+), 14 deletions(-)

diff --git a/meson.build b/meson.build
index 1b8f2d0248..4fc808dbd4 100644
--- a/meson.build
+++ b/meson.build
@@ -471,6 +471,9 @@ 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],
@@ -601,14 +604,26 @@ 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
@@ -826,7 +841,16 @@ gsk_private_packages = [] # all already in gdk_private_packages
 pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
 gtk_private_packages = pangoft2_pkgs
 
-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' ]
+
 pkg_targets = []
 display_backends = []
 foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ]
@@ -843,23 +867,18 @@ 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: 'gtk4',
+    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,
   )
   meson.override_dependency(pkg, libgtk_dep)
 endforeach
@@ -870,10 +889,10 @@ if os_unix
     unescaped_variables: common_pc_variables,
     name: 'GTK',
     description: 'GTK Unix print support',
-    requires: 'gtk4',
+    requires: ['gtk4'] + gtk_packages,
+    libraries: [],
     subdirs: ['gtk-@0@/unix-print'.format(gtk_api_version)],
   )
-  meson.override_dependency('gtk4-unix-print', libgtk_dep)
 endif
 
 subdir('po')
-- 
2.37.1

