skia2/gyp/fontconfig.gyp

200 lines
6.7 KiB
Plaintext
Raw Normal View History

# GYP for fontconfig (
#
# This has been tested on Windows and Mac.
# This library is native to Linux, so build from source is not necessary.
#
# Additional files for building under Windows are provided here: (LGPL)
# http://comments.gmane.org/gmane.comp.fonts.fontconfig/4438
{
'variables': {
'skia_warnings_as_errors': 0,
},
'targets': [
{
'target_name': 'fontconfig',
'type': 'none',
'dependencies': [
'libfontconfig',
],
'direct_dependent_settings': {
'include_dirs': [
'../third_party/externals/fontconfig',
],
},
'conditions': [
['skia_os == "mac"', {
'dependencies': [
'fontconfig_setup',
],
}],
],
},
{
'target_name': 'libfontconfig',
'type': 'static_library',
'dependencies': [
'freetype.gyp:freetype_poppler',
],
'include_dirs' : [
'../third_party/externals/fontconfig',
'../third_party/fontconfig/config',
'../third_party/fontconfig/config/src',
],
'sources': [
'../third_party/externals/fontconfig/src/fcatomic.c',
'../third_party/externals/fontconfig/src/fcblanks.c',
'../third_party/externals/fontconfig/src/fccache.c',
'../third_party/externals/fontconfig/src/fccfg.c',
'../third_party/externals/fontconfig/src/fccharset.c',
'../third_party/externals/fontconfig/src/fccompat.c',
'../third_party/externals/fontconfig/src/fcdbg.c',
'../third_party/externals/fontconfig/src/fcdefault.c',
'../third_party/externals/fontconfig/src/fcdir.c',
'../third_party/externals/fontconfig/src/fcfreetype.c',
'../third_party/externals/fontconfig/src/fcfs.c',
'../third_party/externals/fontconfig/src/fchash.c',
'../third_party/externals/fontconfig/src/fcinit.c',
'../third_party/externals/fontconfig/src/fclang.c',
'../third_party/externals/fontconfig/src/fclist.c',
'../third_party/externals/fontconfig/src/fcmatch.c',
'../third_party/externals/fontconfig/src/fcmatrix.c',
'../third_party/externals/fontconfig/src/fcname.c',
'../third_party/externals/fontconfig/src/fcobjs.c',
'../third_party/externals/fontconfig/src/fcpat.c',
'../third_party/externals/fontconfig/src/fcserialize.c',
'../third_party/externals/fontconfig/src/fcstat.c',
'../third_party/externals/fontconfig/src/fcstr.c',
'../third_party/externals/fontconfig/src/fcxml.c',
'../third_party/externals/fontconfig/src/ftglue.c',
],
'defines': [
'HAVE_CONFIG_H',
],
'cflags': [
'-fPIC',
],
'direct_dependent_settings': {
'include_dirs': [
'../third_party/externals/fontconfig',
],
},
'conditions': [
['skia_os == "mac"', {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/fontconfig_config',
'../third_party/fontconfig/config/mac',
'../third_party/fontconfig/config/mac/src',
],
'dependencies': [
'fontconfig_config_template',
],
'libraries': [
'$(SDKROOT)/usr/lib/libexpat.dylib',
],
'xcode_settings': {
'DYLIB_INSTALL_NAME_BASE': '@executable_path',
},
}],
['skia_os == "win"', {
'include_dirs': [
'../third_party/fontconfig/config/windows',
'../third_party/fontconfig/config/windows/src',
],
'sources!': [
'../third_party/externals/fontconfig/src/fccompat.c',
'../third_party/externals/fontconfig/src/fcxml.c',
],
'defines': [
# inline is not recognized in C and has to be __inline
'inline=__inline',
],
}],
],
},
],
'conditions': [
['skia_os == "mac"', {
'variables': {
'cachedir': '<(PRODUCT_DIR)/fontconfig/cache',
'configdir': '<(PRODUCT_DIR)/fontconfig/etc',
},
'targets': [
{
'target_name': 'fontconfig_config_template',
'type': 'none',
'actions': [{
'action_name': 'fontconfig_config_template',
'message': 'Generating fontconfig header',
'inputs': [
'../third_party/fontconfig/process-template.py',
'../third_party/fontconfig/config/mac/config.h.template',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/fontconfig_config/config.h',
],
'action': [
'python', '../third_party/fontconfig/process-template.py',
'-i', '../third_party/fontconfig/config/mac/config.h.template',
'-o', '<@(_outputs)',
'-p', '@FC_CACHEDIR@', '<(cachedir)',
'-p', '@FONTCONFIG_PATH@', '<(configdir)',
],
}],
}, {
'target_name': 'fontconfig_setup',
'type': 'none',
'dependencies': [
'fc-cache',
],
'actions': [{
'action_name': 'fontconfig_config_file',
'message': 'Generating font.conf',
'inputs': [
'../third_party/fontconfig/process-template.py',
'../third_party/externals/fontconfig/fonts.conf.in',
],
'outputs': [ '<(configdir)/fonts.conf', ],
'action': [
'python', '../third_party/fontconfig/process-template.py',
'-i', '../third_party/externals/fontconfig/fonts.conf.in',
'-o', '<(configdir)/fonts.conf',
'-p', '@FC_CACHEDIR@', '<(cachedir)',
'-k', '@FC_DEFAULT_FONTS@', '/System/Library/Fonts',
'-k', '@FC_FONTPATH@', '<dir>/Library/Fonts</dir>',
'-p', '@CONFIGDIR@', '<(configdir)/conf.d',
'-k', '@PACKAGE@', 'fontconfig',
'-k', '@VERSION@', '2.11.0',
],
}, {
'action_name': 'populate_fontconfig_cache',
'message':
'Generating fontconfig cache (this will take a few minutes).',
'inputs': [
'<(PRODUCT_DIR)/fc-cache',
'<(configdir)/fonts.conf',
],
'outputs': [ '<(cachedir)/CACHEDIR.TAG', ],
'action': [ '<(PRODUCT_DIR)/fc-cache', '-s', '-f', '-v', ],
}],
},
{
'target_name': 'fc-cache',
'type': 'executable',
'dependencies': [
'libfontconfig',
],
'libraries':[
'$(SDKROOT)/usr/lib/libexpat.dylib',
],
'sources': [
'../third_party/externals/fontconfig/fc-cache/fc-cache.c',
],
},
],
}],
],
}