BUILD.gn revision 457b42a6398020c3791f62f8c8637653e0d39bcc
1c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Copyright 2016 Google Inc.
2c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein#
3c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Use of this source code is governed by a BSD-style license that can be
4c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# found in the LICENSE file.
5c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
6c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
7457b42a6398020c3791f62f8c8637653e0d39bccmtklein  skia_use_giflib = !is_fuchsia
8eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  skia_use_libwebp = !is_fuchsia
9c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
10c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
111211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
1225c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
13fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
141211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
151211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
161211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
171211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
181211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
191211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
201211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
211211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
221211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
2325c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
241211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
251211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
2625c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
271211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
281211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
29c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
30c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
311211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
32c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_DLL" ]
33c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
34c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
35c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
36c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
37c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
38c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
39c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
40c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
41c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
421211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
43c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
44c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
45c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
4625c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
4725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
48c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
49c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
50c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
51c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
52c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
53c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
542b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
55c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
56c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
57c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
587a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    "src/utils/win",
59c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
60c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
61c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
62150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
63150d113db56dc55b5e78f32febfb1e3b7c350611mtklein  defines = [
649be6866e95127b3ad55badfecd471f67e6f4612bmtklein    "SK_GAMMA_APPLY_TO_A8",
659be6866e95127b3ad55badfecd471f67e6f4612bmtklein
66150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_JPEG_LIBRARY",
67150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_PNG_LIBRARY",
687c1ae7af4ff3912bdb518ac21571225155ece365mtklein
6919a9720978700a24efed8dda7e0935ea2b7338c4halcanary    # TODO(halcanary): make this the default; this is the value Android uses.
7019a9720978700a24efed8dda7e0935ea2b7338c4halcanary    "SK_SFNTLY_SUBSETTER=\"sample/chromium/font_subsetter.h\"",
71150d113db56dc55b5e78f32febfb1e3b7c350611mtklein  ]
72ee269f44d9caf550ef3ddb059664224df7ec3b65mtklein  if (is_linux) {
73ee269f44d9caf550ef3ddb059664224df7ec3b65mtklein    defines += [ "SK_SAMPLES_FOR_X" ]
74ee269f44d9caf550ef3ddb059664224df7ec3b65mtklein  }
75c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
76c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
77c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
79c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
80c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
81c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
82c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
83c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
84c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
85c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
86c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
87c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
88c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
897fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleincore_gypi = exec_script("gn/gypi_to_gn.py",
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          rebase_path("gyp/core.gypi"),
92c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_include_path)=include",
93c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_src_path)=src",
94c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        ],
95c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        "scope",
96c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [ "gyp/core.gypi" ])
97c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
987fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleineffects_gypi = exec_script("gn/gypi_to_gn.py",
99c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           [
100c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             rebase_path("gyp/effects.gypi"),
101c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             "--replace=<(skia_include_path)=include",
102c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             "--replace=<(skia_src_path)=src",
103c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           ],
104c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "scope",
105c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           [ "gyp/effects.gypi" ])
106c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1077fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleingpu_gypi = exec_script("gn/gypi_to_gn.py",
108c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [
109c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         rebase_path("gyp/gpu.gypi"),
110c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_include_path)=include",
111c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_src_path)=src",
112c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       ],
113c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       "scope",
114c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [ "gyp/gpu.gypi" ])
115c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1167fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinopts_gypi = exec_script("gn/gypi_to_gn.py",
117c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [
118c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          rebase_path("gyp/opts.gypi"),
119c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_include_path)=include",
120c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_src_path)=src",
121c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        ],
122c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        "scope",
123c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [ "gyp/opts.gypi" ])
124c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1257fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinpdf_gypi = exec_script("gn/gypi_to_gn.py",
126c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [
127c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         rebase_path("gyp/pdf.gypi"),
128c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_include_path)=include",
129c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_src_path)=src",
130c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       ],
131c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       "scope",
132c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [ "gyp/pdf.gypi" ])
133c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1347fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinutils_gypi = exec_script("gn/gypi_to_gn.py",
135c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         [
136c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           rebase_path("gyp/utils.gypi"),
137c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "--replace=<(skia_include_path)=include",
138c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "--replace=<(skia_src_path)=src",
139c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         ],
140c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "scope",
141c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         [ "gyp/utils.gypi" ])
142c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
143a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittalsource_set("opts_none") {
144a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal  configs += skia_library_configs
145a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal  sources = opts_gypi.none_sources
146a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal}
147a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal
148422310ddbe4db616200a949adcac2c560685030cmtkleinis_x86 = current_cpu == "x64" || current_cpu == "x86"
149c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
150422310ddbe4db616200a949adcac2c560685030cmtkleinif (is_x86) {
151422310ddbe4db616200a949adcac2c560685030cmtklein  source_set("opts_sse2") {
152422310ddbe4db616200a949adcac2c560685030cmtklein    configs += skia_library_configs
153422310ddbe4db616200a949adcac2c560685030cmtklein    sources = opts_gypi.sse2_sources
154422310ddbe4db616200a949adcac2c560685030cmtklein    cflags = [ "-msse2" ]
155422310ddbe4db616200a949adcac2c560685030cmtklein  }
156c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
157422310ddbe4db616200a949adcac2c560685030cmtklein  source_set("opts_ssse3") {
158422310ddbe4db616200a949adcac2c560685030cmtklein    configs += skia_library_configs
159422310ddbe4db616200a949adcac2c560685030cmtklein    sources = opts_gypi.ssse3_sources
160422310ddbe4db616200a949adcac2c560685030cmtklein    cflags = [ "-mssse3" ]
161422310ddbe4db616200a949adcac2c560685030cmtklein  }
1624e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
163422310ddbe4db616200a949adcac2c560685030cmtklein  source_set("opts_sse41") {
164422310ddbe4db616200a949adcac2c560685030cmtklein    configs += skia_library_configs
165422310ddbe4db616200a949adcac2c560685030cmtklein    sources = opts_gypi.sse41_sources
166422310ddbe4db616200a949adcac2c560685030cmtklein    cflags = [ "-msse4.1" ]
167422310ddbe4db616200a949adcac2c560685030cmtklein  }
1684e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
169422310ddbe4db616200a949adcac2c560685030cmtklein  source_set("opts_sse42") {
170422310ddbe4db616200a949adcac2c560685030cmtklein    configs += skia_library_configs
171422310ddbe4db616200a949adcac2c560685030cmtklein    sources = opts_gypi.sse42_sources
172422310ddbe4db616200a949adcac2c560685030cmtklein    cflags = [ "-msse4.2" ]
173422310ddbe4db616200a949adcac2c560685030cmtklein  }
174c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
175422310ddbe4db616200a949adcac2c560685030cmtklein  source_set("opts_avx") {
176422310ddbe4db616200a949adcac2c560685030cmtklein    configs += skia_library_configs
177422310ddbe4db616200a949adcac2c560685030cmtklein    sources = opts_gypi.avx_sources
178422310ddbe4db616200a949adcac2c560685030cmtklein    cflags = [ "-mavx" ]
179422310ddbe4db616200a949adcac2c560685030cmtklein  }
180c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
181c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
182457b42a6398020c3791f62f8c8637653e0d39bccmtkleintemplate("optional") {
183457b42a6398020c3791f62f8c8637653e0d39bccmtklein  if (invoker.enabled) {
184457b42a6398020c3791f62f8c8637653e0d39bccmtklein    config(target_name + "_public") {
185457b42a6398020c3791f62f8c8637653e0d39bccmtklein      defines = invoker.public_defines
186457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
187457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
188457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker, "*", [ "public_defines" ])
189457b42a6398020c3791f62f8c8637653e0d39bccmtklein      all_dependent_configs = [ ":" + target_name + "_public" ]
190457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
191457b42a6398020c3791f62f8c8637653e0d39bccmtklein  } else {
192457b42a6398020c3791f62f8c8637653e0d39bccmtklein    # If not enabled, a phony empty target that swallows all otherwise unused variables.
193457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
194457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker,
195457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             "*",
196457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             [
197457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "public_defines",
198457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "configs",
199457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "deps",
200457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "sources",
201457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             ])
202457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
203eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  }
204eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein}
205457b42a6398020c3791f62f8c8637653e0d39bccmtkleinset_defaults("optional") {
206457b42a6398020c3791f62f8c8637653e0d39bccmtklein  configs = default_configs
207457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
208457b42a6398020c3791f62f8c8637653e0d39bccmtklein
209457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("gif") {
210457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_giflib
211457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_GIF_LIBRARY" ]
212457b42a6398020c3791f62f8c8637653e0d39bccmtklein
213457b42a6398020c3791f62f8c8637653e0d39bccmtklein  configs += skia_library_configs
214457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
215457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/giflib",
216457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
217457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
218457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkGifCodec.cpp",
219457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
220457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
221457b42a6398020c3791f62f8c8637653e0d39bccmtklein
222457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("webp") {
223457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_libwebp
224457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_WEBP_LIBRARY" ]
225457b42a6398020c3791f62f8c8637653e0d39bccmtklein
226457b42a6398020c3791f62f8c8637653e0d39bccmtklein  configs += skia_library_configs
227457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
228457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/libwebp",
229457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
230457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
231457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpAdapterCodec.cpp",
232457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpCodec.cpp",
233457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/images/SkWEBPImageEncoder.cpp",
234457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
235457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
236eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein
237c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
238c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
239c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
240c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
241c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
242457b42a6398020c3791f62f8c8637653e0d39bccmtklein    ":gif",
243eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein    ":webp",
24425c81d4e651b43b8217c365c87d530036529a673mtklein    "//third_party/expat",
2450a8efd7355f3e258b1b4b1da6babfc8f1718ecd4mtklein    "//third_party/libjpeg-turbo:libjpeg",
2467d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    "//third_party/libpng",
24719a9720978700a24efed8dda7e0935ea2b7338c4halcanary    "//third_party/sfntly",
2486fc8ff024bd823f350400a86e7b9daa1c25f618eabarth    "//third_party/zlib",
249c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
250422310ddbe4db616200a949adcac2c560685030cmtklein  if (is_x86) {
251422310ddbe4db616200a949adcac2c560685030cmtklein    deps += [
252422310ddbe4db616200a949adcac2c560685030cmtklein      ":opts_avx",
253422310ddbe4db616200a949adcac2c560685030cmtklein      ":opts_sse2",
254422310ddbe4db616200a949adcac2c560685030cmtklein      ":opts_sse41",
255422310ddbe4db616200a949adcac2c560685030cmtklein      ":opts_sse42",
256422310ddbe4db616200a949adcac2c560685030cmtklein      ":opts_ssse3",
257422310ddbe4db616200a949adcac2c560685030cmtklein    ]
258a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal  } else {
259a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal    deps += [ ":opts_none" ]
260422310ddbe4db616200a949adcac2c560685030cmtklein  }
261c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
2627a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein  if (!is_win) {
2637a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    libs = [ "pthread" ]
2647a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein  }
265c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
266c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
267c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += core_gypi.sources
268c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += effects_gypi.sources
269c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += gpu_gypi.skgpu_sources
270c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += pdf_gypi.sources
271c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += utils_gypi.sources
272c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
27325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
27425c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
27525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
2761211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
2771211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
2781211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
2791211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
2801211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
2811211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
2821211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkIcoCodec.cpp",
2831211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegCodec.cpp",
2841211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegDecoderMgr.cpp",
2851211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegUtility.cpp",
2861211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
2871211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
2881211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkPngCodec.cpp",
28925c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
2901211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
2911211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
2921211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
29309e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    "src/gpu/gl/GrGLDefaultInterface_native.cpp",
294c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
295c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
2962b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkJPEGImageEncoder.cpp",
2972b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkJPEGWriteUtility.cpp",
2982b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
2992b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkPNGImageEncoder.cpp",
300c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
301c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
3021211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
303c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
304c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
305c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
306c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
30725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
30825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
309c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
31025c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkDOM.cpp",
31125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkXMLParser.cpp",
31225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkXMLWriter.cpp",
313c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
314c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
315c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
31609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein  sources -= [
31709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
31809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    "src/gpu/gl/GrGLDefaultInterface_none.cpp",
31909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein  ]
320c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
321c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
322c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
323c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
324c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
325c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
326c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
327c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
328c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
329c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
330c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
331c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
332c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
33325c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
334c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
3357a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    sources -= [ "src/utils/SkThreadUtils_pthread.cpp" ]
336c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
337c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
338c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_stdio.cpp",
339c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
340c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
34125c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
342c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
343c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
344c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
345c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
346c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    deps += [
347c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "third_party:fontconfig",
348c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "third_party:freetype2",
349c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
35009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
35109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GL",
35209e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GLU",
35309e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "X11",
35409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
355c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
35609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp",
357c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontConfigInterface_direct.cpp",
358c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontConfigInterface_direct_factory.cpp",
359c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_FreeType.cpp",
360c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_FreeType_common.cpp",
3617d0e3bc785fc5aaf2ed0aa8f37a2bc85c2f82da0bungeman      "src/ports/SkFontMgr_FontConfigInterface.cpp",
3627a34b1cd02ae65f2fb299752ebececec2b4f4285mtklein      "src/ports/SkFontMgr_fontconfig.cpp",
3637a34b1cd02ae65f2fb299752ebececec2b4f4285mtklein      "src/ports/SkFontMgr_fontconfig_factory.cpp",
364c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
365c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
366c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
367c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
368c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
36909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp",
370c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
371c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
372c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
373c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
37409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
37509e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "ApplicationServices.framework",
37609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "OpenGL.framework",
37709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
378c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
3796fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
3806fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
381e817ddf9b32200ebfd216921d172ef1342e13caemtklein    sources += [ "src/ports/SkFontMgr_empty_factory.cpp" ]
3826fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
383c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
384c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
385ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
386ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
387ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
388ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
389ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
390ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
391ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
392ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
393ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
394ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
395ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
396ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
397ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
3981211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
3991211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
4001211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
401ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein         rebase_path(skia_h_headers, root_build_dir)
4021211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
4031211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
4041211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
4051211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
4061211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
4071211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinexecutable("fiddle") {
4081211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = [ "$target_gen_dir" ]
4097d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  libs = []
4107d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  if (is_linux) {
4117d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    libs += [ "OSMesa" ]
4127d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  }
4131211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
414c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = [
4151211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/draw.cpp",
4161211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/fiddle_main.cpp",
417c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
418c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
419c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":skia",
4201211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    ":skia.h",
4215dbd27484641279b53369587c93ba0566c20a161mtklein    ":tool_utils",
422c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
4235dbd27484641279b53369587c93ba0566c20a161mtklein  testonly = true
424c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
42525c81d4e651b43b8217c365c87d530036529a673mtklein
42625c81d4e651b43b8217c365c87d530036529a673mtkleintemplate("test_lib") {
42725c81d4e651b43b8217c365c87d530036529a673mtklein  config(target_name + "_config") {
42825c81d4e651b43b8217c365c87d530036529a673mtklein    include_dirs = invoker.public_include_dirs
42925c81d4e651b43b8217c365c87d530036529a673mtklein  }
43025c81d4e651b43b8217c365c87d530036529a673mtklein  source_set(target_name) {
43125c81d4e651b43b8217c365c87d530036529a673mtklein    forward_variables_from(invoker, "*", [ "public_include_dirs" ])
43225c81d4e651b43b8217c365c87d530036529a673mtklein    public_configs = [
43325c81d4e651b43b8217c365c87d530036529a673mtklein      ":" + target_name + "_config",
43425c81d4e651b43b8217c365c87d530036529a673mtklein      ":skia_private",
43525c81d4e651b43b8217c365c87d530036529a673mtklein    ]
43625c81d4e651b43b8217c365c87d530036529a673mtklein
43725c81d4e651b43b8217c365c87d530036529a673mtklein    if (!defined(deps)) {
43825c81d4e651b43b8217c365c87d530036529a673mtklein      deps = []
43925c81d4e651b43b8217c365c87d530036529a673mtklein    }
44025c81d4e651b43b8217c365c87d530036529a673mtklein    deps += [ ":skia" ]
44125c81d4e651b43b8217c365c87d530036529a673mtklein    testonly = true
44225c81d4e651b43b8217c365c87d530036529a673mtklein  }
44325c81d4e651b43b8217c365c87d530036529a673mtklein}
44425c81d4e651b43b8217c365c87d530036529a673mtklein
44525c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("gpu_tool_utils") {
44625c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "tools/gpu" ]
44725c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
44825c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/GrContextFactory.cpp",
44925c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/GrTest.cpp",
45025c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/TestContext.cpp",
45125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/GLTestContext.cpp",
45225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/DebugGLTestContext.cpp",
45325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrBufferObj.cpp",
45425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
45525c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrProgramObj.cpp",
45625c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrShaderObj.cpp",
45725c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrTextureObj.cpp",
45825c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
45925c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/null/NullGLTestContext.cpp",
46025c81d4e651b43b8217c365c87d530036529a673mtklein  ]
46125c81d4e651b43b8217c365c87d530036529a673mtklein  libs = []
46225c81d4e651b43b8217c365c87d530036529a673mtklein
46325c81d4e651b43b8217c365c87d530036529a673mtklein  if (is_linux) {
46409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
46525c81d4e651b43b8217c365c87d530036529a673mtklein  } else if (is_mac) {
46609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
46725c81d4e651b43b8217c365c87d530036529a673mtklein  }
46825c81d4e651b43b8217c365c87d530036529a673mtklein}
46925c81d4e651b43b8217c365c87d530036529a673mtklein
47025c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("flags") {
47125c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "tools/flags" ]
47225c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
47325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommandLineFlags.cpp",
47425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommonFlags.cpp",
47525c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommonFlagsConfig.cpp",
47625c81d4e651b43b8217c365c87d530036529a673mtklein  ]
47725c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
47825c81d4e651b43b8217c365c87d530036529a673mtklein    ":gpu_tool_utils",
47925c81d4e651b43b8217c365c87d530036529a673mtklein  ]
48025c81d4e651b43b8217c365c87d530036529a673mtklein}
48125c81d4e651b43b8217c365c87d530036529a673mtklein
48225c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("tool_utils") {
48325c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [
48425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools",
4852f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger",
48625c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/timer",
48725c81d4e651b43b8217c365c87d530036529a673mtklein  ]
48825c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
4892b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkForceLinking.cpp",
49025c81d4e651b43b8217c365c87d530036529a673mtklein    "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
4912b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "tools/CrashHandler.cpp",
49225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/ProcStats.cpp",
49325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/Resources.cpp",
4942b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "tools/ThermalManager.cpp",
4952f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/UrlDataManager.cpp",
4962f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkDebugCanvas.cpp",
4972f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkDrawCommand.cpp",
4982f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkJsonWriteBuffer.cpp",
4992f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkObjectParser.cpp",
5002f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkOverdrawMode.cpp",
50125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/picture_utils.cpp",
50225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/random_parse_path.cpp",
50325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/sk_tool_utils.cpp",
50425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/sk_tool_utils_font.cpp",
50525c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/timer/Timer.cpp",
50625c81d4e651b43b8217c365c87d530036529a673mtklein  ]
50725c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
50825c81d4e651b43b8217c365c87d530036529a673mtklein    ":flags",
5092f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/libpng",
5102f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  ]
5112f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  public_deps = [
5122f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/jsoncpp",
51325c81d4e651b43b8217c365c87d530036529a673mtklein  ]
51425c81d4e651b43b8217c365c87d530036529a673mtklein}
51525c81d4e651b43b8217c365c87d530036529a673mtklein
51625c81d4e651b43b8217c365c87d530036529a673mtkleingm_sources = exec_script("gyp/find.py",
51725c81d4e651b43b8217c365c87d530036529a673mtklein                         [
51825c81d4e651b43b8217c365c87d530036529a673mtklein                           "*.c*",
519ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                           rebase_path("gm"),
52025c81d4e651b43b8217c365c87d530036529a673mtklein                         ],
52125c81d4e651b43b8217c365c87d530036529a673mtklein                         "list lines",
52225c81d4e651b43b8217c365c87d530036529a673mtklein                         [])
52325c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("gm") {
52425c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "gm" ]
52525c81d4e651b43b8217c365c87d530036529a673mtklein  sources = gm_sources
52625c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
52725c81d4e651b43b8217c365c87d530036529a673mtklein    ":gpu_tool_utils",
52825c81d4e651b43b8217c365c87d530036529a673mtklein    ":skia",
52925c81d4e651b43b8217c365c87d530036529a673mtklein    ":tool_utils",
53025c81d4e651b43b8217c365c87d530036529a673mtklein  ]
53125c81d4e651b43b8217c365c87d530036529a673mtklein}
53225c81d4e651b43b8217c365c87d530036529a673mtklein
5332f3416d2befb9480b7faf461530fd9044f77e6cdmtkleintests_sources = exec_script("gyp/find.py",
5342f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            [
5352f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                              "*.c*",
5362f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                              rebase_path("tests"),
5372f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            ],
5382f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            "list lines",
5392f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            [])
5402f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
5412f3416d2befb9480b7faf461530fd9044f77e6cdmtkleintest_lib("tests") {
5422f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  public_include_dirs = [ "tests" ]
5432f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  sources = tests_sources - [
5442f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/FontMgrAndroidParserTest.cpp"),  # Android only
5452f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
5464db3b7969f62f5ddbf32bd812b9510af018ece89mtklein              rebase_path("tests/SkSLErrorTest.cpp"),  # TODO: make work
5474db3b7969f62f5ddbf32bd812b9510af018ece89mtklein              rebase_path("tests/SkSLGLSLTest.cpp"),  # TODO: make work
5482f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
5492f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/skia_test.cpp"),  # alternate main
5502f3416d2befb9480b7faf461530fd9044f77e6cdmtklein            ]
5512f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  deps = [
5522f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":flags",
5532f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":gpu_tool_utils",
5542f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":skia",
5552f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":tool_utils",
5562f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/libpng",
5572f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/zlib",
5582f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  ]
5592f3416d2befb9480b7faf461530fd9044f77e6cdmtklein}
5602f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
5612b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleinbench_sources = exec_script("gyp/find.py",
5622b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            [
5632b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                              "*.c*",
564ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                              rebase_path("bench"),
5652b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            ],
5662b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            "list lines",
5672b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            [])
5682b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
5692b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleintest_lib("bench") {
5702b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  public_include_dirs = [ "bench" ]
5712b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  sources = bench_sources
5722b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  sources -= [
5732b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    rebase_path("bench/nanobench.cpp"),
5742b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    rebase_path("bench/nanobenchAndroid.cpp"),
5752b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  ]
5762b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  deps = [
5772b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":flags",
5782b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":gm",
5792b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":gpu_tool_utils",
5802b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":skia",
5812b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":tool_utils",
5822b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  ]
5832b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein}
5842b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
585a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalitatest_lib("experimental_svg_model") {
586a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita  public_include_dirs = [ "experimental/svg/model" ]
587a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita  sources = [
588a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGAttribute.cpp",
589a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGAttributeParser.cpp",
590dc4c2a9fb7210925df7cc5c142b691e6c817ca77fmalita    "experimental/svg/model/SkSVGCircle.cpp",
591a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal    "experimental/svg/model/SkSVGContainer.cpp",
592a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGDOM.cpp",
593dc4c2a9fb7210925df7cc5c142b691e6c817ca77fmalita    "experimental/svg/model/SkSVGEllipse.cpp",
594d24ee1419f17fe3ac70373ca74136a766522e399fmalita    "experimental/svg/model/SkSVGLine.cpp",
595a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGNode.cpp",
596a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGPath.cpp",
5975b31f321fcc3bb7f2ed7cf31ff4b03901228594bfmalita    "experimental/svg/model/SkSVGPoly.cpp",
598a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGRect.cpp",
599a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGRenderContext.cpp",
600a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGSVG.cpp",
601a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGShape.cpp",
602a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGTransformableNode.cpp",
603a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    "experimental/svg/model/SkSVGValue.cpp",
604a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita  ]
605a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita  deps = [
606a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita    ":skia",
607a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita  ]
608a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita}
609a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita
6102b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleinif (!is_component_build) {  # Our test tools use many non-SK_API APIs...
6112b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
6122b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
6132b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
6142b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
6152b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
6162b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6172b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
6182b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
619a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita      ":experimental_svg_model",
6202b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
6212b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
6222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
6232b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
6242f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
6252b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
6262b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
6272b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
6282b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6292b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
6302b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
6312b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
6322b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("monobench") {
6332b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
6342b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "tools/monobench.cpp",
6352b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6362b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
6372b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
6382b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
6392b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6402b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
6412b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
6422b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
6432b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
6442b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
6452b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
6462b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6472b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
6482b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
6492b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
6502b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
6512b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
6522b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
6532b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
6542b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
6552b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
6562b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
6572b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
65819a9720978700a24efed8dda7e0935ea2b7338c4halcanary
65919a9720978700a24efed8dda7e0935ea2b7338c4halcanary  executable("sktexttopdf") {
66019a9720978700a24efed8dda7e0935ea2b7338c4halcanary    sources = [
66119a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "tools/SkShaper_harfbuzz.cpp",
66219a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "tools/using_skia_and_harfbuzz.cpp",
66319a9720978700a24efed8dda7e0935ea2b7338c4halcanary    ]
66419a9720978700a24efed8dda7e0935ea2b7338c4halcanary    deps = [
66519a9720978700a24efed8dda7e0935ea2b7338c4halcanary      ":skia",
66619a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "//third_party/harfbuzz",
66719a9720978700a24efed8dda7e0935ea2b7338c4halcanary    ]
66819a9720978700a24efed8dda7e0935ea2b7338c4halcanary    testonly = true
66919a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
67025c81d4e651b43b8217c365c87d530036529a673mtklein}
671