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_ci
8cb93a386Sopenharmony_ciif (skia_enable_skottie) {
9cb93a386Sopenharmony_ci  config("public_config") {
10cb93a386Sopenharmony_ci    defines = [ "SK_ENABLE_SKOTTIE" ]
11cb93a386Sopenharmony_ci    include_dirs = [ "include" ]
12cb93a386Sopenharmony_ci  }
13cb93a386Sopenharmony_ci
14cb93a386Sopenharmony_ci  skia_component("skottie") {
15cb93a386Sopenharmony_ci    check_includes = false
16cb93a386Sopenharmony_ci    import("skottie.gni")
17cb93a386Sopenharmony_ci    public_configs = [ ":public_config" ]
18cb93a386Sopenharmony_ci    public = skia_skottie_public
19cb93a386Sopenharmony_ci    sources = skia_skottie_sources
20cb93a386Sopenharmony_ci    configs = [ "../../:skia_private" ]
21cb93a386Sopenharmony_ci    deps = [
22cb93a386Sopenharmony_ci      "../..:skia",
23cb93a386Sopenharmony_ci      "../skresources",
24cb93a386Sopenharmony_ci      "../sksg",
25cb93a386Sopenharmony_ci      "../skshaper",
26cb93a386Sopenharmony_ci      "../skunicode",
27cb93a386Sopenharmony_ci    ]
28cb93a386Sopenharmony_ci    if (is_ohos) {
29cb93a386Sopenharmony_ci      external_deps = [ "hitrace:hitrace_meter" ]
30cb93a386Sopenharmony_ci    }
31cb93a386Sopenharmony_ci    if (use_oh_skia) {
32cb93a386Sopenharmony_ci      deps -= [ "../..:skia" ]
33cb93a386Sopenharmony_ci    }
34cb93a386Sopenharmony_ci  }
35cb93a386Sopenharmony_ci
36cb93a386Sopenharmony_ci  if (defined(is_skia_standalone)) {
37cb93a386Sopenharmony_ci    config("utils_config") {
38cb93a386Sopenharmony_ci      include_dirs = [ "utils" ]
39cb93a386Sopenharmony_ci    }
40cb93a386Sopenharmony_ci    skia_source_set("utils") {
41cb93a386Sopenharmony_ci      check_includes = false
42cb93a386Sopenharmony_ci      testonly = true
43cb93a386Sopenharmony_ci
44cb93a386Sopenharmony_ci      public_configs = [ ":utils_config" ]
45cb93a386Sopenharmony_ci      configs = [ "../../:skia_private" ]
46cb93a386Sopenharmony_ci
47cb93a386Sopenharmony_ci      sources = [ "utils/SkottieUtils.cpp" ]
48cb93a386Sopenharmony_ci      deps = [
49cb93a386Sopenharmony_ci        ":skottie",
50cb93a386Sopenharmony_ci        "../..:skia",
51cb93a386Sopenharmony_ci      ]
52cb93a386Sopenharmony_ci      if (use_oh_skia) {
53cb93a386Sopenharmony_ci        deps -= [ "../..:skia" ]
54cb93a386Sopenharmony_ci      }
55cb93a386Sopenharmony_ci    }
56cb93a386Sopenharmony_ci
57cb93a386Sopenharmony_ci    if (skia_enable_tools) {
58cb93a386Sopenharmony_ci      skia_source_set("tests") {
59cb93a386Sopenharmony_ci        testonly = true
60cb93a386Sopenharmony_ci
61cb93a386Sopenharmony_ci        configs = [
62cb93a386Sopenharmony_ci          "../..:skia_private",
63cb93a386Sopenharmony_ci          "../..:tests_config",
64cb93a386Sopenharmony_ci        ]
65cb93a386Sopenharmony_ci        sources = [
66cb93a386Sopenharmony_ci          "src/SkottieTest.cpp",
67cb93a386Sopenharmony_ci          "tests/AudioLayer.cpp",
68cb93a386Sopenharmony_ci          "tests/Expression.cpp",
69cb93a386Sopenharmony_ci          "tests/Image.cpp",
70cb93a386Sopenharmony_ci          "tests/Keyframe.cpp",
71cb93a386Sopenharmony_ci          "tests/Text.cpp",
72cb93a386Sopenharmony_ci        ]
73cb93a386Sopenharmony_ci
74cb93a386Sopenharmony_ci        if (is_ohos) {
75cb93a386Sopenharmony_ci          external_deps = [ "hitrace:hitrace_meter" ]
76cb93a386Sopenharmony_ci        }
77cb93a386Sopenharmony_ci        deps = [
78cb93a386Sopenharmony_ci          ":skottie",
79cb93a386Sopenharmony_ci          "../..:skia",
80cb93a386Sopenharmony_ci          "../..:test",
81cb93a386Sopenharmony_ci          "../skshaper",
82cb93a386Sopenharmony_ci        ]
83cb93a386Sopenharmony_ci        if (use_oh_skia) {
84cb93a386Sopenharmony_ci          deps -= [ "../..:skia" ]
85cb93a386Sopenharmony_ci        }
86cb93a386Sopenharmony_ci      }
87cb93a386Sopenharmony_ci
88cb93a386Sopenharmony_ci      skia_source_set("fuzz") {
89cb93a386Sopenharmony_ci        check_includes = false
90cb93a386Sopenharmony_ci        testonly = true
91cb93a386Sopenharmony_ci
92cb93a386Sopenharmony_ci        configs = [ "../..:skia_private" ]
93cb93a386Sopenharmony_ci        include_dirs = [
94cb93a386Sopenharmony_ci          "../../tools",
95cb93a386Sopenharmony_ci          "../../tools/flags",
96cb93a386Sopenharmony_ci          "../../tools/fonts",
97cb93a386Sopenharmony_ci        ]
98cb93a386Sopenharmony_ci        sources = [
99cb93a386Sopenharmony_ci          "../../tools/Resources.cpp",
100cb93a386Sopenharmony_ci          "../../tools/fonts/TestFontMgr.cpp",
101cb93a386Sopenharmony_ci          "../../tools/fonts/TestSVGTypeface.cpp",
102cb93a386Sopenharmony_ci          "../../tools/fonts/TestTypeface.cpp",
103cb93a386Sopenharmony_ci          "fuzz/FuzzSkottieJSON.cpp",
104cb93a386Sopenharmony_ci        ]
105cb93a386Sopenharmony_ci
106cb93a386Sopenharmony_ci        deps = [
107cb93a386Sopenharmony_ci          "../..:skia",
108cb93a386Sopenharmony_ci          "../svg",
109cb93a386Sopenharmony_ci        ]
110cb93a386Sopenharmony_ci
111cb93a386Sopenharmony_ci        public_deps = [ ":skottie" ]
112cb93a386Sopenharmony_ci      }
113cb93a386Sopenharmony_ci
114cb93a386Sopenharmony_ci      skia_source_set("tool") {
115cb93a386Sopenharmony_ci        check_includes = false
116cb93a386Sopenharmony_ci        testonly = true
117cb93a386Sopenharmony_ci
118cb93a386Sopenharmony_ci        configs = [ "../..:skia_private" ]
119cb93a386Sopenharmony_ci        sources = [ "src/SkottieTool.cpp" ]
120cb93a386Sopenharmony_ci
121cb93a386Sopenharmony_ci        deps = [
122cb93a386Sopenharmony_ci          "../..:flags",
123cb93a386Sopenharmony_ci          "../..:skia",
124cb93a386Sopenharmony_ci          "../../experimental/ffmpeg:video_encoder",
125cb93a386Sopenharmony_ci        ]
126cb93a386Sopenharmony_ci
127cb93a386Sopenharmony_ci        public_deps = [
128cb93a386Sopenharmony_ci          ":skottie",
129cb93a386Sopenharmony_ci          ":utils",
130cb93a386Sopenharmony_ci        ]
131cb93a386Sopenharmony_ci      }
132cb93a386Sopenharmony_ci
133cb93a386Sopenharmony_ci      skia_source_set("gm") {
134cb93a386Sopenharmony_ci        check_includes = false
135cb93a386Sopenharmony_ci        testonly = true
136cb93a386Sopenharmony_ci
137cb93a386Sopenharmony_ci        # would be nice to have a gm_config
138cb93a386Sopenharmony_ci        include_dirs = [ "../../gm" ]
139cb93a386Sopenharmony_ci
140cb93a386Sopenharmony_ci        configs = [ "../..:skia_private" ]
141cb93a386Sopenharmony_ci        sources = [
142cb93a386Sopenharmony_ci          "gm/ExternalProperties.cpp",
143cb93a386Sopenharmony_ci          "gm/SkottieGM.cpp",
144cb93a386Sopenharmony_ci        ]
145cb93a386Sopenharmony_ci
146cb93a386Sopenharmony_ci        deps = [
147cb93a386Sopenharmony_ci          ":skottie",
148cb93a386Sopenharmony_ci          ":utils",
149cb93a386Sopenharmony_ci          "../..:gpu_tool_utils",
150cb93a386Sopenharmony_ci          "../..:skia",
151cb93a386Sopenharmony_ci          "../..:tool_utils",
152cb93a386Sopenharmony_ci        ]
153cb93a386Sopenharmony_ci        if (use_oh_skia) {
154cb93a386Sopenharmony_ci          deps -= [ "../..:skia" ]
155cb93a386Sopenharmony_ci        }
156cb93a386Sopenharmony_ci      }
157cb93a386Sopenharmony_ci    }
158cb93a386Sopenharmony_ci  }
159cb93a386Sopenharmony_ci} else {
160cb93a386Sopenharmony_ci  group("skottie") {
161cb93a386Sopenharmony_ci  }
162cb93a386Sopenharmony_ci  group("fuzz") {
163cb93a386Sopenharmony_ci  }
164cb93a386Sopenharmony_ci  group("gm") {
165cb93a386Sopenharmony_ci  }
166cb93a386Sopenharmony_ci  group("tests") {
167cb93a386Sopenharmony_ci  }
168cb93a386Sopenharmony_ci  group("utils") {
169cb93a386Sopenharmony_ci  }
170cb93a386Sopenharmony_ci}
171