# Copyright 2018 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("../../gn/skia.gni")
import("skshaper.gni")

if (skia_enable_skshaper) {
  config("public_config") {
    include_dirs = [ "include" ]
    defines = [ "SK_SHAPER_PRIMITIVE_AVAILABLE" ]
    if (is_component_build) {
      defines += [ "SKSHAPER_DLL" ]
    }
    if (skia_use_fonthost_mac) {
      defines += [ "SK_SHAPER_CORETEXT_AVAILABLE" ]
    }
    if (skia_use_harfbuzz) {
      defines += [ "SK_SHAPER_HARFBUZZ_AVAILABLE" ]
    }
    if (skia_enable_skunicode) {
      defines += [ "SK_SHAPER_UNICODE_AVAILABLE" ]
    }
  }

  skia_component("skshaper") {
    check_includes = false
    public_configs = [ ":public_config" ]
    public = skia_shaper_public
    deps = [ "../..:skia" ]
    defines = [ "SKSHAPER_IMPLEMENTATION=1" ]
    sources = skia_shaper_primitive_sources
    if (skia_use_fonthost_mac) {
      sources += skia_shaper_coretext_sources
      if (is_mac) {
        frameworks = [ "ApplicationServices.framework" ]
      }

      if (is_ios) {
        frameworks = [
          "CoreFoundation.framework",
          "CoreText.framework",
        ]
      }
    }
    if (skia_enable_skunicode) {
      sources += skia_shaper_skunicode_sources
      deps += [ "../skunicode" ]
    }
    if (skia_use_harfbuzz && skia_enable_skunicode) {
      sources += skia_shaper_harfbuzz_sources
      deps += [
        "../skunicode",
        "//third_party/harfbuzz",
      ]
    }
    configs = [ "../../:skia_private" ]
  }

  if (defined(is_skia_standalone) && skia_enable_tools) {
    skia_source_set("tests") {
      if (skia_enable_skshaper_tests) {
        testonly = true
        sources = skia_shaper_tests
        deps = [
          ":skshaper",
          "../..:skia",
          "../..:test",
          "../skunicode",
        ]
      } else {
        sources = []
      }
    }
  }
} else {
  group("skshaper") {
  }
  group("tests") {
  }
}
