[pango: 1/2] Make dependencies to fontconfig and freetype optional and explicit.
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango: 1/2] Make dependencies to fontconfig and freetype optional and explicit.
- Date: Thu, 17 Sep 2020 19:05:47 +0000 (UTC)
commit f91c203bb40ef3024627c22710037bf67ac061cf
Author: Niklas Guertler <profclonk gmail com>
Date: Mon Sep 14 15:19:01 2020 +0200
Make dependencies to fontconfig and freetype optional and explicit.
Added meson features for explicitly enabling or disabling the dependencies freetype and fontconfig such
that they won't be used even if present on the system.
The meson option use_fontconfig was changed to fontconfig with these possible values:
* 'enabled' (equivalent to old use_fontconfig=true)
* 'auto' (equivalent to old use_fontconfig=false)
* 'disabled' (equivalent to old use_fontconfig=false AND report an error if fontconfig is required on
this system).
meson.build | 20 ++++++++++++++------
meson_options.txt | 12 ++++++++----
2 files changed, 22 insertions(+), 10 deletions(-)
---
diff --git a/meson.build b/meson.build
index 20f73947..482b0735 100644
--- a/meson.build
+++ b/meson.build
@@ -270,16 +270,24 @@ endif
pango_deps += harfbuzz_dep
# Only use FontConfig fallback when required or requested
-fontconfig_required = (host_system != 'windows' and host_system != 'darwin') or get_option('use_fontconfig')
-fontconfig_dep = dependency('fontconfig', version: fontconfig_req_version, required: false)
+fontconfig_option = get_option('fontconfig')
+
+fontconfig_sys_required = (host_system != 'windows' and host_system != 'darwin')
+if fontconfig_sys_required and fontconfig_option.disabled()
+ error('Fontconfig is required on this platform (pass -Dfontconfig=enabled or -Dfontconfig=auto)')
+endif
+
+fontconfig_required = fontconfig_sys_required or fontconfig_option.enabled()
+
+fontconfig_dep = dependency('fontconfig', version: fontconfig_req_version, required: fontconfig_option)
if fontconfig_dep.found()
fontconfig_pc = 'fontconfig'
else
if cc.get_id() == 'msvc' and cc.has_header('fontconfig/fontconfig.h')
# Look for the Visual Studio-style import library if FontConfig's .pc file cannot be
# found on Visual Studio
- fontconfig_dep = cc.find_library('fontconfig', required: false)
+ fontconfig_dep = cc.find_library('fontconfig', required: fontconfig_option)
if fontconfig_dep.found()
fontconfig_lib = '-lfontconfig'
endif
@@ -312,7 +320,7 @@ message('fontconfig has FcWeightFromOpenTypeDouble: ' + res)
# The first version of freetype with a pkg-config file is 2.1.5
# We require both fontconfig and freetype if we are to have either.
-freetype_dep = dependency('freetype2', required: false)
+freetype_dep = dependency('freetype2', required: get_option('freetype'))
if freetype_dep.found()
freetype2_pc = 'freetype2'
@@ -320,7 +328,7 @@ else
if cc.get_id() == 'msvc' and cc.has_header('ft2build.h')
foreach ft2_lib: ['freetype', 'freetypemt']
if not freetype_dep.found()
- freetype_dep = cc.find_library(ft2_lib, required: false)
+ freetype_dep = cc.find_library(ft2_lib, required: get_option('freetype'))
if freetype_dep.found()
freetype2_lib = '-l@0@'.format(ft2_lib)
endif
@@ -330,7 +338,7 @@ else
endif
if fontconfig_required and not freetype_dep.found()
- freetype_dep = dependency('freetype2', required: false,
+ freetype_dep = dependency('freetype2', required: get_option('freetype'),
fallback: ['freetype2', 'freetype_dep'])
endif
diff --git a/meson_options.txt b/meson_options.txt
index 437ba149..5aa7c795 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -10,10 +10,10 @@ option('install-tests',
description : 'Install tests',
type: 'boolean',
value: 'false')
-option('use_fontconfig',
- description : 'Force using FontConfig where it is optional, on Windows and macOS. This is ignored on
platforms where it is required',
- type: 'boolean',
- value: 'false')
+option('fontconfig',
+ description : 'Build with FontConfig support. Passing \'auto\' or \'disabled\' disables fontconfig
where it is optional, i.e. on Windows and macOS. Passing \'disabled\' on platforms where fontconfig is
required results in error.',
+ type: 'feature',
+ value: 'auto')
option('sysprof',
type : 'feature',
value : 'disabled',
@@ -30,3 +30,7 @@ option('xft',
type : 'feature',
value : 'auto',
description : 'Build with xft support')
+option('freetype',
+ type : 'feature',
+ value : 'auto',
+ description : 'Build with freetype support')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]