BUILD.gn revision cdedd0e061f3f50cd217638c28b27d798d930896
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
6b944728b93a1623d73be31413a6798e0b7dddc16brettwimport("//gn/shared_sources.gni")
7b944728b93a1623d73be31413a6798e0b7dddc16brettw
8c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
9c095df55e86e7126b0582856720bb9177b553ff1mtklein  skia_enable_tools = !is_fuchsia && !is_component_build
10c095df55e86e7126b0582856720bb9177b553ff1mtklein
116321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_expat = true
123cc22180561ae17a64ff0e0f9ba173eac149009emtklein  skia_use_fontconfig = is_linux
13cdedd0e061f3f50cd217638c28b27d798d930896mtklein  skia_use_freetype = is_android || is_fuchsia || is_linux
14457b42a6398020c3791f62f8c8637653e0d39bccmtklein  skia_use_giflib = !is_fuchsia
156321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libjpeg_turbo = true
166321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libpng = true
17eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  skia_use_libwebp = !is_fuchsia
186321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_sfntly = !is_fuchsia
196321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_zlib = true
20c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
21c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
22a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinfontmgr_android_enabled = skia_use_expat && skia_use_freetype
23a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
241211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
2525c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
26fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
271211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
281211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
291211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
301211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
311211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
321211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
331211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
341211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
351211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
3625c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
371211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
381211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
3925c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
411211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
42c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
43c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
441211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
45c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_DLL" ]
465561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  if (is_linux) {
475561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio    defines += [ "SK_SAMPLES_FOR_X" ]
485561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  }
49c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
50c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
51c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
52c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
53c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
54c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
55c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
56c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
57c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
581211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
59c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
60c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
61c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
6225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
6325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
64c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
65c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
66c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
67c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
68c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
69c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
702b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
71c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
72c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
739e0d9ddc0ef39e239670b22e5439993c45f4ae42mtklein    "src/sksl",
74c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
757a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    "src/utils/win",
76c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
77c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
79150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
806321381d18f9d478598c0996c1380633003961ddmtklein  defines = [ "SK_GAMMA_APPLY_TO_A8" ]
81b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  if (is_android) {
82b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    defines += [
83b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_EXPONENT=1.4",
84b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_CONTRAST=0.0",
85b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    ]
86b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  }
87c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
88c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
89c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
92c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
93c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
94c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
95c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
96c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
97c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
98c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
99c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
100c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1019b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein# Use for CPU-specific Skia code that needs particular compiler flags.
1029b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleintemplate("opts") {
1039b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  if (invoker.enabled) {
1049b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1059b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker, "*")
1069b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
1079b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1089b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  } else {
1099b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    # If not enabled, a phony empty target that swallows all otherwise unused variables.
1109b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1119b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker,
1129b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             "*",
1139b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             [
1149b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "sources",
1159b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "cflags",
1169b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             ])
1179b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1189b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  }
119a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal}
120a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal
121422310ddbe4db616200a949adcac2c560685030cmtkleinis_x86 = current_cpu == "x64" || current_cpu == "x86"
122c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1237d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("none") {
1247d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
125b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.none_sources
126b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
127b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
128b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1297d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("armv7") {
130b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm"
131b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.armv7_sources + skia_opts.neon_sources
1327d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  cflags = []
133b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
134b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
135b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("arm64") {
136b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
137b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.arm64_sources
138b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
139b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
140b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
141b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("crc32") {
142b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
143b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.crc32_sources
144b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = [ "-march=armv8-a+crc" ]
145b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
146b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1479b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse2") {
1489b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
149b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse2_sources
1509b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse2" ]
1519b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1524e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1539b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("ssse3") {
1549b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
155b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.ssse3_sources
1569b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mssse3" ]
1579b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1584e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1599b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse41") {
1609b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
161b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse41_sources
1629b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.1" ]
1639b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
164c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1659b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse42") {
1669b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
167b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse42_sources
1689b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-msse4.2" ]
1699b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1709b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein
1719b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("avx") {
1729b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
173b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.avx_sources
1749b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  cflags = [ "-mavx" ]
175c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
176c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
177349cecefe21e2b45acc201290cc4e4fa93b4ad76mtkleinopts("dsp") {
178349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein  enabled = current_cpu == "mipsel"
179b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.mips_dsp_sources
180b6064ef5b822ebc14d62170bd4ffa2f7c9bfbe4dmtklein  cflags = []
181349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein}
182349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein
183c095df55e86e7126b0582856720bb9177b553ff1mtklein# Any feature of Skia that requires third-party code should be optional and use this template.
184457b42a6398020c3791f62f8c8637653e0d39bccmtkleintemplate("optional") {
185457b42a6398020c3791f62f8c8637653e0d39bccmtklein  if (invoker.enabled) {
186457b42a6398020c3791f62f8c8637653e0d39bccmtklein    config(target_name + "_public") {
187cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.public_defines)) {
188cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        defines = invoker.public_defines
189cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
190457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
191457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
192cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      forward_variables_from(invoker,
193cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             "*",
194cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             [
195cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "public_defines",
196cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
197cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             ])
198457b42a6398020c3791f62f8c8637653e0d39bccmtklein      all_dependent_configs = [ ":" + target_name + "_public" ]
1999b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
200457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
201457b42a6398020c3791f62f8c8637653e0d39bccmtklein  } else {
202457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
203457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker,
204457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             "*",
205457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             [
206457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "public_defines",
207457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "deps",
208457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "sources",
209cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
210457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             ])
211cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.sources_when_disabled)) {
212cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        sources = invoker.sources_when_disabled
213cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
214cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      configs += skia_library_configs
215457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
216eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  }
217eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein}
218457b42a6398020c3791f62f8c8637653e0d39bccmtklein
219a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinoptional("fontmgr_android") {
220a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  enabled = fontmgr_android_enabled
221a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
222a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  deps = [
223a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/expat",
224a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/freetype2",
225a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
226a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  sources = [
227a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android.cpp",
228a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_factory.cpp",
229a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_parser.cpp",
230a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
231a45be61d6beeb923d1b3352776042d58d7b7280dmtklein}
232a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
233d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtkleinoptional("fontmgr_custom") {
234d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  enabled = is_linux && skia_use_freetype && !skia_use_fontconfig
235d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
236d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  deps = [
237d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "//third_party/freetype2",
238d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
239d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  sources = [
240d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom.cpp",
241d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom_directory_factory.cpp",
242d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
243d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein}
244d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
2453cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("fontmgr_fontconfig") {
2463cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype && skia_use_fontconfig
2473cc22180561ae17a64ff0e0f9ba173eac149009emtklein
2483cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
2493cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party:fontconfig",
2503cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
2513cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2523cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
2533cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct.cpp",
2543cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct_factory.cpp",
2553cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_FontConfigInterface.cpp",
2563cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig.cpp",
2573cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig_factory.cpp",
2583cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
2593cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
2603cc22180561ae17a64ff0e0f9ba173eac149009emtklein
261cdedd0e061f3f50cd217638c28b27d798d930896mtkleinoptional("fontmgr_fuchsia") {
262cdedd0e061f3f50cd217638c28b27d798d930896mtklein  enabled = is_fuchsia && skia_use_freetype
263cdedd0e061f3f50cd217638c28b27d798d930896mtklein
264cdedd0e061f3f50cd217638c28b27d798d930896mtklein  deps = [
265cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "//third_party/freetype2",
266cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
267cdedd0e061f3f50cd217638c28b27d798d930896mtklein  sources = [
268cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom.cpp",
269cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom_empty_factory.cpp",
270cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
271cdedd0e061f3f50cd217638c28b27d798d930896mtklein}
272cdedd0e061f3f50cd217638c28b27d798d930896mtklein
273457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("gif") {
274457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_giflib
275457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_GIF_LIBRARY" ]
276457b42a6398020c3791f62f8c8637653e0d39bccmtklein
277457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
278457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/giflib",
279457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
280457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
281457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkGifCodec.cpp",
282457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
283457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
284457b42a6398020c3791f62f8c8637653e0d39bccmtklein
2856321381d18f9d478598c0996c1380633003961ddmtkleinoptional("jpeg") {
2866321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libjpeg_turbo
2876321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_JPEG_LIBRARY" ]
2886321381d18f9d478598c0996c1380633003961ddmtklein
2896321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
2906321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libjpeg-turbo:libjpeg",
2916321381d18f9d478598c0996c1380633003961ddmtklein  ]
2926321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
2936321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegCodec.cpp",
2946321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegDecoderMgr.cpp",
2956321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegUtility.cpp",
2966321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGImageEncoder.cpp",
2976321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGWriteUtility.cpp",
2986321381d18f9d478598c0996c1380633003961ddmtklein  ]
2996321381d18f9d478598c0996c1380633003961ddmtklein}
3006321381d18f9d478598c0996c1380633003961ddmtklein
3016321381d18f9d478598c0996c1380633003961ddmtkleinoptional("pdf") {
3026321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_zlib
3036321381d18f9d478598c0996c1380633003961ddmtklein
3046321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3056321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/zlib",
3066321381d18f9d478598c0996c1380633003961ddmtklein  ]
307b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_pdf_sources
308cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein  sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ]
3096321381d18f9d478598c0996c1380633003961ddmtklein
3106321381d18f9d478598c0996c1380633003961ddmtklein  if (skia_use_sfntly) {
3116321381d18f9d478598c0996c1380633003961ddmtklein    deps += [ "//third_party/sfntly" ]
312cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein    public_defines = [ "SK_PDF_USE_SFNTLY" ]
3136321381d18f9d478598c0996c1380633003961ddmtklein  }
3146321381d18f9d478598c0996c1380633003961ddmtklein}
3156321381d18f9d478598c0996c1380633003961ddmtklein
3166321381d18f9d478598c0996c1380633003961ddmtkleinoptional("png") {
3176321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libpng
3186321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_PNG_LIBRARY" ]
3196321381d18f9d478598c0996c1380633003961ddmtklein
3206321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3216321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libpng",
3226321381d18f9d478598c0996c1380633003961ddmtklein  ]
3236321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3246321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkIcoCodec.cpp",
3256321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkPngCodec.cpp",
3266321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkPNGImageEncoder.cpp",
3276321381d18f9d478598c0996c1380633003961ddmtklein  ]
3286321381d18f9d478598c0996c1380633003961ddmtklein}
3296321381d18f9d478598c0996c1380633003961ddmtklein
3303cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("typeface_freetype") {
3313cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype
3323cc22180561ae17a64ff0e0f9ba173eac149009emtklein
3333cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
3343cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
3353cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3363cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
3373cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType.cpp",
3383cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType_common.cpp",
3393cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3403cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
3413cc22180561ae17a64ff0e0f9ba173eac149009emtklein
342457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("webp") {
343457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_libwebp
344457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_WEBP_LIBRARY" ]
345457b42a6398020c3791f62f8c8637653e0d39bccmtklein
346457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
347457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/libwebp",
348457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
349457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
350457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpAdapterCodec.cpp",
351457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpCodec.cpp",
352457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/images/SkWEBPImageEncoder.cpp",
353457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
354457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
355eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein
3566321381d18f9d478598c0996c1380633003961ddmtkleinoptional("xml") {
3576321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_expat
3586321381d18f9d478598c0996c1380633003961ddmtklein
3596321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3606321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/expat",
3616321381d18f9d478598c0996c1380633003961ddmtklein  ]
3626321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3636321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkDOM.cpp",
3646321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLParser.cpp",
3656321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLWriter.cpp",
3666321381d18f9d478598c0996c1380633003961ddmtklein  ]
3676321381d18f9d478598c0996c1380633003961ddmtklein}
3686321381d18f9d478598c0996c1380633003961ddmtklein
369c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
370c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
371c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
372c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
373c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
374b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":arm64",
375b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":armv7",
3769b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":avx",
377b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":crc32",
378349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein    ":dsp",
379a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    ":fontmgr_android",
380d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    ":fontmgr_custom",
3813cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":fontmgr_fontconfig",
382cdedd0e061f3f50cd217638c28b27d798d930896mtklein    ":fontmgr_fuchsia",
383457b42a6398020c3791f62f8c8637653e0d39bccmtklein    ":gif",
3846321381d18f9d478598c0996c1380633003961ddmtklein    ":jpeg",
3859b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":none",
3866321381d18f9d478598c0996c1380633003961ddmtklein    ":pdf",
3876321381d18f9d478598c0996c1380633003961ddmtklein    ":png",
3889b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse2",
3899b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse41",
3909b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse42",
3919b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":ssse3",
3923cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":typeface_freetype",
393eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein    ":webp",
3946321381d18f9d478598c0996c1380633003961ddmtklein    ":xml",
395c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
396c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
397c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
398b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_core_sources
399b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_effects_sources
400b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_gpu_sources
401b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_sksl_sources
402b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_utils_sources
403c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
40425c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
40525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
40625c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
4071211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
4081211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
4091211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
4101211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
4111211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
4121211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
4131211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
4141211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
41525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
4161211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
4171211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
4181211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
41909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    "src/gpu/gl/GrGLDefaultInterface_native.cpp",
420c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
421c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
4222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
423c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
424c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
4251211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
426c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
427c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
428c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
429c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
43025c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
43125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
432c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
433c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
434c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
435c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
436b944728b93a1623d73be31413a6798e0b7dddc16brettw
437b944728b93a1623d73be31413a6798e0b7dddc16brettw  # These paths need to be absolute to match the ones produced by
438b944728b93a1623d73be31413a6798e0b7dddc16brettw  # shared_sources.gni, but this file may be used from different directory
439b944728b93a1623d73be31413a6798e0b7dddc16brettw  # locations.
440b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources -= get_path_info([
441b944728b93a1623d73be31413a6798e0b7dddc16brettw                             "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
442b944728b93a1623d73be31413a6798e0b7dddc16brettw                             "src/gpu/gl/GrGLDefaultInterface_none.cpp",
443b944728b93a1623d73be31413a6798e0b7dddc16brettw                           ],
444b944728b93a1623d73be31413a6798e0b7dddc16brettw                           "abspath")
445c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
4467d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  libs = []
4477d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
448c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
449c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
450c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
451c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
452c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
453c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
454c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
455c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
456c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
457c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
458c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
459c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
46025c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
461c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
4627a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    sources -= [ "src/utils/SkThreadUtils_pthread.cpp" ]
463c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
464c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
465c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
466c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
46725c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
468c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
469c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
470c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
4717d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  if (is_android) {
4727d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    deps += [
4737d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/cpu-features",
4747d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/expat",
4757d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
4767d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    sources += [
4777d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp",
4787d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_android.cpp",
4797d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
4807d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    libs += [
4817d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "EGL",
4827d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "GLESv2",
4837d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "log",
4847d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
4857d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  }
4867d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
487c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
48809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
48909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GL",
49009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GLU",
49109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "X11",
49209e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
493c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
49409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp",
4957d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_stdio.cpp",
496c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
497c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
498c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
499c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
500c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
50109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp",
5027d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_stdio.cpp",
503c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
504c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
505c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
506c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
50709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
50809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "ApplicationServices.framework",
50909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "OpenGL.framework",
51009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
511c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
5126fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
5136fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
514cdedd0e061f3f50cd217638c28b27d798d930896mtklein    sources += [ "src/gpu/gl/GrGLCreateNativeInterface_none.cpp" ]
5156fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
516c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
517c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
518ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
519ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
520ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
521ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
522ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
523ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
524ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
525ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
526ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
527ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
528ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
529ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
530ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
5311211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
5321211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
5331211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
534c095df55e86e7126b0582856720bb9177b553ff1mtklein         rebase_path(skia_h_headers, target_gen_dir)
5351211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
5361211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
5371211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
5381211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
5391211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
5401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinexecutable("fiddle") {
5411211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = [ "$target_gen_dir" ]
5427d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  libs = []
5437d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  if (is_linux) {
5447d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    libs += [ "OSMesa" ]
5457d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  }
5461211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
547c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = [
548c095df55e86e7126b0582856720bb9177b553ff1mtklein    "src/images/SkForceLinking.cpp",
5491211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/draw.cpp",
5501211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/fiddle_main.cpp",
551c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
552c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
553c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":skia",
5541211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    ":skia.h",
555c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
556c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
55725c81d4e651b43b8217c365c87d530036529a673mtklein
558c095df55e86e7126b0582856720bb9177b553ff1mtklein# Targets guarded by skia_enable_tools may use //third_party freely.
559c095df55e86e7126b0582856720bb9177b553ff1mtkleinif (skia_enable_tools) {
560c095df55e86e7126b0582856720bb9177b553ff1mtklein  template("test_lib") {
561c095df55e86e7126b0582856720bb9177b553ff1mtklein    config(target_name + "_config") {
562c095df55e86e7126b0582856720bb9177b553ff1mtklein      include_dirs = invoker.public_include_dirs
563c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
564c095df55e86e7126b0582856720bb9177b553ff1mtklein    source_set(target_name) {
565c095df55e86e7126b0582856720bb9177b553ff1mtklein      forward_variables_from(invoker, "*", [ "public_include_dirs" ])
566c095df55e86e7126b0582856720bb9177b553ff1mtklein      public_configs = [
567c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":" + target_name + "_config",
568c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":skia_private",
569c095df55e86e7126b0582856720bb9177b553ff1mtklein      ]
570c095df55e86e7126b0582856720bb9177b553ff1mtklein
571c095df55e86e7126b0582856720bb9177b553ff1mtklein      if (!defined(deps)) {
572c095df55e86e7126b0582856720bb9177b553ff1mtklein        deps = []
573c095df55e86e7126b0582856720bb9177b553ff1mtklein      }
574c095df55e86e7126b0582856720bb9177b553ff1mtklein      deps += [ ":skia" ]
575c095df55e86e7126b0582856720bb9177b553ff1mtklein      testonly = true
576c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
57725c81d4e651b43b8217c365c87d530036529a673mtklein  }
578c095df55e86e7126b0582856720bb9177b553ff1mtklein
579c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gpu_tool_utils") {
580c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/gpu" ]
581c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
582c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/GrContextFactory.cpp",
583c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/GrTest.cpp",
584c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/TestContext.cpp",
585c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/GLTestContext.cpp",
586c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/DebugGLTestContext.cpp",
587c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrBufferObj.cpp",
588c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
589c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrProgramObj.cpp",
590c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrShaderObj.cpp",
591c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrTextureObj.cpp",
592c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
593c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/gpu/gl/null/NullGLTestContext.cpp",
59425c81d4e651b43b8217c365c87d530036529a673mtklein    ]
595c095df55e86e7126b0582856720bb9177b553ff1mtklein    libs = []
59625c81d4e651b43b8217c365c87d530036529a673mtklein
5977d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    if (is_android) {
5987d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
5997d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    } else if (is_linux) {
600c095df55e86e7126b0582856720bb9177b553ff1mtklein      sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
601c095df55e86e7126b0582856720bb9177b553ff1mtklein    } else if (is_mac) {
602c095df55e86e7126b0582856720bb9177b553ff1mtklein      sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
60325c81d4e651b43b8217c365c87d530036529a673mtklein    }
60425c81d4e651b43b8217c365c87d530036529a673mtklein  }
60525c81d4e651b43b8217c365c87d530036529a673mtklein
606c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("flags") {
607c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/flags" ]
608c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
609c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommandLineFlags.cpp",
610c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlags.cpp",
611c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlagsConfig.cpp",
612c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
613c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
614c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
615c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
61625c81d4e651b43b8217c365c87d530036529a673mtklein  }
61725c81d4e651b43b8217c365c87d530036529a673mtklein
618c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tool_utils") {
619c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [
620c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools",
621c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger",
622c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer",
623c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
624c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
625c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/images/SkForceLinking.cpp",
626c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
627b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "tools/AndroidSkDebugToStdOut.cpp",
628c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/CrashHandler.cpp",
6290590fa549d09bd1b6f26c0d5e470f35efe430d65mtklein      "tools/LsanSuppressions.cpp",
630c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ProcStats.cpp",
631c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/Resources.cpp",
632c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ThermalManager.cpp",
633c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/UrlDataManager.cpp",
634c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDebugCanvas.cpp",
635c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDrawCommand.cpp",
636c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkJsonWriteBuffer.cpp",
637c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkObjectParser.cpp",
638c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkOverdrawMode.cpp",
639c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/picture_utils.cpp",
640c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/random_parse_path.cpp",
641c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils.cpp",
642c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils_font.cpp",
643c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer/Timer.cpp",
644c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
645c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
646c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
647c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
648c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
649c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_deps = [
650c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/jsoncpp",
651c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
652c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
65325c81d4e651b43b8217c365c87d530036529a673mtklein
654c095df55e86e7126b0582856720bb9177b553ff1mtklein  gm_sources = exec_script("gyp/find.py",
655c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [
656c095df55e86e7126b0582856720bb9177b553ff1mtklein                             "*.c*",
657c095df55e86e7126b0582856720bb9177b553ff1mtklein                             rebase_path("gm"),
658c095df55e86e7126b0582856720bb9177b553ff1mtklein                           ],
659c095df55e86e7126b0582856720bb9177b553ff1mtklein                           "list lines",
660c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [])
661c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gm") {
662c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "gm" ]
663c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = gm_sources
664c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
665c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
666c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
667c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
668c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
669c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
67025c81d4e651b43b8217c365c87d530036529a673mtklein
671c095df55e86e7126b0582856720bb9177b553ff1mtklein  tests_sources = exec_script("gyp/find.py",
672c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
673c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
674c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("tests"),
675c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
676c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
677c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
678c095df55e86e7126b0582856720bb9177b553ff1mtklein
679c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tests") {
680c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tests" ]
681a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    sources = tests_sources - [
682a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
683a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
684a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/skia_test.cpp"),  # alternate main
685a45be61d6beeb923d1b3352776042d58d7b7280dmtklein              ]
686a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    if (!fontmgr_android_enabled) {
687a45be61d6beeb923d1b3352776042d58d7b7280dmtklein      sources -= [ rebase_path("tests/FontMgrAndroidParserTest.cpp") ]
688a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    }
689c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
6906cf896d7ce03b87b3a5595bc66caf0a34c993755fmalita      ":experimental_svg_model",
691c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
692c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
693c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
694c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
695c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
696c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/zlib",
697c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
698c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
6992f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
700c095df55e86e7126b0582856720bb9177b553ff1mtklein  bench_sources = exec_script("gyp/find.py",
701c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
702c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
703c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("bench"),
704c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
705c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
706c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
707c095df55e86e7126b0582856720bb9177b553ff1mtklein
708c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("bench") {
709c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "bench" ]
710c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = bench_sources
711c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources -= [
712c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobench.cpp"),
713c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobenchAndroid.cpp"),
714c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
715c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
716c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
717c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gm",
718c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
719c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
720c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
721c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
722c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
7232b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
724c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("experimental_svg_model") {
725c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "experimental/svg/model" ]
726c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
727c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttribute.cpp",
728c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttributeParser.cpp",
729c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGCircle.cpp",
730c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGContainer.cpp",
731c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGDOM.cpp",
732c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGEllipse.cpp",
733c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGLine.cpp",
734c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGNode.cpp",
735c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPath.cpp",
736c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPoly.cpp",
737c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRect.cpp",
738c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRenderContext.cpp",
739c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGSVG.cpp",
740c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGShape.cpp",
741c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGTransformableNode.cpp",
742c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGValue.cpp",
743c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
744c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
745c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
746c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
747c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
748a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita
7492b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
7502b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
7512b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
7522b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
7532b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
7542b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7552b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
7562b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
757a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita      ":experimental_svg_model",
7582b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
7592b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
7602b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
7612b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
7622f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
7632b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
7642b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
7652b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
7662b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7672b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
7682b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
7692b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
7702b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("monobench") {
7712b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
7722b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "tools/monobench.cpp",
7732b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7742b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
7752b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
7762b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
7772b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7782b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
7792b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
7802b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
7812b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
7822b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
7832b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
7842b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7852b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
7862b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
7872b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
7882b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
7892b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
7902b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
7912b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
7922b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
7932b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
7942b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
7952b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
79619a9720978700a24efed8dda7e0935ea2b7338c4halcanary
7976f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein  if (current_cpu != "mipsel") {  # Clang 3.8 crashes while compiling hb-icu.cc for mipsel.
7983eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    executable("sktexttopdf-hb") {
7996f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      sources = [
8006f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/SkShaper_harfbuzz.cpp",
8016f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/using_skia_and_harfbuzz.cpp",
8026f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
8036f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      deps = [
8046f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        ":skia",
8056f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "//third_party/harfbuzz",
8066f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
8076f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      testonly = true
8086f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein    }
80919a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
8103eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  executable("sktexttopdf") {
8113eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    sources = [
8123eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/SkShaper_primitive.cpp",
8133eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/using_skia_and_harfbuzz.cpp",
8143eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
8153eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    deps = [
8163eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      ":skia",
8173eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
8183eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    testonly = true
8193eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  }
82025c81d4e651b43b8217c365c87d530036529a673mtklein}
821