skia2/gyp/freetype.gyp
bungeman 5ec443c506 Clean up FreeType code for 2.3.8.
We already require FreeType 2.3.8 in order to compile and run.
Make this requirement explicit and take advantage of it.

Review URL: https://codereview.chromium.org/748063003
2014-11-21 13:18:34 -08:00

139 lines
4.4 KiB
Python

# Target for building freetype.
{
'targets': [
{
'target_name': 'freetype',
'type': 'none',
'conditions': [
[ 'skia_freetype_static',
{
'dependencies': [
'freetype_static'
],
'export_dependent_settings': [
'freetype_static'
],
'conditions': [
[ 'skia_os in ["android", "nacl"]',
{
'direct_dependent_settings': {
'defines': [
# Both Android and NaCl provide at least FreeType 2.4.0
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400',
'SK_CAN_USE_DLOPEN=0',
],
}
}
]
],
}, { # (not skia_freetype_static)
# dynamic linking depends on the OS:
'conditions': [
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]',
{
'direct_dependent_settings': {
'include_dirs' : [
'/usr/include/freetype2',
],
'link_settings': {
'libraries': [
'-lfreetype',
],
},
'defines': [
# Skia's FreeType port requires at least FreeType 2.3.8
# for building and at runtime.
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020308',
'SK_CAN_USE_DLOPEN=1',
],
}
},
],
[ 'skia_android_framework',
{
'direct_dependent_settings': {
'defines': [
# Android provides at least FreeType 2.4.0
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400',
'SK_CAN_USE_DLOPEN=0',
],
},
'include_dirs': [
'external/expat/lib',
'external/freetype/include',
],
'libraries': [
'-lft2',
],
}
],
],
}
],
],
},
{
'target_name': 'freetype_static',
'type': 'static_library',
'standalone_static_library': 1,
'dependencies': [
# we are dependent upon PNG for color emoji glyphs
'libpng.gyp:libpng',
],
'includes': [
# common freetype sources needed for both the base Skia build and the
# libpoppler build for testing only
'freetype.gypi',
],
'include_dirs': [
'../third_party/freetype/include_overrides',
],
'direct_dependent_settings': {
'include_dirs': [
'../third_party/freetype/include_overrides',
],
},
'conditions': [
[ 'skia_os == "android"', {
# These flags are used by the Android OS. They are probably overkill
# for Skia, but we add them for consistency.
'cflags': [
'-W',
'-Wall',
'-fPIC',
'-DPIC',
'-DDARWIN_NO_CARBON',
'-DFT2_BUILD_LIBRARY',
'-O2',
],
}],
],
},
{
'target_name': 'freetype_poppler',
'type': 'static_library',
'standalone_static_library': 1,
'includes': [
'freetype.gypi',
],
'sources': [
# additional components used by poppler
'../third_party/externals/freetype/src/base/ftbdf.c',
'../third_party/externals/freetype/src/base/ftpfr.c',
'../third_party/externals/freetype/src/bdf/bdf.c',
'../third_party/externals/freetype/src/cid/type1cid.c',
'../third_party/externals/freetype/src/pcf/pcf.c',
'../third_party/externals/freetype/src/pfr/pfr.c',
'../third_party/externals/freetype/src/psaux/psaux.c',
'../third_party/externals/freetype/src/type1/type1.c',
'../third_party/externals/freetype/src/type42/type42.c',
'../third_party/externals/freetype/src/winfonts/winfnt.c',
'../third_party/externals/freetype/src/gzip/ftgzip.c',
'../third_party/externals/freetype/src/lzw/ftlzw.c',
],
},
],
}