• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018 Google Inc.
2#
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import("../../gn/skia.gni")
7import("skshaper.gni")
8
9if (skia_enable_skshaper) {
10  config("public_config") {
11    include_dirs = [ "include" ]
12    defines = [ "SK_SHAPER_PRIMITIVE_AVAILABLE" ]
13    if (is_component_build) {
14      defines += [ "SKSHAPER_DLL" ]
15    }
16    if (skia_use_fonthost_mac) {
17      defines += [ "SK_SHAPER_CORETEXT_AVAILABLE" ]
18    }
19    if (skia_use_harfbuzz) {
20      defines += [ "SK_SHAPER_HARFBUZZ_AVAILABLE" ]
21    }
22    if (skia_enable_skunicode) {
23      defines += [ "SK_SHAPER_UNICODE_AVAILABLE" ]
24    }
25  }
26
27  component("skshaper") {
28    check_includes = false
29    public_configs = [ ":public_config" ]
30    public = skia_shaper_public
31    if (!use_oh_skia) {
32      deps = [ "../..:skia" ]
33    } else {
34      include_dirs = [ "${skia_root_dir}" ]
35      deps = []
36    }
37    defines = [ "SKSHAPER_IMPLEMENTATION=1" ]
38    sources = skia_shaper_primitive_sources
39    if (skia_use_fonthost_mac) {
40      sources += skia_shaper_coretext_sources
41      if (is_mac) {
42        frameworks = [ "ApplicationServices.framework" ]
43      }
44
45      if (is_ios) {
46        frameworks = [
47          "CoreFoundation.framework",
48          "CoreText.framework",
49        ]
50      }
51    }
52    if (skia_enable_skunicode) {
53      sources += skia_shaper_skunicode_sources
54      if (!use_oh_skia) {
55        deps += [ "../skunicode" ]
56      } else {
57        defines += [
58          "SK_UNICODE_AVAILABLE",
59          "SK_UNICODE_ICU_IMPLEMENTATION",
60        ]
61      }
62    }
63    if (skia_use_harfbuzz && skia_enable_skunicode) {
64      sources += skia_shaper_harfbuzz_sources
65      if (!use_oh_skia) {
66        deps += [
67          "../skunicode",
68          "${skia_third_party_dir}/harfbuzz",
69        ]
70      } else {
71        if (skia_use_system_lib) {
72          external_deps = [ "harfbuzz:harfbuzz_static_for_skia" ]
73        } else {
74          deps += [ "${skia_third_party_dir}/harfbuzz" ]
75        }
76      }
77    }
78    configs += [ "../../:skia_private" ]
79  }
80
81  if (defined(is_skia_standalone) && skia_enable_tools) {
82    skia_source_set("tests") {
83      if (skia_enable_skshaper_tests) {
84        testonly = true
85        sources = skia_shaper_tests
86        deps = [
87          ":skshaper",
88          "../..:skia",
89          "../..:test",
90          "../skunicode",
91        ]
92      } else {
93        sources = []
94      }
95      if (is_ohos) {
96        external_deps = [ "hitrace:hitrace_meter" ]
97        if (!build_ohos_sdk && !is_arkui_x) {
98          external_deps += [ "init:libbegetutil" ]
99          if (defined(defines)) {
100            defines += [ "NOT_BUILD_FOR_OHOS_SDK" ]
101          } else {
102            defines = [ "NOT_BUILD_FOR_OHOS_SDK" ]
103          }
104        }
105      }
106      if (is_arkui_x) {
107        deps += [ "//third_party/bounds_checking_function:libsec_static" ]
108      } else if (is_ohos) {
109        if (is_component_build) {
110          external_deps += [ "bounds_checking_function:libsec_shared" ]
111        } else {
112          external_deps += [ "bounds_checking_function:libsec_static" ]
113        }
114      }
115    }
116  }
117} else {
118  group("skshaper") {
119  }
120  group("tests") {
121  }
122}
123