xref: /aosp_15_r20/external/skia/modules/skparagraph/BUILD.gn (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1# Copyright 2019 Google LLC.
2
3import("../../gn/skia.gni")
4import("../skshaper/skshaper.gni")
5import("../skunicode/skunicode.gni")
6import("skparagraph.gni")
7
8declare_args() {
9  skia_enable_skparagraph = true
10  paragraph_gms_enabled = true
11  paragraph_tests_enabled = true
12  paragraph_bench_enabled = false
13}
14
15if (skia_enable_skparagraph && skia_enable_skshaper && skia_enable_skunicode &&
16    skia_use_harfbuzz) {
17  config("public_config") {
18    defines = [ "SK_ENABLE_PARAGRAPH" ]
19    include_dirs = [
20      "include",
21      "utils",
22    ]
23  }
24
25  skia_component("skparagraph") {
26    import("skparagraph.gni")
27    public_configs = [ ":public_config" ]
28    public = skparagraph_public
29    sources = skparagraph_sources
30    public_deps = [
31      "../..:skia",
32      "../skunicode",
33    ]
34    deps = [ "../skshaper" ]
35  }
36
37  config("utils_config") {
38    include_dirs = [ "utils" ]
39  }
40
41  if (defined(is_skia_standalone) && skia_enable_tools) {
42    import("skparagraph.gni")
43    skia_source_set("utils") {
44      public_configs = [ ":utils_config" ]
45      configs = [ "../../:skia_private" ]
46      sources = skparagraph_utils
47      deps = [
48        "../..:skia",
49        "../skshaper",
50      ]
51    }
52
53    skia_source_set("gm") {
54      if (paragraph_gms_enabled &&
55          (skia_use_icu || skia_use_libgrapheme || skia_use_icu4x)) {
56        testonly = true
57        sources = [ "gm/simple_gm.cpp" ]
58        deps = [
59          ":skparagraph",
60          "../..:gpu_tool_utils",
61          "../..:skia",
62          "../skshaper",
63          "../skunicode",
64        ]
65      } else {
66        sources = []
67      }
68    }
69
70    skia_source_set("tests") {
71      if (paragraph_tests_enabled &&
72          (skia_use_icu || skia_use_libgrapheme || skia_use_icu4x)) {
73        testonly = true
74        sources = skparagraph_tests
75        deps = [
76          ":skparagraph",
77          "../..:skia",
78          "../..:test",
79          "../skshaper",
80          "../skunicode",
81        ]
82      } else {
83        sources = []
84      }
85    }
86
87    skia_source_set("bench") {
88      if (paragraph_bench_enabled &&
89          (skia_use_icu || skia_use_libgrapheme || skia_use_icu4x)) {
90        testonly = true
91        sources = [ "bench/ParagraphBench.cpp" ]
92        deps = [
93          ":skparagraph",
94          "../..:skia",
95          "../skshaper",
96          "../skunicode",
97        ]
98      } else {
99        sources = []
100      }
101    }
102
103    skia_source_set("slides") {
104      if (skia_use_icu || skia_use_libgrapheme) {
105        testonly = true
106        sources = [ "slides/ParagraphSlide.cpp" ]
107        deps = [
108          ":skparagraph",
109          ":utils",
110          "../..:skia",
111          "../skshaper",
112          "../skunicode",
113        ]
114      }
115    }
116  }
117} else {
118  group("skparagraph") {
119  }
120  group("utils") {
121  }
122  group("gm") {
123  }
124  group("tests") {
125  }
126  group("bench") {
127  }
128  group("slides") {
129  }
130}
131