BUILD.gn revision a627b5c3b9004118621bfa99f3952465adfa4ad6
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
8c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
96321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_expat = true
103cc22180561ae17a64ff0e0f9ba173eac149009emtklein  skia_use_fontconfig = is_linux
11cdedd0e061f3f50cd217638c28b27d798d930896mtklein  skia_use_freetype = is_android || is_fuchsia || is_linux
12457b42a6398020c3791f62f8c8637653e0d39bccmtklein  skia_use_giflib = !is_fuchsia
136321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libjpeg_turbo = true
146321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libpng = true
15eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  skia_use_libwebp = !is_fuchsia
16a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein  skia_use_mesa = false
176321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_sfntly = !is_fuchsia
18f29180e65afdd3bd5ff3c1a2f8d456f9aea125edmtklein  skia_use_vulkan = is_android && defined(ndk_api) && ndk_api >= 24
196321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_zlib = true
201bd72ba2cb349788223e3e7304f25751c87f1f95mtklein
211bd72ba2cb349788223e3e7304f25751c87f1f95mtklein  skia_enable_android_framework_defines = false
2206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  skia_enable_gpu = true
2306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  skia_enable_tools = !is_fuchsia
24c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
25c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
2606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein# Our tools require static linking (they use non-exported symbols) and GPU support (just lazy).
2706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinskia_enable_tools = skia_enable_tools && skia_enable_gpu && !is_component_build
2806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
29a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinfontmgr_android_enabled = skia_use_expat && skia_use_freetype
30a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
311211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
3225c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
33fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
341211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
351211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
361211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
371211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
381211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
391211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
411211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
421211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
4325c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
441211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
451211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
4625c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
471211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
481211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
49c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
50c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
511211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
52c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_DLL" ]
535561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  if (is_linux) {
545561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio    defines += [ "SK_SAMPLES_FOR_X" ]
555561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  }
56cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  if (skia_enable_android_framework_defines) {
57cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein    defines += skia_android_framework_defines
58cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  }
5906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (!skia_enable_gpu) {
6006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    defines += [ "SK_SUPPORT_GPU=0" ]
6106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
62c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
63c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
64c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
65c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
66c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
67c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
68c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
69c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
70c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
711211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
72c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
73c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
74c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
7525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
7625c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
77c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
79c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
80c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
81c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
82c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
832b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
84c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
85c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
869e0d9ddc0ef39e239670b22e5439993c45f4ae42mtklein    "src/sksl",
87c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
887a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    "src/utils/win",
89c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
92150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
936321381d18f9d478598c0996c1380633003961ddmtklein  defines = [ "SK_GAMMA_APPLY_TO_A8" ]
94b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  if (is_android) {
95b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    defines += [
96b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_EXPONENT=1.4",
97b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_CONTRAST=0.0",
98b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    ]
99b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  }
10088a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  if (is_official_build || is_android) {
10188a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    # TODO(bsalomon): it'd be nice to make Android normal.
10288a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    defines += [ "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=0" ]
10388a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  }
104c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
105c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
106c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
107c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
108c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
109c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
110c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
111c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
112c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
113c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
114c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
115c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
116c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
117c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1189b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein# Use for CPU-specific Skia code that needs particular compiler flags.
1199b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleintemplate("opts") {
1209b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  if (invoker.enabled) {
1219b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1229b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker, "*")
1239b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
1249b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1259b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  } else {
1269b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    # If not enabled, a phony empty target that swallows all otherwise unused variables.
1279b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1289b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker,
1299b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             "*",
1309b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             [
1319b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "sources",
1329b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "cflags",
1339b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             ])
1349b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1359b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  }
136a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal}
137a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal
138422310ddbe4db616200a949adcac2c560685030cmtkleinis_x86 = current_cpu == "x64" || current_cpu == "x86"
139c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1407d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("none") {
1417d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
142b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.none_sources
143b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
144b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
145b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1467d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("armv7") {
147b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm"
148b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.armv7_sources + skia_opts.neon_sources
1497d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  cflags = []
150b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
151b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
152b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("arm64") {
153b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
154b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.arm64_sources
155b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
156b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
157b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
158b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("crc32") {
159b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
160b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.crc32_sources
161b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = [ "-march=armv8-a+crc" ]
162b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
163b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1649b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse2") {
1659b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
166b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse2_sources
1679b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse2" ]
1689b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1694e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1709b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("ssse3") {
1719b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
172b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.ssse3_sources
1739b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mssse3" ]
1749b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1754e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1769b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse41") {
1779b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
178b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse41_sources
1799b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.1" ]
1809b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
181c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1829b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse42") {
1839b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
184b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse42_sources
1859b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.2" ]
1869b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1879b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein
1889b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("avx") {
1899b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
190b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.avx_sources
1919b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mavx" ]
192c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
193c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
194349cecefe21e2b45acc201290cc4e4fa93b4ad76mtkleinopts("dsp") {
195349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein  enabled = current_cpu == "mipsel"
196b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.mips_dsp_sources
197b6064ef5b822ebc14d62170bd4ffa2f7c9bfbe4dmtklein  cflags = []
198349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein}
199349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein
200c095df55e86e7126b0582856720bb9177b553ff1mtklein# Any feature of Skia that requires third-party code should be optional and use this template.
201457b42a6398020c3791f62f8c8637653e0d39bccmtkleintemplate("optional") {
202457b42a6398020c3791f62f8c8637653e0d39bccmtklein  if (invoker.enabled) {
203457b42a6398020c3791f62f8c8637653e0d39bccmtklein    config(target_name + "_public") {
204cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.public_defines)) {
205cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        defines = invoker.public_defines
206cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
207457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
208457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
209cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      forward_variables_from(invoker,
210cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             "*",
211cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             [
212cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "public_defines",
213cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
214cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             ])
215457b42a6398020c3791f62f8c8637653e0d39bccmtklein      all_dependent_configs = [ ":" + target_name + "_public" ]
2169b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
217457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
218457b42a6398020c3791f62f8c8637653e0d39bccmtklein  } else {
219457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
220457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker,
221457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             "*",
222457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             [
223457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "public_defines",
224457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "deps",
2256ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein                               "libs",
226457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "sources",
227cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
228457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             ])
229cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.sources_when_disabled)) {
230cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        sources = invoker.sources_when_disabled
231cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
232cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      configs += skia_library_configs
233457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
234eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  }
235eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein}
236457b42a6398020c3791f62f8c8637653e0d39bccmtklein
237a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinoptional("fontmgr_android") {
238a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  enabled = fontmgr_android_enabled
239a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
240a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  deps = [
241a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/expat",
242a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/freetype2",
243a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
244a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  sources = [
245a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android.cpp",
246a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_factory.cpp",
247a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_parser.cpp",
248a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
249a45be61d6beeb923d1b3352776042d58d7b7280dmtklein}
250a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
251d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtkleinoptional("fontmgr_custom") {
252d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  enabled = is_linux && skia_use_freetype && !skia_use_fontconfig
253d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
254d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  deps = [
255d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "//third_party/freetype2",
256d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
257d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  sources = [
258d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom.cpp",
259d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom_directory_factory.cpp",
260d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
261d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein}
262d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
2633cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("fontmgr_fontconfig") {
2643cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype && skia_use_fontconfig
2653cc22180561ae17a64ff0e0f9ba173eac149009emtklein
2663cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
2673cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party:fontconfig",
2683cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
2693cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2703cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
2711ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman    "src/ports/SkFontConfigInterface.cpp",
2723cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct.cpp",
2733cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct_factory.cpp",
2743cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_FontConfigInterface.cpp",
2753cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig.cpp",
2763cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig_factory.cpp",
2773cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2783cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
2793cc22180561ae17a64ff0e0f9ba173eac149009emtklein
280cdedd0e061f3f50cd217638c28b27d798d930896mtkleinoptional("fontmgr_fuchsia") {
281cdedd0e061f3f50cd217638c28b27d798d930896mtklein  enabled = is_fuchsia && skia_use_freetype
282cdedd0e061f3f50cd217638c28b27d798d930896mtklein
283cdedd0e061f3f50cd217638c28b27d798d930896mtklein  deps = [
284cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "//third_party/freetype2",
285cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
286cdedd0e061f3f50cd217638c28b27d798d930896mtklein  sources = [
287cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom.cpp",
288cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom_empty_factory.cpp",
289cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
290cdedd0e061f3f50cd217638c28b27d798d930896mtklein}
291cdedd0e061f3f50cd217638c28b27d798d930896mtklein
292457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("gif") {
293457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_giflib
294457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_GIF_LIBRARY" ]
295457b42a6398020c3791f62f8c8637653e0d39bccmtklein
296457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
297457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/giflib",
298457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
299457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
300457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkGifCodec.cpp",
301457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
302457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
303457b42a6398020c3791f62f8c8637653e0d39bccmtklein
30406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinoptional("gpu") {
30506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  enabled = skia_enable_gpu
30606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources = skia_gpu_sources + [ "src/gpu/gl/GrGLDefaultInterface_native.cpp" ]
30706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
30806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  # These paths need to be absolute to match the ones produced by shared_sources.gni.
30906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources -= get_path_info([
31006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
31106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLDefaultInterface_none.cpp",
31206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           ],
31306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           "abspath")
31406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (is_android) {
31506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp" ]
31606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_linux) {
31706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp" ]
31806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_mac) {
31906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp" ]
32006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else {
32106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/GrGLCreateNativeInterface_none.cpp" ]
32206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
32306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein}
32406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
3256321381d18f9d478598c0996c1380633003961ddmtkleinoptional("jpeg") {
3266321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libjpeg_turbo
3276321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_JPEG_LIBRARY" ]
3286321381d18f9d478598c0996c1380633003961ddmtklein
3296321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3306321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libjpeg-turbo:libjpeg",
3316321381d18f9d478598c0996c1380633003961ddmtklein  ]
3326321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3336321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegCodec.cpp",
3346321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegDecoderMgr.cpp",
3356321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegUtility.cpp",
3366321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGImageEncoder.cpp",
3376321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGWriteUtility.cpp",
3386321381d18f9d478598c0996c1380633003961ddmtklein  ]
3396321381d18f9d478598c0996c1380633003961ddmtklein}
3406321381d18f9d478598c0996c1380633003961ddmtklein
3416321381d18f9d478598c0996c1380633003961ddmtkleinoptional("pdf") {
3426321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_zlib
3436321381d18f9d478598c0996c1380633003961ddmtklein
3446321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3456321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/zlib",
3466321381d18f9d478598c0996c1380633003961ddmtklein  ]
347b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_pdf_sources
348cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein  sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ]
3496321381d18f9d478598c0996c1380633003961ddmtklein
3506321381d18f9d478598c0996c1380633003961ddmtklein  if (skia_use_sfntly) {
3516321381d18f9d478598c0996c1380633003961ddmtklein    deps += [ "//third_party/sfntly" ]
352cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein    public_defines = [ "SK_PDF_USE_SFNTLY" ]
3536321381d18f9d478598c0996c1380633003961ddmtklein  }
3546321381d18f9d478598c0996c1380633003961ddmtklein}
3556321381d18f9d478598c0996c1380633003961ddmtklein
3566321381d18f9d478598c0996c1380633003961ddmtkleinoptional("png") {
3576321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libpng
3586321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_PNG_LIBRARY" ]
3596321381d18f9d478598c0996c1380633003961ddmtklein
3606321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3616321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libpng",
3626321381d18f9d478598c0996c1380633003961ddmtklein  ]
3636321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3646321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkIcoCodec.cpp",
3656321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkPngCodec.cpp",
3666321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkPNGImageEncoder.cpp",
3676321381d18f9d478598c0996c1380633003961ddmtklein  ]
3686321381d18f9d478598c0996c1380633003961ddmtklein}
3696321381d18f9d478598c0996c1380633003961ddmtklein
3703cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("typeface_freetype") {
3713cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype
3723cc22180561ae17a64ff0e0f9ba173eac149009emtklein
3733cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
3743cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
3753cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3763cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
3773cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType.cpp",
3783cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType_common.cpp",
3793cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3803cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
3813cc22180561ae17a64ff0e0f9ba173eac149009emtklein
3826ef6999017febaf0039b83c1ff4da1efe9c0e85dmtkleinoptional("vulkan") {
3836ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein  enabled = skia_use_vulkan
3846ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein  public_defines = [ "SK_VULKAN" ]
3856ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein  libs = [ "vulkan" ]
3866ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein  sources = skia_vk_sources
3876ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein}
3886ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein
389457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("webp") {
390457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_libwebp
391457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_WEBP_LIBRARY" ]
392457b42a6398020c3791f62f8c8637653e0d39bccmtklein
393457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
394457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/libwebp",
395457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
396457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
397457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpAdapterCodec.cpp",
398457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpCodec.cpp",
399457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/images/SkWEBPImageEncoder.cpp",
400457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
401457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
402eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein
4036321381d18f9d478598c0996c1380633003961ddmtkleinoptional("xml") {
4046321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_expat
4056321381d18f9d478598c0996c1380633003961ddmtklein
4066321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
4076321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/expat",
4086321381d18f9d478598c0996c1380633003961ddmtklein  ]
4096321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
4106321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkDOM.cpp",
4116321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLParser.cpp",
4126321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLWriter.cpp",
4136321381d18f9d478598c0996c1380633003961ddmtklein  ]
4146321381d18f9d478598c0996c1380633003961ddmtklein}
4156321381d18f9d478598c0996c1380633003961ddmtklein
416c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
417c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
418c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
419c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
420c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
421b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":arm64",
422b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":armv7",
4239b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":avx",
424b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":crc32",
425349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein    ":dsp",
426a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    ":fontmgr_android",
427d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    ":fontmgr_custom",
4283cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":fontmgr_fontconfig",
429cdedd0e061f3f50cd217638c28b27d798d930896mtklein    ":fontmgr_fuchsia",
430457b42a6398020c3791f62f8c8637653e0d39bccmtklein    ":gif",
43106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    ":gpu",
4326321381d18f9d478598c0996c1380633003961ddmtklein    ":jpeg",
4339b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":none",
4346321381d18f9d478598c0996c1380633003961ddmtklein    ":pdf",
4356321381d18f9d478598c0996c1380633003961ddmtklein    ":png",
4369b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse2",
4379b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse41",
4389b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse42",
4399b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":ssse3",
4403cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":typeface_freetype",
4416ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein    ":vulkan",
442eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein    ":webp",
4436321381d18f9d478598c0996c1380633003961ddmtklein    ":xml",
444c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
445c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
446c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
447b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_core_sources
448b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_effects_sources
449b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_sksl_sources
450b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_utils_sources
451c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
45225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
45325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
45425c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
4551211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
4561211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
4571211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
4581211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
4591211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
4601211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
4611211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
4621211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
46325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
4641211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
4651211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
4661211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
467c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
468c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
4692b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
470c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
471c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
4721211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
473c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
474c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
475c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
476c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
47725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
47825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
479c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
480c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
481c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
482c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
483b944728b93a1623d73be31413a6798e0b7dddc16brettw
4847d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  libs = []
4857d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
486c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
487c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
488c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
489c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
490c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
491c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
492c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
493c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
494c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
495c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
496c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
497c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
49825c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
499c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
500b9be979eaecebcb5350efae46e6555188e7c3a78mtklein    sources -=
501b9be979eaecebcb5350efae46e6555188e7c3a78mtklein        [ get_path_info("src/utils/SkThreadUtils_pthread.cpp", "abspath") ]
502c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
503c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
504c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
505c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
50625c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
507c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
508c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
509c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
5107d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  if (is_android) {
5117d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    deps += [
5127d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/cpu-features",
5137d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/expat",
5147d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
51506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_android.cpp" ]
5167d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    libs += [
5177d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "EGL",
5187d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "GLESv2",
5197d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "log",
5207d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
5217d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  }
5227d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
523c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
52409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
52509e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GL",
52609e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GLU",
52709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "X11",
52809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
52906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
530c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
531c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
532c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
533c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
5347d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_stdio.cpp",
535c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
536c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
537c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
538c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
53909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
54009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "ApplicationServices.framework",
54109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "OpenGL.framework",
54209e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
543c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
5446fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
5456fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
54606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
5476fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
548c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
549c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
550ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
551ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
552ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
553ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
554ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
555ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
556ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
557ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
558ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
559ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
560ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
561ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
562ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
5631211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
5641211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
5651211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
566c095df55e86e7126b0582856720bb9177b553ff1mtklein         rebase_path(skia_h_headers, target_gen_dir)
5671211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
5681211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
5691211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
5701211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
5711211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
57206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinif (skia_enable_gpu && target_cpu == "x64") {
5731fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # Our bots only have 64-bit libOSMesa installed.
5741fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # TODO: worth fixing?
5751fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  executable("fiddle") {
5761fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    include_dirs = [ "$target_gen_dir" ]
5771fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    libs = []
5781fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    if (is_linux) {
5791fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      libs += [ "OSMesa" ]
5801fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    }
58156d5669095feca663e9e05f4621146abeee626ecmtklein
5821fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    sources = [
5831fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "src/images/SkForceLinking.cpp",
5841fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/draw.cpp",
5851fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/fiddle_main.cpp",
5861fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
5871fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    deps = [
5881fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia",
5891fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia.h",
5901fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
5911fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  }
592c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
59325c81d4e651b43b8217c365c87d530036529a673mtklein
594c095df55e86e7126b0582856720bb9177b553ff1mtklein# Targets guarded by skia_enable_tools may use //third_party freely.
595c095df55e86e7126b0582856720bb9177b553ff1mtkleinif (skia_enable_tools) {
596c095df55e86e7126b0582856720bb9177b553ff1mtklein  template("test_lib") {
597c095df55e86e7126b0582856720bb9177b553ff1mtklein    config(target_name + "_config") {
598c095df55e86e7126b0582856720bb9177b553ff1mtklein      include_dirs = invoker.public_include_dirs
599a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      if (defined(invoker.public_defines)) {
600a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein        defines = invoker.public_defines
601a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      }
602c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
603c095df55e86e7126b0582856720bb9177b553ff1mtklein    source_set(target_name) {
604c095df55e86e7126b0582856720bb9177b553ff1mtklein      forward_variables_from(invoker, "*", [ "public_include_dirs" ])
605c095df55e86e7126b0582856720bb9177b553ff1mtklein      public_configs = [
606c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":" + target_name + "_config",
607c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":skia_private",
608c095df55e86e7126b0582856720bb9177b553ff1mtklein      ]
609c095df55e86e7126b0582856720bb9177b553ff1mtklein
610c095df55e86e7126b0582856720bb9177b553ff1mtklein      if (!defined(deps)) {
611c095df55e86e7126b0582856720bb9177b553ff1mtklein        deps = []
612c095df55e86e7126b0582856720bb9177b553ff1mtklein      }
613c095df55e86e7126b0582856720bb9177b553ff1mtklein      deps += [ ":skia" ]
614c095df55e86e7126b0582856720bb9177b553ff1mtklein      testonly = true
615c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
61625c81d4e651b43b8217c365c87d530036529a673mtklein  }
617c095df55e86e7126b0582856720bb9177b553ff1mtklein
618c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gpu_tool_utils") {
619a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein    public_defines = []
620c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/gpu" ]
621c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
622c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/GrContextFactory.cpp",
623c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/GrTest.cpp",
624c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/TestContext.cpp",
625c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/GLTestContext.cpp",
626c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/DebugGLTestContext.cpp",
627c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrBufferObj.cpp",
628c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
629c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrProgramObj.cpp",
630c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrShaderObj.cpp",
631c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrTextureObj.cpp",
632c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
633c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/null/NullGLTestContext.cpp",
63425c81d4e651b43b8217c365c87d530036529a673mtklein    ]
635c095df55e86e7126b0582856720bb9177b553ff1mtklein    libs = []
63625c81d4e651b43b8217c365c87d530036529a673mtklein
6377d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    if (is_android) {
6387d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
6397d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    } else if (is_linux) {
640c095df55e86e7126b0582856720bb9177b553ff1mtklein      sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
641c095df55e86e7126b0582856720bb9177b553ff1mtklein    } else if (is_mac) {
642c095df55e86e7126b0582856720bb9177b553ff1mtklein      sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
64325c81d4e651b43b8217c365c87d530036529a673mtklein    }
6446ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein
6456ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein    if (skia_use_vulkan) {
6466ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein      sources += [ "tools/gpu/vk/VkTestContext.cpp" ]
6476ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein    }
648a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein    if (skia_use_mesa) {
649a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      public_defines += [ "SK_MESA" ]
650a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      sources += [ "tools/gpu/gl/mesa/GLTestContext_mesa.cpp" ]
651a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      libs += [ "OSMesa" ]
652a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein    }
65325c81d4e651b43b8217c365c87d530036529a673mtklein  }
65425c81d4e651b43b8217c365c87d530036529a673mtklein
655c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("flags") {
656c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/flags" ]
657c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
658c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommandLineFlags.cpp",
659046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
660046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
661046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  test_lib("common_flags") {
662046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    public_include_dirs = [ "tools/flags" ]
663046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
664c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlags.cpp",
665c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlagsConfig.cpp",
666c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
667c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
668046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
669c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
670c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
67125c81d4e651b43b8217c365c87d530036529a673mtklein  }
67225c81d4e651b43b8217c365c87d530036529a673mtklein
673c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tool_utils") {
674c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [
675c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools",
676c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger",
677c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer",
678c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
679c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
680c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/images/SkForceLinking.cpp",
681c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
682b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "tools/AndroidSkDebugToStdOut.cpp",
683c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/CrashHandler.cpp",
6840590fa549d09bd1b6f26c0d5e470f35efe430d65mtklein      "tools/LsanSuppressions.cpp",
685c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ProcStats.cpp",
686c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/Resources.cpp",
687c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ThermalManager.cpp",
688c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/UrlDataManager.cpp",
689c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDebugCanvas.cpp",
690c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDrawCommand.cpp",
691c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkJsonWriteBuffer.cpp",
692c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkObjectParser.cpp",
693c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkOverdrawMode.cpp",
694c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/picture_utils.cpp",
695c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/random_parse_path.cpp",
696c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils.cpp",
697c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils_font.cpp",
698c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer/Timer.cpp",
699c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
700c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
701046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
702c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
703c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
704c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
705c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_deps = [
706c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/jsoncpp",
707c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
708c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
70925c81d4e651b43b8217c365c87d530036529a673mtklein
710c095df55e86e7126b0582856720bb9177b553ff1mtklein  gm_sources = exec_script("gyp/find.py",
711c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [
712c095df55e86e7126b0582856720bb9177b553ff1mtklein                             "*.c*",
713c095df55e86e7126b0582856720bb9177b553ff1mtklein                             rebase_path("gm"),
714c095df55e86e7126b0582856720bb9177b553ff1mtklein                           ],
715c095df55e86e7126b0582856720bb9177b553ff1mtklein                           "list lines",
716c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [])
717c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gm") {
718c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "gm" ]
719c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = gm_sources
720c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
721c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
722c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
723c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
724c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
725c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
72625c81d4e651b43b8217c365c87d530036529a673mtklein
727c095df55e86e7126b0582856720bb9177b553ff1mtklein  tests_sources = exec_script("gyp/find.py",
728c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
729c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
730c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("tests"),
731c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
732c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
733c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
734c095df55e86e7126b0582856720bb9177b553ff1mtklein
735c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tests") {
736c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tests" ]
737a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    sources = tests_sources - [
738a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
739a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
740a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/skia_test.cpp"),  # alternate main
741a45be61d6beeb923d1b3352776042d58d7b7280dmtklein              ]
742a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    if (!fontmgr_android_enabled) {
743a45be61d6beeb923d1b3352776042d58d7b7280dmtklein      sources -= [ rebase_path("tests/FontMgrAndroidParserTest.cpp") ]
744a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    }
745c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
7466cf896d7ce03b87b3a5595bc66caf0a34c993755fmalita      ":experimental_svg_model",
747c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
748c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
749c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
750c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
751c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
752c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/zlib",
753c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
754c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
7552f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
756c095df55e86e7126b0582856720bb9177b553ff1mtklein  bench_sources = exec_script("gyp/find.py",
757c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
758c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
759c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("bench"),
760c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
761c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
762c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
763c095df55e86e7126b0582856720bb9177b553ff1mtklein
764c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("bench") {
765c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "bench" ]
766c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = bench_sources
767c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources -= [
768c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobench.cpp"),
769c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobenchAndroid.cpp"),
770c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
771c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
772c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
773c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gm",
774c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
775c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
776c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
777c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
778c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
7792b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
780c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("experimental_svg_model") {
781c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "experimental/svg/model" ]
782c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
783c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttribute.cpp",
784c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttributeParser.cpp",
785c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGCircle.cpp",
786c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGContainer.cpp",
787c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGDOM.cpp",
788c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGEllipse.cpp",
789c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGLine.cpp",
79028d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGLinearGradient.cpp",
791c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGNode.cpp",
792c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPath.cpp",
793c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPoly.cpp",
794c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRect.cpp",
795c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRenderContext.cpp",
796c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGSVG.cpp",
797c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGShape.cpp",
79828d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGStop.cpp",
799c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGTransformableNode.cpp",
800c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGValue.cpp",
801c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
802c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
803c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
804c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
805c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
806a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita
8072b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
8082b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8092b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
8102b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
8112b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
8122b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8132b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
8142b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
815046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
816a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita      ":experimental_svg_model",
8172b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
8182b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
8192b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
8202b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
8212f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
8222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
8232b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
8242b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
8252b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8262b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
8272b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
8282b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
8292b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("monobench") {
8302b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8312b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "tools/monobench.cpp",
8322b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8332b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
8342b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
8352b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
8362b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8372b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
8382b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
8392b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
8402b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
8412b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8422b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
8432b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8442b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
8452b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
846046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
8476519c21a57946366c1141fa81fe1b283150b43fcfmalita      ":experimental_svg_model",
8482b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
8492b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
8502b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
8512b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
8522b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
8532b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
8542b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8552b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
8562b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
85719a9720978700a24efed8dda7e0935ea2b7338c4halcanary
8584b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton  executable("skpbench") {
8594b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton    sources = [
8604b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton      "tools/skpbench/skpbench.cpp",
8614b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton    ]
8624b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton    deps = [
8634b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton      ":flags",
8644b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton      ":gpu_tool_utils",
8654b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton      ":skia",
8664b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton      ":tool_utils",
8674b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton    ]
8684b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton    testonly = true
8694b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton  }
8704b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton
8716f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein  if (current_cpu != "mipsel") {  # Clang 3.8 crashes while compiling hb-icu.cc for mipsel.
8723eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    executable("sktexttopdf-hb") {
8736f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      sources = [
8746f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/SkShaper_harfbuzz.cpp",
8756f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/using_skia_and_harfbuzz.cpp",
8766f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
8776f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      deps = [
8786f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        ":skia",
8796f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "//third_party/harfbuzz",
8806f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
8816f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      testonly = true
8826f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein    }
88319a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
8843eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  executable("sktexttopdf") {
8853eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    sources = [
8863eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/SkShaper_primitive.cpp",
8873eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/using_skia_and_harfbuzz.cpp",
8883eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
8893eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    deps = [
8903eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      ":skia",
8913eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
8923eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    testonly = true
8933eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  }
894046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein
895046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  executable("get_images_from_skps") {
896046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
897046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "tools/get_images_from_skps.cpp",
898046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
899046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    deps = [
900046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
901046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":skia",
902046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "//third_party/jsoncpp",
903046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
904046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    testonly = true
905046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
90625c81d4e651b43b8217c365c87d530036529a673mtklein}
907