diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2018-08-30 16:14:34 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2018-08-30 16:16:36 +0100 |
commit | 453c85215cb7f562866b0daef6a9b24a6957bf73 (patch) | |
tree | e04dc50d82c7dd77fad9ff1f43a391b2460b019c | |
parent | 2b93691f331115b7a18747163a5ec38e99392788 (diff) | |
download | pango-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.build | 40 | ||||
-rw-r--r-- | pango.pc.in | 13 | ||||
-rw-r--r-- | pango/meson.build | 50 | ||||
-rw-r--r-- | pangocairo.pc.in | 12 | ||||
-rw-r--r-- | pangoft2.pc.in | 12 | ||||
-rw-r--r-- | pangowin32.pc.in | 12 | ||||
-rw-r--r-- | pangoxft.pc.in | 11 |
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 |