[grilo] build: generate .pc files



commit 846d1868f83b29e5addb1fec0cd210104e6b735a
Author: worldofpeace <worldofpeace protonmail ch>
Date:   Fri Jul 19 12:10:10 2019 -0400

    build: generate .pc files
    
    The generated .pc have been kept essentially identical
    to the original ones with the same variables.
    
    To squash warnings the meson_version was also bumped

 grilo-0.3.pc.in             | 17 -----------------
 grilo-net-0.3.pc.in         | 15 ---------------
 grilo-net-uninstalled.pc.in | 15 ---------------
 grilo-pls-0.3.pc.in         | 15 ---------------
 grilo-pls-uninstalled.pc.in | 15 ---------------
 grilo-uninstalled.pc.in     | 17 -----------------
 libs/net/meson.build        | 16 ++++++++++++++++
 libs/pls/meson.build        | 16 ++++++++++++++++
 meson.build                 | 31 ++-----------------------------
 src/meson.build             | 27 ++++++++++++++++++++++++---
 10 files changed, 58 insertions(+), 126 deletions(-)
---
diff --git a/libs/net/meson.build b/libs/net/meson.build
index 6d340e9..56c923c 100644
--- a/libs/net/meson.build
+++ b/libs/net/meson.build
@@ -43,6 +43,22 @@ libgrlnet_dep = declare_dependency(link_with: libgrlnet,
     include_directories: [libgrl_inc, libgrlnet_inc],
     dependencies: [libsoup_dep, libgrl_dep])
 
+grlnet_pc = pkgconfig.generate(libgrlnet,
+    filebase: 'grilo-net-@0@'.format(grl_majorminor),
+    requires: libgrl,
+    subdirs: grl_name,
+    name: 'Grilo networking library',
+    description: 'Grilo networking helpers for plug-ins',
+    version: grlnet_version,
+    variables: [
+        'exec_prefix=${prefix}',
+        'datarootdir=' + join_paths('${prefix}', datadir),
+        'datadir=${datarootdir}',
+        'girdir=' + girdir,
+        'typelibdir=' + typelibdir,
+    ],
+)
+
 if enable_gir
     grlnet_gir = gnome.generate_gir(libgrlnet,
         sources: grlnet_headers + grlnet_sources,
diff --git a/libs/pls/meson.build b/libs/pls/meson.build
index 1dfc51c..5915806 100644
--- a/libs/pls/meson.build
+++ b/libs/pls/meson.build
@@ -28,6 +28,22 @@ libgrlpls = shared_library('grlpls-@0@'.format(grl_majorminor),
     dependencies: [totem_plparser_dep, libgrl_dep],
     include_directories: libgrl_inc)
 
+grlpls_pc = pkgconfig.generate(libgrlpls,
+    filebase: 'grilo-pls-@0@'.format(grl_majorminor),
+    requires: libgrl,
+    subdirs: grl_name,
+    name: 'Grilo playlist library',
+    description: 'Grilo playlist utility',
+    version: grlpls_version,
+    variables: [
+        'exec_prefix=${prefix}',
+        'datarootdir=' + join_paths('${prefix}', datadir),
+        'datadir=${datarootdir}',
+        'girdir=' + girdir,
+        'typelibdir=' + typelibdir,
+    ],
+)
+
 if enable_gir
     gnome.generate_gir(libgrlpls,
         sources: grlpls_headers + grlpls_sources,
diff --git a/meson.build b/meson.build
index 83d6db2..6f2691d 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,7 @@ project('grilo', 'c',
             'warning_level=1'
         ],
         license: 'LGPL 2.1',
-        meson_version: '>= 0.37.0')
+        meson_version: '>= 0.46.0')
 
 grilo_version = meson.project_version()
 grlnet_version = meson.project_version()
@@ -105,35 +105,8 @@ if enable_testui
    cdata.set('HAVE_OAUTH', oauth_dep.found())
 endif
 
-pkgconfig_files = [
-    'grilo-@0@'.format(grl_majorminor),
-    'grilo-net-@0@'.format(grl_majorminor),
-    'grilo-pls-@0@'.format(grl_majorminor),
-]
-
-pkgconf = configuration_data()
-pkgconf.set('prefix', prefix)
-pkgconf.set('exec_prefix', '${prefix}')
-pkgconf.set('libdir', libdir)
-pkgconf.set('includedir', join_paths('${prefix}', includedir))
-pkgconf.set('GRL_NAME', grl_name)
-pkgconf.set('GRL_PLUGINS_DIR', plugins_dir)
-pkgconf.set('INTROSPECTION_GIRDIR', join_paths('${prefix}', girdir))
-pkgconf.set('INTROSPECTION_TYPELIBDIR', join_paths('${prefix}', typelibdir))
-pkgconf.set('VERSION', grilo_version)
-pkgconf.set('GRLNET_VERSION', grlnet_version)
-pkgconf.set('GRLPLS_VERSION', grlpls_version)
-
-foreach p: pkgconfig_files
-    infile = p + '.pc.in'
-    outfile = p + '.pc'
-    configure_file(input: infile,
-        output: outfile,
-        configuration: pkgconf,
-        install_dir: join_paths(libdir, 'pkgconfig'))
-endforeach
-
 gnome = import('gnome')
+pkgconfig = import('pkgconfig')
 
 subdir('src')
 subdir('libs')
diff --git a/src/meson.build b/src/meson.build
index 2eb46f6..8efe589 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -89,19 +89,40 @@ c_args = [
     '-DHAVE_CONFIG_H',
 ]
 
+libgrl_deps = [
+    glib_dep, gobject_dep, gmodule_dep, gio_dep, libxml_dep
+]
+
 libgrl = shared_library(grl_name,
     sources: grl_sources + grl_marshal + grl_type_builtins + grl_priv_headers,
     install: true,
     soversion: soversion,
     version: grilo_lt_version,
-    dependencies: [glib_dep, gobject_dep, gmodule_dep, gio_dep, libxml_dep],
+    dependencies: libgrl_deps,
     c_args: c_args,
     link_args: '-Wl,--no-undefined',
     include_directories: libgrl_inc)
-                            
+
 libgrl_dep = declare_dependency(link_with: libgrl,
     include_directories: libgrl_inc,
-    dependencies: [glib_dep, gobject_dep, gmodule_dep, gio_dep, libxml_dep])
+    dependencies: libgrl_deps)
+
+grl_pc = pkgconfig.generate(libgrl,
+    filebase: grl_name,
+    requires: libgrl_deps,
+    subdirs: grl_name,
+    name: 'Grilo Framework',
+    description: 'Grilo Framework for multimedia developers',
+    version: grilo_version,
+    variables: [
+        'exec_prefix=${prefix}',
+        'datarootdir=' + join_paths('${prefix}', datadir),
+        'datadir=${datarootdir}',
+        'girdir=' + girdir,
+        'typelibdir=' + typelibdir,
+        'plugindir=' + plugins_dir,
+    ],
+)
 
 if enable_gir
     gir_extra_args = [


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