1cb93a386Sopenharmony_ci# Copyright 2018 Google Inc.
2cb93a386Sopenharmony_ci#
3cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
4cb93a386Sopenharmony_ci# found in the LICENSE file.
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_ciimport("../../gn/skia.gni")
7cb93a386Sopenharmony_ciimport("skshaper.gni")
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ciif (skia_enable_skshaper) {
10cb93a386Sopenharmony_ci  config("public_config") {
11cb93a386Sopenharmony_ci    include_dirs = [ "include" ]
12cb93a386Sopenharmony_ci    defines = []
13cb93a386Sopenharmony_ci    if (is_component_build) {
14cb93a386Sopenharmony_ci      defines += [ "SKSHAPER_DLL" ]
15cb93a386Sopenharmony_ci    }
16cb93a386Sopenharmony_ci    if (skia_use_fonthost_mac) {
17cb93a386Sopenharmony_ci      defines += [ "SK_SHAPER_CORETEXT_AVAILABLE" ]
18cb93a386Sopenharmony_ci    }
19cb93a386Sopenharmony_ci    if (skia_use_harfbuzz && skia_enable_skunicode) {
20cb93a386Sopenharmony_ci      defines += [ "SK_SHAPER_HARFBUZZ_AVAILABLE" ]
21cb93a386Sopenharmony_ci    }
22cb93a386Sopenharmony_ci  }
23cb93a386Sopenharmony_ci
24cb93a386Sopenharmony_ci  component("skshaper") {
25cb93a386Sopenharmony_ci    check_includes = false
26cb93a386Sopenharmony_ci    public_configs = [ ":public_config" ]
27cb93a386Sopenharmony_ci    public = skia_shaper_public
28cb93a386Sopenharmony_ci    if (!use_oh_skia) {
29cb93a386Sopenharmony_ci      deps = [ "../..:skia" ]
30cb93a386Sopenharmony_ci    } else {
31cb93a386Sopenharmony_ci      include_dirs = [ "//third_party/skia" ]
32cb93a386Sopenharmony_ci      deps = []
33cb93a386Sopenharmony_ci    }
34cb93a386Sopenharmony_ci    defines = [ "SKSHAPER_IMPLEMENTATION=1" ]
35cb93a386Sopenharmony_ci    if (use_oh_skia) {
36cb93a386Sopenharmony_ci      defines += [ "SK_UNICODE_AVAILABLE" ]
37cb93a386Sopenharmony_ci    }
38cb93a386Sopenharmony_ci    sources = skia_shaper_primitive_sources
39cb93a386Sopenharmony_ci    if (skia_use_fonthost_mac) {
40cb93a386Sopenharmony_ci      sources += skia_shaper_coretext_sources
41cb93a386Sopenharmony_ci      if (is_mac) {
42cb93a386Sopenharmony_ci        frameworks = [ "ApplicationServices.framework" ]
43cb93a386Sopenharmony_ci      }
44cb93a386Sopenharmony_ci
45cb93a386Sopenharmony_ci      if (is_ios) {
46cb93a386Sopenharmony_ci        frameworks = [
47cb93a386Sopenharmony_ci          "CoreFoundation.framework",
48cb93a386Sopenharmony_ci          "CoreText.framework",
49cb93a386Sopenharmony_ci        ]
50cb93a386Sopenharmony_ci      }
51cb93a386Sopenharmony_ci    }
52cb93a386Sopenharmony_ci    if (skia_use_harfbuzz && skia_enable_skunicode) {
53cb93a386Sopenharmony_ci      sources += skia_shaper_harfbuzz_sources
54cb93a386Sopenharmony_ci      deps += [
55cb93a386Sopenharmony_ci        "${skia_third_party_dir}/harfbuzz",
56cb93a386Sopenharmony_ci        "../skunicode",
57cb93a386Sopenharmony_ci      ]
58cb93a386Sopenharmony_ci      if (use_oh_skia) {
59cb93a386Sopenharmony_ci        deps -= [ "../skunicode" ]
60cb93a386Sopenharmony_ci      }
61cb93a386Sopenharmony_ci    }
62cb93a386Sopenharmony_ci    configs += [
63cb93a386Sopenharmony_ci      "../../:skia_private",
64cb93a386Sopenharmony_ci      "../../third_party/icu/config:no_cxx",
65cb93a386Sopenharmony_ci    ]
66cb93a386Sopenharmony_ci  }
67cb93a386Sopenharmony_ci} else {
68cb93a386Sopenharmony_ci  group("skshaper") {
69cb93a386Sopenharmony_ci  }
70cb93a386Sopenharmony_ci}
71