summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-08-30 16:14:34 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2018-08-30 16:16:36 +0100
commit453c85215cb7f562866b0daef6a9b24a6957bf73 (patch)
treee04dc50d82c7dd77fad9ff1f43a391b2460b019c
parent2b93691f331115b7a18747163a5ec38e99392788 (diff)
downloadpango-453c85215cb7f562866b0daef6a9b24a6957bf73.tar.gz
build: Generate pkg-config files
Instead of using templates, ask Meson to generate the pkgconfig files for us. This ensures that the generated files are: - always valid - always up to date with the build - only built when needed without convoluted checks
-rw-r--r--meson.build40
-rw-r--r--pango.pc.in13
-rw-r--r--pango/meson.build50
-rw-r--r--pangocairo.pc.in12
-rw-r--r--pangoft2.pc.in12
-rw-r--r--pangowin32.pc.in12
-rw-r--r--pangoxft.pc.in11
7 files changed, 51 insertions, 99 deletions
diff --git a/meson.build b/meson.build
index aded99ce..c877d83f 100644
--- a/meson.build
+++ b/meson.build
@@ -456,46 +456,8 @@ if cairo_dep.found()
endif
endif
-# Compat variables for pkgconfig
-pkgconf = configuration_data()
-pkgconf.set('prefix', pango_prefix)
-pkgconf.set('exec_prefix', pango_prefix)
-pkgconf.set('libdir', pango_libdir)
-pkgconf.set('includedir', pango_includedir)
-pkgconf.set('VERSION', meson.project_version())
-pkgconf.set('PANGO_API_VERSION', pango_api_version)
-pkgconf.set('PKGCONFIG_CAIRO_REQUIRES', pangocairo_requires)
-pkgconf.set('CAIRO_PC', cairo_pc)
-pkgconf.set('CAIRO_LIB', cairo_lib)
-pkgconf.set('FREETYPE2_PC', freetype2_pc)
-pkgconf.set('FREETYPE2_LIB', freetype2_lib)
-pkgconf.set('FONTCONFIG_PC', fontconfig_pc)
-pkgconf.set('FONTCONFIG_LIB', fontconfig_lib)
-pkgconf.set('HARFBUZZ_PC', harfbuzz_pc)
-pkgconf.set('HARFBUZZ_LIB', harfbuzz_lib)
-
-pkgconf_files = [
- [ 'pango.pc' ],
- [ 'pangowin32.pc', host_system == 'windows' ],
- [ 'pangoft2.pc', build_pangoft2 ],
- [ 'pangoxft.pc', xft_dep.found() ],
- [ 'pangocairo.pc', cairo_dep.found() ],
-]
-
-foreach pkg: pkgconf_files
- pkg_name = pkg[0]
- pkg_enabled = pkg.get(1, true)
-
- if pkg_enabled
- configure_file(input: pkg_name + '.in',
- output: pkg_name,
- configuration: pkgconf,
- install: true,
- install_dir: join_paths(pango_libdir, 'pkgconfig'))
- endif
-endforeach
-
gnome = import('gnome')
+pkgconfig = import('pkgconfig')
# Internal configuration header
configure_file(output: 'config.h', configuration: pango_conf)
diff --git a/pango.pc.in b/pango.pc.in
deleted file mode 100644
index 81c074b1..00000000
--- a/pango.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Pango
-Description: Internationalized text handling
-Version: @VERSION@
-Requires: glib-2.0 gobject-2.0
-Requires.private: fribidi
-Libs: -L${libdir} -lpango-@PANGO_API_VERSION@
-Libs.private: -lm
-Cflags: -I${includedir}/pango-1.0
diff --git a/pango/meson.build b/pango/meson.build
index 537b6bca..f8b484a5 100644
--- a/pango/meson.build
+++ b/pango/meson.build
@@ -153,6 +153,16 @@ libpango_dep = declare_dependency(
sources: pango_dep_sources,
)
+pkgconfig.generate(libpango,
+ name: 'Pango',
+ description: 'Internationalized text handling',
+ version: meson.project_version(),
+ filebase: 'pango',
+ subdirs: pango_api_name,
+ requires: gobject_dep,
+ install_dir: join_paths(pango_libdir, 'pkgconfig'),
+)
+
# FreeType
if build_pangoft2
pangoft2_headers = [
@@ -233,6 +243,16 @@ if build_pangoft2
dependencies: pango_deps + [ libpango_dep ],
sources: pangoft2_dep_sources,
)
+
+ pkgconfig.generate(libpangoft2,
+ name: 'Pango FT2 and Pango Fc',
+ description: 'Freetype 2.0 and fontconfig font support for Pango',
+ version: meson.project_version(),
+ filebase: 'pangoft2',
+ subdirs: pango_api_name,
+ requires: [ 'pango', freetype2_pc, fontconfig_pc ],
+ install_dir: join_paths(pango_libdir, 'pkgconfig'),
+ )
else
# For usage as a subproject
libpangoft2_dep = dependency('', required : false)
@@ -292,6 +312,16 @@ if xft_dep.found()
dependencies: pango_deps + [ libpango_dep, libpangoft2_dep ],
sources: pangoxft_dep_sources,
)
+
+ pkgconfig.generate(libpangoxft,
+ name: 'Pango Xft',
+ description: 'Xft font support for Pango',
+ version: meson.project_version(),
+ filebase: 'pangoxft',
+ subdirs: pango_api_name,
+ requires: [ 'pangoft2', 'xft' ],
+ install_dir: join_paths(pango_libdir, 'pkgconfig'),
+ )
else
# For usage as a subproject
libpangoxft_dep = dependency('', required: false)
@@ -347,6 +377,16 @@ if host_system == 'windows'
include_directories: root_inc,
dependencies: pango_deps + [ libpango_dep ],
)
+
+ pkgconfig.generate(libpangowin32,
+ name: 'Pango Win32',
+ description: 'Win32 GDI font support for Pango',
+ version: meson.project_version(),
+ filebase: 'pangowin32',
+ subdirs: pango_api_name,
+ requires: 'pango',
+ install_dir: join_paths(pango_libdir, 'pkgconfig'),
+ )
else
# For usage as a subproject
libpangowin32_dep = dependency('', required: false)
@@ -446,6 +486,16 @@ if cairo_dep.found()
dependencies: pango_deps + [ libpango_dep ],
sources: pangocairo_dep_sources,
)
+
+ pkgconfig.generate(libpangocairo,
+ name: 'Pango Cairo',
+ description: 'Cairo rendering support for Pango',
+ version: meson.project_version(),
+ filebase: 'pangocairo',
+ subdirs: pango_api_name,
+ requires: [ 'pango', cairo_pc ],
+ install_dir: join_paths(pango_libdir, 'pkgconfig'),
+ )
else
# For usage as a subproject
libpangocairo_dep = dependency('', required: false)
diff --git a/pangocairo.pc.in b/pangocairo.pc.in
deleted file mode 100644
index ea5e3262..00000000
--- a/pangocairo.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Pango Cairo
-Description: Cairo rendering support for Pango
-Version: @VERSION@
-Requires: pango @CAIRO_PC@
-Requires.private: @PKGCONFIG_CAIRO_REQUIRES@
-Libs: -L${libdir} -lpangocairo-@PANGO_API_VERSION@ @CAIRO_LIB@
-Cflags: -I${includedir}/pango-1.0
diff --git a/pangoft2.pc.in b/pangoft2.pc.in
deleted file mode 100644
index 42eea21d..00000000
--- a/pangoft2.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Pango FT2 and Pango Fc
-Description: Freetype 2.0 and fontconfig font support for Pango
-Version: @VERSION@
-Requires: pango @FREETYPE2_PC@ @FONTCONFIG_PC@
-Requires.private: @HARFBUZZ_PC@
-Libs: -L${libdir} -lpangoft2-@PANGO_API_VERSION@ @FREETYPE2_LIB@ @FONTCONFIG_LIB@ @HARFBUZZ_LIB@
-Cflags: -I${includedir}/pango-1.0
diff --git a/pangowin32.pc.in b/pangowin32.pc.in
deleted file mode 100644
index 34ea6a3c..00000000
--- a/pangowin32.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Pango Win32
-Description: Win32 GDI font support for Pango
-Version: @VERSION@
-Requires: pango
-Libs: -L${libdir} -lpangowin32-@PANGO_API_VERSION@
-Libs.private: -lusp10 -lgdi32
-Cflags: -I${includedir}/pango-1.0
diff --git a/pangoxft.pc.in b/pangoxft.pc.in
deleted file mode 100644
index 66202ec7..00000000
--- a/pangoxft.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Pango Xft
-Description: Xft font support for Pango
-Version: @VERSION@
-Requires: pango pangoft2 xft
-Libs: -L${libdir} -lpangoxft-@PANGO_API_VERSION@
-Cflags: -I${includedir}/pango-1.0