BUILD.gn revision bc34404dc3feb4dac854aa43825646dd01139ccb
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
68c24f4fae3389b9937eb73128e76226cffebdd72mikejurkaimport("gn/shared_sources.gni")
7b944728b93a1623d73be31413a6798e0b7dddc16brettw
83e8012e74f70bf49427a7422f9e5996c9882d4f3mtkleinif (!defined(is_skia_standalone)) {
93e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  is_skia_standalone = false
103e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein}
113e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein
12c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
13d68f9b00389bf676b171f250e684486cb2fbd404mtklein  skia_use_angle = false
146321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_expat = true
153cc22180561ae17a64ff0e0f9ba173eac149009emtklein  skia_use_fontconfig = is_linux
16cdedd0e061f3f50cd217638c28b27d798d930896mtklein  skia_use_freetype = is_android || is_fuchsia || is_linux
17457b42a6398020c3791f62f8c8637653e0d39bccmtklein  skia_use_giflib = !is_fuchsia
186321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libjpeg_turbo = true
196321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libpng = true
20eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  skia_use_libwebp = !is_fuchsia
21a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein  skia_use_mesa = false
226321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_sfntly = !is_fuchsia
23f29180e65afdd3bd5ff3c1a2f8d456f9aea125edmtklein  skia_use_vulkan = is_android && defined(ndk_api) && ndk_api >= 24
246321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_zlib = true
251bd72ba2cb349788223e3e7304f25751c87f1f95mtklein
261bd72ba2cb349788223e3e7304f25751c87f1f95mtklein  skia_enable_android_framework_defines = false
2706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  skia_enable_gpu = true
283e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  skia_enable_tools = is_skia_standalone
293e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  skia_enable_vulkan_debug_layers = is_skia_standalone && is_debug
30c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
31c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
3238925aa37c17c0f54868852b8c3edf373400c742mtklein# Our tools require static linking (they use non-exported symbols).
3338925aa37c17c0f54868852b8c3edf373400c742mtkleinskia_enable_tools = skia_enable_tools && !is_component_build
3406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
35a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinfontmgr_android_enabled = skia_use_expat && skia_use_freetype
36a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
371211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
3825c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
39fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
411211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
421211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
431211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
441211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
451211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
461211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
471211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
481211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
4925c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
501211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
511211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
5225c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
531211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
541211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
55c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
56c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
571211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
58c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_DLL" ]
59c4cbd74a38232a0e9f1cc1cc8fb826bb06c577a9Mike Klein  if (is_fuchsia || is_linux) {
605561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio    defines += [ "SK_SAMPLES_FOR_X" ]
615561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  }
62cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  if (skia_enable_android_framework_defines) {
63cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein    defines += skia_android_framework_defines
64cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  }
6506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (!skia_enable_gpu) {
6606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    defines += [ "SK_SUPPORT_GPU=0" ]
6706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
68c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
69c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
70c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
71c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
72c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
73c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
74c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
75c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
76c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
771211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
79c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
80c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
8125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
8225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
83c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
84c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
85c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
86c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
87c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
88c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
892b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
929e0d9ddc0ef39e239670b22e5439993c45f4ae42mtklein    "src/sksl",
93c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
947a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    "src/utils/win",
95c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
96c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
97c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
98150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
996321381d18f9d478598c0996c1380633003961ddmtklein  defines = [ "SK_GAMMA_APPLY_TO_A8" ]
100b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  if (is_android) {
101b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    defines += [
102b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_EXPONENT=1.4",
103b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_CONTRAST=0.0",
104b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    ]
105b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  }
10688a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  if (is_official_build || is_android) {
10788a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    # TODO(bsalomon): it'd be nice to make Android normal.
10888a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    defines += [ "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=0" ]
10988a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  }
110c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
111c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
112c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
113c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
114c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
115c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
116c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
117c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
118c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
119c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
120c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
121c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
122c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
123c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1249b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein# Use for CPU-specific Skia code that needs particular compiler flags.
1259b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleintemplate("opts") {
1269b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  if (invoker.enabled) {
1279b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1289b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker, "*")
1299b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
1309b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1319b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  } else {
1329b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    # If not enabled, a phony empty target that swallows all otherwise unused variables.
1339b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1349b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker,
1359b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             "*",
1369b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             [
1379b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "sources",
1389b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "cflags",
1399b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             ])
1409b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1419b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  }
142a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal}
143a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal
144422310ddbe4db616200a949adcac2c560685030cmtkleinis_x86 = current_cpu == "x64" || current_cpu == "x86"
145c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1467d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("none") {
1477d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
148b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.none_sources
149b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
150b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
151b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1527d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("armv7") {
153b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm"
154b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.armv7_sources + skia_opts.neon_sources
1557d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  cflags = []
156b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
157b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
158b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("arm64") {
159b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
160b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.arm64_sources
161b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
162b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
163b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
164b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("crc32") {
165b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
166b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.crc32_sources
167b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = [ "-march=armv8-a+crc" ]
168b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
169b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1709b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse2") {
1719b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
172b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse2_sources
1739b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse2" ]
1749b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1754e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1769b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("ssse3") {
1779b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
178b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.ssse3_sources
1799b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mssse3" ]
1809b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1814e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1829b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse41") {
1839b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
184b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse41_sources
1859b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.1" ]
1869b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
187c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1889b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse42") {
1899b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
190b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse42_sources
1919b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.2" ]
1929b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1939b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein
1949b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("avx") {
1959b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
196b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.avx_sources
1979b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mavx" ]
198c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
199c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
200349cecefe21e2b45acc201290cc4e4fa93b4ad76mtkleinopts("dsp") {
201349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein  enabled = current_cpu == "mipsel"
202b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.mips_dsp_sources
203b6064ef5b822ebc14d62170bd4ffa2f7c9bfbe4dmtklein  cflags = []
204349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein}
205349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein
206c095df55e86e7126b0582856720bb9177b553ff1mtklein# Any feature of Skia that requires third-party code should be optional and use this template.
207457b42a6398020c3791f62f8c8637653e0d39bccmtkleintemplate("optional") {
208457b42a6398020c3791f62f8c8637653e0d39bccmtklein  if (invoker.enabled) {
209457b42a6398020c3791f62f8c8637653e0d39bccmtklein    config(target_name + "_public") {
210cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.public_defines)) {
211cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        defines = invoker.public_defines
212cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
213457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
214457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
215cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      forward_variables_from(invoker,
216cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             "*",
217cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             [
218cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "public_defines",
219cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
220cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             ])
221457b42a6398020c3791f62f8c8637653e0d39bccmtklein      all_dependent_configs = [ ":" + target_name + "_public" ]
2229b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
223457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
224457b42a6398020c3791f62f8c8637653e0d39bccmtklein  } else {
225457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
226457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker,
227457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             "*",
228457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             [
229457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "public_defines",
230457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "deps",
2316ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein                               "libs",
232457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "sources",
233cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
234457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             ])
235cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.sources_when_disabled)) {
236cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        sources = invoker.sources_when_disabled
237cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
238cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      configs += skia_library_configs
239457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
240eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  }
241eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein}
242457b42a6398020c3791f62f8c8637653e0d39bccmtklein
243a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinoptional("fontmgr_android") {
244a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  enabled = fontmgr_android_enabled
245a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
246a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  deps = [
247a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/expat",
248a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/freetype2",
249a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
250a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  sources = [
251a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android.cpp",
252a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_factory.cpp",
253a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_parser.cpp",
254a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
255a45be61d6beeb923d1b3352776042d58d7b7280dmtklein}
256a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
257d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtkleinoptional("fontmgr_custom") {
258d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  enabled = is_linux && skia_use_freetype && !skia_use_fontconfig
259d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
260d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  deps = [
261d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "//third_party/freetype2",
262d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
263d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  sources = [
264d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom.cpp",
265d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom_directory_factory.cpp",
266d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
267d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein}
268d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
2693cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("fontmgr_fontconfig") {
2703cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype && skia_use_fontconfig
2713cc22180561ae17a64ff0e0f9ba173eac149009emtklein
2723cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
2733cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party:fontconfig",
2743cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
2753cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2763cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
2771ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman    "src/ports/SkFontConfigInterface.cpp",
2783cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct.cpp",
2793cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct_factory.cpp",
2803cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_FontConfigInterface.cpp",
2813cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig.cpp",
2823cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig_factory.cpp",
2833cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2843cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
2853cc22180561ae17a64ff0e0f9ba173eac149009emtklein
286cdedd0e061f3f50cd217638c28b27d798d930896mtkleinoptional("fontmgr_fuchsia") {
287cdedd0e061f3f50cd217638c28b27d798d930896mtklein  enabled = is_fuchsia && skia_use_freetype
288cdedd0e061f3f50cd217638c28b27d798d930896mtklein
289cdedd0e061f3f50cd217638c28b27d798d930896mtklein  deps = [
290cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "//third_party/freetype2",
291cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
292cdedd0e061f3f50cd217638c28b27d798d930896mtklein  sources = [
293cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom.cpp",
294cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom_empty_factory.cpp",
295cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
296cdedd0e061f3f50cd217638c28b27d798d930896mtklein}
297cdedd0e061f3f50cd217638c28b27d798d930896mtklein
298457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("gif") {
299457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_giflib
300457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_GIF_LIBRARY" ]
301457b42a6398020c3791f62f8c8637653e0d39bccmtklein
302457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
303457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/giflib",
304457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
305457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
306457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkGifCodec.cpp",
307457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
308457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
309457b42a6398020c3791f62f8c8637653e0d39bccmtklein
31006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinoptional("gpu") {
31106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  enabled = skia_enable_gpu
312e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  public_defines = []
313e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein
31406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources = skia_gpu_sources + [ "src/gpu/gl/GrGLDefaultInterface_native.cpp" ]
31506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
31606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  # These paths need to be absolute to match the ones produced by shared_sources.gni.
31706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources -= get_path_info([
31806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
31906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLDefaultInterface_none.cpp",
32006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           ],
32106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           "abspath")
32206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (is_android) {
32306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp" ]
32406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_linux) {
32506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp" ]
32606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_mac) {
32706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp" ]
32806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else {
32906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/GrGLCreateNativeInterface_none.cpp" ]
33006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
331e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  libs = []
332e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein
333e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  if (skia_use_vulkan) {
334e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein    public_defines += [ "SK_VULKAN" ]
335e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein    sources += skia_vk_sources
336e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein    libs += [ "vulkan" ]
337e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel    if (skia_enable_vulkan_debug_layers) {
338e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel      public_defines += [ "SK_ENABLE_VK_LAYERS" ]
339e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel    }
340e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  }
34106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein}
34206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
3436321381d18f9d478598c0996c1380633003961ddmtkleinoptional("jpeg") {
3446321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libjpeg_turbo
3456321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_JPEG_LIBRARY" ]
3466321381d18f9d478598c0996c1380633003961ddmtklein
3476321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3486321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libjpeg-turbo:libjpeg",
3496321381d18f9d478598c0996c1380633003961ddmtklein  ]
3506321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3516321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegCodec.cpp",
3526321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegDecoderMgr.cpp",
3536321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegUtility.cpp",
3546321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGImageEncoder.cpp",
3556321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGWriteUtility.cpp",
3566321381d18f9d478598c0996c1380633003961ddmtklein  ]
3576321381d18f9d478598c0996c1380633003961ddmtklein}
3586321381d18f9d478598c0996c1380633003961ddmtklein
3596321381d18f9d478598c0996c1380633003961ddmtkleinoptional("pdf") {
3606321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_zlib
3616321381d18f9d478598c0996c1380633003961ddmtklein
3626321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3636321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/zlib",
3646321381d18f9d478598c0996c1380633003961ddmtklein  ]
365b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_pdf_sources
366cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein  sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ]
3676321381d18f9d478598c0996c1380633003961ddmtklein
3686321381d18f9d478598c0996c1380633003961ddmtklein  if (skia_use_sfntly) {
3696321381d18f9d478598c0996c1380633003961ddmtklein    deps += [ "//third_party/sfntly" ]
370cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein    public_defines = [ "SK_PDF_USE_SFNTLY" ]
3716321381d18f9d478598c0996c1380633003961ddmtklein  }
3726321381d18f9d478598c0996c1380633003961ddmtklein}
3736321381d18f9d478598c0996c1380633003961ddmtklein
3746321381d18f9d478598c0996c1380633003961ddmtkleinoptional("png") {
3756321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libpng
3766321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_PNG_LIBRARY" ]
3776321381d18f9d478598c0996c1380633003961ddmtklein
3786321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3796321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libpng",
3806321381d18f9d478598c0996c1380633003961ddmtklein  ]
3816321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3826321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkIcoCodec.cpp",
3836321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkPngCodec.cpp",
3846321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkPNGImageEncoder.cpp",
3856321381d18f9d478598c0996c1380633003961ddmtklein  ]
3866321381d18f9d478598c0996c1380633003961ddmtklein}
3876321381d18f9d478598c0996c1380633003961ddmtklein
3883cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("typeface_freetype") {
3893cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype
3903cc22180561ae17a64ff0e0f9ba173eac149009emtklein
3913cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
3923cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
3933cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3943cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
3953cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType.cpp",
3963cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType_common.cpp",
3973cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3983cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
3993cc22180561ae17a64ff0e0f9ba173eac149009emtklein
400457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("webp") {
401457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_libwebp
402457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_WEBP_LIBRARY" ]
403457b42a6398020c3791f62f8c8637653e0d39bccmtklein
404457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
405457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/libwebp",
406457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
407457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
408457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpAdapterCodec.cpp",
409457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpCodec.cpp",
410457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/images/SkWEBPImageEncoder.cpp",
411457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
412457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
413eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein
4146321381d18f9d478598c0996c1380633003961ddmtkleinoptional("xml") {
4156321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_expat
4166321381d18f9d478598c0996c1380633003961ddmtklein
4176321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
4186321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/expat",
4196321381d18f9d478598c0996c1380633003961ddmtklein  ]
4206321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
4216321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkDOM.cpp",
4226321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLParser.cpp",
4236321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLWriter.cpp",
4246321381d18f9d478598c0996c1380633003961ddmtklein  ]
4256321381d18f9d478598c0996c1380633003961ddmtklein}
4266321381d18f9d478598c0996c1380633003961ddmtklein
427c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
428c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
429c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
430c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
431c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
432b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":arm64",
433b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":armv7",
4349b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":avx",
435b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":crc32",
436349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein    ":dsp",
437a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    ":fontmgr_android",
438d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    ":fontmgr_custom",
4393cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":fontmgr_fontconfig",
440cdedd0e061f3f50cd217638c28b27d798d930896mtklein    ":fontmgr_fuchsia",
441457b42a6398020c3791f62f8c8637653e0d39bccmtklein    ":gif",
44206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    ":gpu",
4436321381d18f9d478598c0996c1380633003961ddmtklein    ":jpeg",
4449b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":none",
4456321381d18f9d478598c0996c1380633003961ddmtklein    ":pdf",
4466321381d18f9d478598c0996c1380633003961ddmtklein    ":png",
4479b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse2",
4489b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse41",
4499b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse42",
4509b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":ssse3",
4513cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":typeface_freetype",
452eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein    ":webp",
4536321381d18f9d478598c0996c1380633003961ddmtklein    ":xml",
454c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
455c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
456c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
457b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_core_sources
458b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_effects_sources
459b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_sksl_sources
460b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_utils_sources
461c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
46225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
46325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
46425c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
4651211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
4661211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
4671211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
4681211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
4691211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
4701211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
4711211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
4721211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
47325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
4741211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
4751211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
4761211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
477c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
478c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
4792b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
480c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
481c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
4821211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
483c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
484c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
485c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
486c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
48725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
48825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
489c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
490c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
491c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
492c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
493b944728b93a1623d73be31413a6798e0b7dddc16brettw
4947d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  libs = []
4957d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
496c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
497c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
498c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
499c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
500c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
501c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
502c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
503c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
504c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
505605d95289379a07aad50b38ca6badbee45813d56mtklein      "src/ports/SkOSLibrary_win.cpp",
506c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
507c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
508c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
50925c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
510c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
511b9be979eaecebcb5350efae46e6555188e7c3a78mtklein    sources -=
512b9be979eaecebcb5350efae46e6555188e7c3a78mtklein        [ get_path_info("src/utils/SkThreadUtils_pthread.cpp", "abspath") ]
513c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
514c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
515c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
516605d95289379a07aad50b38ca6badbee45813d56mtklein      "src/ports/SkOSLibrary_posix.cpp",
517c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
51825c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
519c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
520c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
521c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
5227d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  if (is_android) {
5237d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    deps += [
5247d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/cpu-features",
5257d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/expat",
5267d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
52706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_android.cpp" ]
5287d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    libs += [
5297d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "EGL",
5307d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "GLESv2",
5317d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "log",
5327d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
5337d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  }
5347d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
535c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
53609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
53709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GL",
53809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GLU",
53909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "X11",
54009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
54106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
542c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
543c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
544c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
545c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
5467d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_stdio.cpp",
547c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
548c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
549c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
550c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
55109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
55209e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "ApplicationServices.framework",
55309e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "OpenGL.framework",
55409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
555c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
5566fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
5576fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
55806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
5596fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
560c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
561c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
562ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
563ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
564ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
565ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
566ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
567ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
568ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
569ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
570ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
571ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
572ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
573ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
574ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
5751211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
5761211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
5771211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
578c095df55e86e7126b0582856720bb9177b553ff1mtklein         rebase_path(skia_h_headers, target_gen_dir)
579bc34404dc3feb4dac854aa43825646dd01139ccbBen Wagner  inputs = skia_h_headers
5801211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
5811211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
5821211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
5831211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
5841211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
58506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinif (skia_enable_gpu && target_cpu == "x64") {
5861fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # Our bots only have 64-bit libOSMesa installed.
5871fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # TODO: worth fixing?
5881fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  executable("fiddle") {
5891fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    include_dirs = [ "$target_gen_dir" ]
5901fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    libs = []
5911fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    if (is_linux) {
5921fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      libs += [ "OSMesa" ]
5931fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    }
59456d5669095feca663e9e05f4621146abeee626ecmtklein
5951fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    sources = [
5961fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "src/images/SkForceLinking.cpp",
5971fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/draw.cpp",
5981fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/fiddle_main.cpp",
5991fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
6001fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    deps = [
6011fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia",
6021fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia.h",
6031fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
6041fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  }
605c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
60625c81d4e651b43b8217c365c87d530036529a673mtklein
607c095df55e86e7126b0582856720bb9177b553ff1mtklein# Targets guarded by skia_enable_tools may use //third_party freely.
608c095df55e86e7126b0582856720bb9177b553ff1mtkleinif (skia_enable_tools) {
609c095df55e86e7126b0582856720bb9177b553ff1mtklein  template("test_lib") {
610c095df55e86e7126b0582856720bb9177b553ff1mtklein    config(target_name + "_config") {
611c095df55e86e7126b0582856720bb9177b553ff1mtklein      include_dirs = invoker.public_include_dirs
612a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      if (defined(invoker.public_defines)) {
613a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein        defines = invoker.public_defines
614a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      }
615c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
616c095df55e86e7126b0582856720bb9177b553ff1mtklein    source_set(target_name) {
617c095df55e86e7126b0582856720bb9177b553ff1mtklein      forward_variables_from(invoker, "*", [ "public_include_dirs" ])
618c095df55e86e7126b0582856720bb9177b553ff1mtklein      public_configs = [
619c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":" + target_name + "_config",
620c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":skia_private",
621c095df55e86e7126b0582856720bb9177b553ff1mtklein      ]
622c095df55e86e7126b0582856720bb9177b553ff1mtklein
623c095df55e86e7126b0582856720bb9177b553ff1mtklein      if (!defined(deps)) {
624c095df55e86e7126b0582856720bb9177b553ff1mtklein        deps = []
625c095df55e86e7126b0582856720bb9177b553ff1mtklein      }
626c095df55e86e7126b0582856720bb9177b553ff1mtklein      deps += [ ":skia" ]
627c095df55e86e7126b0582856720bb9177b553ff1mtklein      testonly = true
628c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
62925c81d4e651b43b8217c365c87d530036529a673mtklein  }
630c095df55e86e7126b0582856720bb9177b553ff1mtklein
631c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gpu_tool_utils") {
63238925aa37c17c0f54868852b8c3edf373400c742mtklein    public_include_dirs = []
63338925aa37c17c0f54868852b8c3edf373400c742mtklein    if (skia_enable_gpu) {
63438925aa37c17c0f54868852b8c3edf373400c742mtklein      public_defines = []
63538925aa37c17c0f54868852b8c3edf373400c742mtklein      public_include_dirs += [ "tools/gpu" ]
636d68f9b00389bf676b171f250e684486cb2fbd404mtklein
637d68f9b00389bf676b171f250e684486cb2fbd404mtklein      deps = []
63838925aa37c17c0f54868852b8c3edf373400c742mtklein      sources = [
63938925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/GrContextFactory.cpp",
64038925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/GrTest.cpp",
64138925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/TestContext.cpp",
64238925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/GLTestContext.cpp",
643605d95289379a07aad50b38ca6badbee45813d56mtklein        "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp",
64438925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/DebugGLTestContext.cpp",
64538925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrBufferObj.cpp",
64638925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
64738925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrProgramObj.cpp",
64838925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrShaderObj.cpp",
64938925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrTextureObj.cpp",
65038925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
65138925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/null/NullGLTestContext.cpp",
65238925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
65338925aa37c17c0f54868852b8c3edf373400c742mtklein      libs = []
65438925aa37c17c0f54868852b8c3edf373400c742mtklein
65538925aa37c17c0f54868852b8c3edf373400c742mtklein      if (is_android) {
65638925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
65738925aa37c17c0f54868852b8c3edf373400c742mtklein      } else if (is_linux) {
65838925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
65938925aa37c17c0f54868852b8c3edf373400c742mtklein      } else if (is_mac) {
66038925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
66138925aa37c17c0f54868852b8c3edf373400c742mtklein      }
6626ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein
663d68f9b00389bf676b171f250e684486cb2fbd404mtklein      if (skia_use_angle) {
664d68f9b00389bf676b171f250e684486cb2fbd404mtklein        public_defines += [ "SK_ANGLE" ]
665d68f9b00389bf676b171f250e684486cb2fbd404mtklein        deps += [ "//third_party/angle2" ]
666d68f9b00389bf676b171f250e684486cb2fbd404mtklein        sources += [ "tools/gpu/gl/angle/GLTestContext_angle.cpp" ]
66738925aa37c17c0f54868852b8c3edf373400c742mtklein      }
66838925aa37c17c0f54868852b8c3edf373400c742mtklein      if (skia_use_mesa) {
66938925aa37c17c0f54868852b8c3edf373400c742mtklein        public_defines += [ "SK_MESA" ]
67038925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/mesa/GLTestContext_mesa.cpp" ]
67138925aa37c17c0f54868852b8c3edf373400c742mtklein        libs += [ "OSMesa" ]
67238925aa37c17c0f54868852b8c3edf373400c742mtklein      }
673d68f9b00389bf676b171f250e684486cb2fbd404mtklein      if (skia_use_vulkan) {
674d68f9b00389bf676b171f250e684486cb2fbd404mtklein        sources += [ "tools/gpu/vk/VkTestContext.cpp" ]
675d68f9b00389bf676b171f250e684486cb2fbd404mtklein      }
676a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein    }
67725c81d4e651b43b8217c365c87d530036529a673mtklein  }
67825c81d4e651b43b8217c365c87d530036529a673mtklein
679c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("flags") {
680c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/flags" ]
681c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
682c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommandLineFlags.cpp",
683046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
684046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
685046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  test_lib("common_flags") {
686046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    public_include_dirs = [ "tools/flags" ]
687046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
688c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlags.cpp",
689c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlagsConfig.cpp",
690c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
691c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
692046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
693c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
694c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
69525c81d4e651b43b8217c365c87d530036529a673mtklein  }
69625c81d4e651b43b8217c365c87d530036529a673mtklein
697c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tool_utils") {
698c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [
699c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools",
700c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger",
701c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer",
702c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
703c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
704c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/images/SkForceLinking.cpp",
705c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
706b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "tools/AndroidSkDebugToStdOut.cpp",
707c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/CrashHandler.cpp",
7080590fa549d09bd1b6f26c0d5e470f35efe430d65mtklein      "tools/LsanSuppressions.cpp",
709c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ProcStats.cpp",
710c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/Resources.cpp",
711c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ThermalManager.cpp",
712c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/UrlDataManager.cpp",
713c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDebugCanvas.cpp",
714c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDrawCommand.cpp",
715c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkJsonWriteBuffer.cpp",
716c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkObjectParser.cpp",
717c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkOverdrawMode.cpp",
718c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/picture_utils.cpp",
719c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/random_parse_path.cpp",
720c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils.cpp",
721c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils_font.cpp",
722c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer/Timer.cpp",
723c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
724c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
725046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
726c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
727c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
728c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
729c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_deps = [
730c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/jsoncpp",
731c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
732c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
73325c81d4e651b43b8217c365c87d530036529a673mtklein
734c095df55e86e7126b0582856720bb9177b553ff1mtklein  gm_sources = exec_script("gyp/find.py",
735c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [
736c095df55e86e7126b0582856720bb9177b553ff1mtklein                             "*.c*",
737c095df55e86e7126b0582856720bb9177b553ff1mtklein                             rebase_path("gm"),
738c095df55e86e7126b0582856720bb9177b553ff1mtklein                           ],
739c095df55e86e7126b0582856720bb9177b553ff1mtklein                           "list lines",
740c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [])
741c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gm") {
742c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "gm" ]
743c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = gm_sources
744c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
745c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
746c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
747c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
748c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
749c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
75025c81d4e651b43b8217c365c87d530036529a673mtklein
751c095df55e86e7126b0582856720bb9177b553ff1mtklein  tests_sources = exec_script("gyp/find.py",
752c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
753c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
754c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("tests"),
755c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
756c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
757c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
758c095df55e86e7126b0582856720bb9177b553ff1mtklein
759c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tests") {
760c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tests" ]
761a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    sources = tests_sources - [
762a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
763a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
764a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/skia_test.cpp"),  # alternate main
765a45be61d6beeb923d1b3352776042d58d7b7280dmtklein              ]
766a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    if (!fontmgr_android_enabled) {
767a45be61d6beeb923d1b3352776042d58d7b7280dmtklein      sources -= [ rebase_path("tests/FontMgrAndroidParserTest.cpp") ]
768a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    }
769c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
7706cf896d7ce03b87b3a5595bc66caf0a34c993755fmalita      ":experimental_svg_model",
771c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
772c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
773c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
774c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
775c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
776c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/zlib",
777c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
778c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
7792f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
780c095df55e86e7126b0582856720bb9177b553ff1mtklein  bench_sources = exec_script("gyp/find.py",
781c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
782c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
783c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("bench"),
784c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
785c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
786c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
787c095df55e86e7126b0582856720bb9177b553ff1mtklein
788c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("bench") {
789c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "bench" ]
790c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = bench_sources
791c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources -= [
792c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobench.cpp"),
793c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobenchAndroid.cpp"),
794c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
795c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
796c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
797c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gm",
798c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
799c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
800c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
801c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
802c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
8032b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
804c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("experimental_svg_model") {
805c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "experimental/svg/model" ]
806c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
807c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttribute.cpp",
808c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttributeParser.cpp",
809c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGCircle.cpp",
810c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGContainer.cpp",
811c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGDOM.cpp",
812c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGEllipse.cpp",
813c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGLine.cpp",
81428d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGLinearGradient.cpp",
815c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGNode.cpp",
816c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPath.cpp",
817c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPoly.cpp",
818c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRect.cpp",
819c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRenderContext.cpp",
820c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGSVG.cpp",
821c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGShape.cpp",
82228d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGStop.cpp",
823c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGTransformableNode.cpp",
824c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGValue.cpp",
825c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
826c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
827c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
828c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
829c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
830a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita
8312b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
8322b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8332b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
8342b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
8352b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
8362b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8372b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
8382b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
839046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
840a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita      ":experimental_svg_model",
8412b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
8422b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
8432b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
8442b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
8452f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
8462b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
8472b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
8482b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
8492b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8502b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
8512b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
8522b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
853a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein  if (!is_debug) {  # I've benchmarked debug code once too many times...
854a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein    executable("monobench") {
855a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      sources = [
856a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        "tools/monobench.cpp",
857a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      ]
858a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      deps = [
859a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        ":bench",
860a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        ":skia",
861a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      ]
862a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      testonly = true
863a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein    }
8642b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
8652b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
8662b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
8672b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8682b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
8692b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8702b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
8712b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
872046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
8736519c21a57946366c1141fa81fe1b283150b43fcfmalita      ":experimental_svg_model",
8742b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
8752b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
8762b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
8772b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
8782b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
8792b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
8802b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8812b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
8822b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
88319a9720978700a24efed8dda7e0935ea2b7338c4halcanary
88438925aa37c17c0f54868852b8c3edf373400c742mtklein  if (skia_enable_gpu) {
88538925aa37c17c0f54868852b8c3edf373400c742mtklein    executable("skpbench") {
88638925aa37c17c0f54868852b8c3edf373400c742mtklein      sources = [
88738925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/skpbench/skpbench.cpp",
88838925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
88938925aa37c17c0f54868852b8c3edf373400c742mtklein      deps = [
89038925aa37c17c0f54868852b8c3edf373400c742mtklein        ":flags",
89138925aa37c17c0f54868852b8c3edf373400c742mtklein        ":gpu_tool_utils",
89238925aa37c17c0f54868852b8c3edf373400c742mtklein        ":skia",
89338925aa37c17c0f54868852b8c3edf373400c742mtklein        ":tool_utils",
89438925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
89538925aa37c17c0f54868852b8c3edf373400c742mtklein      testonly = true
89638925aa37c17c0f54868852b8c3edf373400c742mtklein    }
8974b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton  }
8984b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton
8996f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein  if (current_cpu != "mipsel") {  # Clang 3.8 crashes while compiling hb-icu.cc for mipsel.
9003eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    executable("sktexttopdf-hb") {
9016f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      sources = [
9026f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/SkShaper_harfbuzz.cpp",
9036f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/using_skia_and_harfbuzz.cpp",
9046f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
9056f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      deps = [
9066f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        ":skia",
9076f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "//third_party/harfbuzz",
9086f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
9096f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      testonly = true
9106f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein    }
91119a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
9123eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  executable("sktexttopdf") {
9133eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    sources = [
9143eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/SkShaper_primitive.cpp",
9153eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/using_skia_and_harfbuzz.cpp",
9163eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
9173eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    deps = [
9183eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      ":skia",
9193eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
9203eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    testonly = true
9213eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  }
922046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein
923046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  executable("get_images_from_skps") {
924046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
925046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "tools/get_images_from_skps.cpp",
926046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
927046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    deps = [
928046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
929046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":skia",
930046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "//third_party/jsoncpp",
931046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
932046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    testonly = true
933046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
934ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein
935ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein  executable("skiaserve") {
936ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    sources = [
937ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/Request.cpp",
938ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/Response.cpp",
939ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/skiaserve.cpp",
940ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BatchBoundsHandler.cpp",
941ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BatchesHandler.cpp",
942ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BreakHandler.cpp",
943ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp",
944ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/CmdHandler.cpp",
945ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ColorModeHandler.cpp",
946ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/DataHandler.cpp",
947ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/DownloadHandler.cpp",
948ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/EnableGPUHandler.cpp",
949ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ImgHandler.cpp",
950ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/InfoHandler.cpp",
951ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/PostHandler.cpp",
952ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/QuitHandler.cpp",
953ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/RootHandler.cpp",
954ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    ]
955ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    deps = [
956ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":flags",
957ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":gpu_tool_utils",
958ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":skia",
959ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":tool_utils",
960ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/jsoncpp",
961ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/libmicrohttpd",
962ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/libpng",
963ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    ]
964ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    testonly = true
965ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein  }
96625c81d4e651b43b8217c365c87d530036529a673mtklein}
967