静态链接fontconfig:禁用`fonts.conf`文件

时间:2016-09-15 09:28:01

标签: fontconfig

我的应用程序在macOS上静态链接libfontconfig.a,但不附带任何fontconfig配置文件。

每次应用程序启动时,都会发出有关fonts.conf未找到的警告。之后,它回退到默认的fontconfig设置,一切都很好。有没有办法构建或配置fontconfig永不使用fonts.conf,而是始终使用默认设置?

1 个答案:

答案 0 :(得分:0)

我认为,问题本身实际上是要找出这个丢失的文件。

目前您的应用程序的详细信息尚不清楚,例如目标平台Mac OS X或iOS(所以如果OP提供更多信息可以更新此答案)但我认为您已删除fonts.conf不小心和:

根据man fonts-confonline manual的概要。对于Linux fonts.conf通常位于:

/etc/fonts/fonts.conf
/etc/fonts/fonts.dtd
/etc/fonts/conf.d
$XDG_CONFIG_HOME/fontconfig/conf.d
$XDG_CONFIG_HOME/fontconfig/fonts.conf
~/.fonts.conf.d
~/.fonts.conf

但在您的情况下,此文件必须随您的应用程序一起提供,因为Mac OS X和iOS应用程序不依赖于依赖项。所以我试着在我的MacBook上找到一个fonts.conf文件:

sudo /usr/libexec/locate.updatedb
locate fonts.conf

顺便说一下,我在GIMP下找到了它:

/Applications/GIMP.app/Contents/Resources/etc/fonts/fonts.conf

后来我决定在GitHub中搜索它,我发现它在这些存储库下: 1 | https://github.com/EricssonResearch/cerbero/blob/master/data/xcode/templates/ios/GStreamer%20Base.xctemplate/fontconfig/fonts.conf 2 | https://github.com/xil3f/podofo_iOS_sample/blob/cd0be2d225d0bdfbe3c0ec163fb4cce67534825f/fonts/fonts.conf

这些文件几乎相同。

对于源自Linux的跨平台Mac OS X应用程序,它位于:./Contents/Resources/etc/fonts/fonts.conf

对于iOS示例应用,它位于:./fontconfig/fonts.conf./fonts/fonts.conf

因此,这些位置可以让您了解将fonts.conf文件放在项目中的位置。

您可以尝试将这些fonts.conf文件放在上面的必要位置,也可以使用Apple Open Source for OS X提供的sample configuration file

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <dir>/System/Library/Fonts</dir>
    <dir>/Library/Fonts</dir>
    <dir>~/Library/Fonts</dir>
</fontconfig>

P.S。请OP发表评论,以便我们一起改进答案。