# Copyright 2015 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# 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': [
        # TODO: merge this back in here?
        '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',
          ],
        }],
      ],
    },
  ],
}
