1cb93a386Sopenharmony_ci# Copyright 2021 Google LLC.
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ciimport("../../gn/skia.gni")
4cb93a386Sopenharmony_ciimport("../../modules/skshaper/skshaper.gni")
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_cideclare_args() {
7cb93a386Sopenharmony_ci  skia_enable_sktext = true
8cb93a386Sopenharmony_ci  text_gms_enabled = true
9cb93a386Sopenharmony_ci  text_tests_enabled = true
10cb93a386Sopenharmony_ci  text_bench_enabled = false
11cb93a386Sopenharmony_ci}
12cb93a386Sopenharmony_ci
13cb93a386Sopenharmony_ciif (skia_enable_sktext && skia_enable_skshaper && skia_use_icu &&
14cb93a386Sopenharmony_ci    skia_use_harfbuzz) {
15cb93a386Sopenharmony_ci  config("public_config") {
16cb93a386Sopenharmony_ci    include_dirs = [ "include" ]
17cb93a386Sopenharmony_ci  }
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_ci  component("sktext") {
20cb93a386Sopenharmony_ci    import("sktext.gni")
21cb93a386Sopenharmony_ci    public_configs = [ ":public_config" ]
22cb93a386Sopenharmony_ci    public = sktext_public
23cb93a386Sopenharmony_ci    sources = sktext_sources
24cb93a386Sopenharmony_ci    if (is_ohos) {
25cb93a386Sopenharmony_ci      external_deps = [ "hitrace:hitrace_meter" ]
26cb93a386Sopenharmony_ci    }
27cb93a386Sopenharmony_ci    if (use_oh_skia) {
28cb93a386Sopenharmony_ci      deps = [
29cb93a386Sopenharmony_ci        "../..:skia_canvaskit",
30cb93a386Sopenharmony_ci        "../../modules/skshaper",
31cb93a386Sopenharmony_ci        "../../modules/skunicode",
32cb93a386Sopenharmony_ci      ]
33cb93a386Sopenharmony_ci    } else {
34cb93a386Sopenharmony_ci      deps = [
35cb93a386Sopenharmony_ci        "../..:skia",
36cb93a386Sopenharmony_ci        "../../modules/skshaper",
37cb93a386Sopenharmony_ci        "../../modules/skunicode",
38cb93a386Sopenharmony_ci      ]
39cb93a386Sopenharmony_ci    }
40cb93a386Sopenharmony_ci  }
41cb93a386Sopenharmony_ci
42cb93a386Sopenharmony_ci  if (defined(is_skia_standalone) && skia_enable_tools) {
43cb93a386Sopenharmony_ci    source_set("gm") {
44cb93a386Sopenharmony_ci      if (text_gms_enabled) {
45cb93a386Sopenharmony_ci        testonly = true
46cb93a386Sopenharmony_ci        sources = []
47cb93a386Sopenharmony_ci        deps = [
48cb93a386Sopenharmony_ci          ":sktext",
49cb93a386Sopenharmony_ci          "../..:gpu_tool_utils",
50cb93a386Sopenharmony_ci          "../..:skia",
51cb93a386Sopenharmony_ci          "../../modules/skshaper",
52cb93a386Sopenharmony_ci        ]
53cb93a386Sopenharmony_ci      } else {
54cb93a386Sopenharmony_ci        sources = []
55cb93a386Sopenharmony_ci      }
56cb93a386Sopenharmony_ci    }
57cb93a386Sopenharmony_ci
58cb93a386Sopenharmony_ci    source_set("tests") {
59cb93a386Sopenharmony_ci      if (text_tests_enabled) {
60cb93a386Sopenharmony_ci        testonly = true
61cb93a386Sopenharmony_ci        sources = [
62cb93a386Sopenharmony_ci          "tests/FontResolvedText.cpp",
63cb93a386Sopenharmony_ci          "tests/SelectableText.cpp",
64cb93a386Sopenharmony_ci          "tests/ShapedText.cpp",
65cb93a386Sopenharmony_ci          "tests/UnicodeText.cpp",
66cb93a386Sopenharmony_ci          "tests/WrappedText.cpp",
67cb93a386Sopenharmony_ci        ]
68cb93a386Sopenharmony_ci        if (is_ohos) {
69cb93a386Sopenharmony_ci          external_deps = [ "hitrace:hitrace_meter" ]
70cb93a386Sopenharmony_ci        }
71cb93a386Sopenharmony_ci        if (use_oh_skia) {
72cb93a386Sopenharmony_ci          deps = [
73cb93a386Sopenharmony_ci            ":sktext",
74cb93a386Sopenharmony_ci            "../..:gpu_tool_utils",
75cb93a386Sopenharmony_ci          ]
76cb93a386Sopenharmony_ci        } else {
77cb93a386Sopenharmony_ci          deps = [
78cb93a386Sopenharmony_ci            ":sktext",
79cb93a386Sopenharmony_ci            "../..:gpu_tool_utils",
80cb93a386Sopenharmony_ci            "../..:skia",
81cb93a386Sopenharmony_ci            "../../modules/skshaper",
82cb93a386Sopenharmony_ci          ]
83cb93a386Sopenharmony_ci        }
84cb93a386Sopenharmony_ci      } else {
85cb93a386Sopenharmony_ci        sources = []
86cb93a386Sopenharmony_ci      }
87cb93a386Sopenharmony_ci    }
88cb93a386Sopenharmony_ci
89cb93a386Sopenharmony_ci    source_set("bench") {
90cb93a386Sopenharmony_ci      if (text_bench_enabled) {
91cb93a386Sopenharmony_ci        testonly = true
92cb93a386Sopenharmony_ci        sources = []
93cb93a386Sopenharmony_ci        deps = [
94cb93a386Sopenharmony_ci          ":sktext",
95cb93a386Sopenharmony_ci          "../..:skia",
96cb93a386Sopenharmony_ci          "../../modules/skshaper",
97cb93a386Sopenharmony_ci        ]
98cb93a386Sopenharmony_ci      } else {
99cb93a386Sopenharmony_ci        sources = []
100cb93a386Sopenharmony_ci      }
101cb93a386Sopenharmony_ci    }
102cb93a386Sopenharmony_ci
103cb93a386Sopenharmony_ci    source_set("samples") {
104cb93a386Sopenharmony_ci      testonly = true
105cb93a386Sopenharmony_ci      sources = [
106cb93a386Sopenharmony_ci        "editor/Cursor.cpp",
107cb93a386Sopenharmony_ci        "editor/Editor.cpp",
108cb93a386Sopenharmony_ci        "editor/Mouse.cpp",
109cb93a386Sopenharmony_ci        "editor/Selection.cpp",
110cb93a386Sopenharmony_ci        "editor/Texts.cpp",
111cb93a386Sopenharmony_ci        "samples/Text.cpp",
112cb93a386Sopenharmony_ci      ]
113cb93a386Sopenharmony_ci      deps = [
114cb93a386Sopenharmony_ci        ":sktext",
115cb93a386Sopenharmony_ci        "../..:skia",
116cb93a386Sopenharmony_ci        "../../modules/skshaper",
117cb93a386Sopenharmony_ci      ]
118cb93a386Sopenharmony_ci    }
119cb93a386Sopenharmony_ci
120cb93a386Sopenharmony_ci    skia_source_set("text_editor") {
121cb93a386Sopenharmony_ci      testonly = true
122cb93a386Sopenharmony_ci      sources = [
123cb93a386Sopenharmony_ci        "editor/App.cpp",
124cb93a386Sopenharmony_ci        "editor/Cursor.cpp",
125cb93a386Sopenharmony_ci        "editor/Editor.cpp",
126cb93a386Sopenharmony_ci        "editor/Mouse.cpp",
127cb93a386Sopenharmony_ci        "editor/Selection.cpp",
128cb93a386Sopenharmony_ci        "editor/Texts.cpp",
129cb93a386Sopenharmony_ci      ]
130cb93a386Sopenharmony_ci      public_deps = [ "../..:sk_app" ]
131cb93a386Sopenharmony_ci      deps = [ ":sktext" ]
132cb93a386Sopenharmony_ci    }
133cb93a386Sopenharmony_ci  }
134cb93a386Sopenharmony_ci} else {
135cb93a386Sopenharmony_ci  group("sktext") {
136cb93a386Sopenharmony_ci  }
137cb93a386Sopenharmony_ci  group("gm") {
138cb93a386Sopenharmony_ci  }
139cb93a386Sopenharmony_ci  group("tests") {
140cb93a386Sopenharmony_ci  }
141cb93a386Sopenharmony_ci  group("bench") {
142cb93a386Sopenharmony_ci  }
143cb93a386Sopenharmony_ci  group("samples") {
144cb93a386Sopenharmony_ci  }
145cb93a386Sopenharmony_ci}
146