BUILD.gn revision 768bdfca71391016c92239831d66427d0f3b151d
1c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Copyright 2016 Google Inc.
2c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein#
3c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Use of this source code is governed by a BSD-style license that can be
4c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# found in the LICENSE file.
5c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
68c24f4fae3389b9937eb73128e76226cffebdd72mikejurkaimport("gn/shared_sources.gni")
7b944728b93a1623d73be31413a6798e0b7dddc16brettw
83e8012e74f70bf49427a7422f9e5996c9882d4f3mtkleinif (!defined(is_skia_standalone)) {
93e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  is_skia_standalone = false
103e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein}
113e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein
12c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
13d68f9b00389bf676b171f250e684486cb2fbd404mtklein  skia_use_angle = false
146321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_expat = true
153cc22180561ae17a64ff0e0f9ba173eac149009emtklein  skia_use_fontconfig = is_linux
16cdedd0e061f3f50cd217638c28b27d798d930896mtklein  skia_use_freetype = is_android || is_fuchsia || is_linux
17457b42a6398020c3791f62f8c8637653e0d39bccmtklein  skia_use_giflib = !is_fuchsia
186321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libjpeg_turbo = true
196321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_libpng = true
20eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  skia_use_libwebp = !is_fuchsia
21a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein  skia_use_mesa = false
22ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein  skia_use_sfntly = !is_fuchsia && !is_win  # TODO: icu on Windows, re-enable this.
23f29180e65afdd3bd5ff3c1a2f8d456f9aea125edmtklein  skia_use_vulkan = is_android && defined(ndk_api) && ndk_api >= 24
246321381d18f9d478598c0996c1380633003961ddmtklein  skia_use_zlib = true
251bd72ba2cb349788223e3e7304f25751c87f1f95mtklein
261bd72ba2cb349788223e3e7304f25751c87f1f95mtklein  skia_enable_android_framework_defines = false
2706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  skia_enable_gpu = true
283e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  skia_enable_tools = is_skia_standalone
293e8012e74f70bf49427a7422f9e5996c9882d4f3mtklein  skia_enable_vulkan_debug_layers = is_skia_standalone && is_debug
30789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon  skia_vulkan_sdk = ""
31c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
32c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
33789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomonskia_use_vulkan = skia_use_vulkan || skia_vulkan_sdk != ""
34789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon
3538925aa37c17c0f54868852b8c3edf373400c742mtklein# Our tools require static linking (they use non-exported symbols).
3638925aa37c17c0f54868852b8c3edf373400c742mtkleinskia_enable_tools = skia_enable_tools && !is_component_build
3706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
38a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinfontmgr_android_enabled = skia_use_expat && skia_use_freetype
39a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
4125c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
42fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
431211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
441211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
451211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
461211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
471211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
481211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
491211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
501211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
511211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
5225c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
531211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
541211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
5525c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
561211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
571211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
58c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
59c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
601211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
61ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein  defines = []
62ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein  if (is_component_build) {
63ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein    defines += [ "SKIA_DLL" ]
64ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein  }
65c4cbd74a38232a0e9f1cc1cc8fb826bb06c577a9Mike Klein  if (is_fuchsia || is_linux) {
665561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio    defines += [ "SK_SAMPLES_FOR_X" ]
675561e3ddbbf6c3e051075ada4a11ddc70760f03djcgregorio  }
68cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  if (skia_enable_android_framework_defines) {
69cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein    defines += skia_android_framework_defines
70cae1be5acc8148fc5cbadd8730ee7994e50a1a47mtklein  }
7106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (!skia_enable_gpu) {
7206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    defines += [ "SK_SUPPORT_GPU=0" ]
7306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
74c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
75c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
76c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
77c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
79c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
80c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
81c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
82c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
831211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
84c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
85c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
86c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
8725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
8825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
89c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
92c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
93c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
94c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
952b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
96c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
97c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
989e0d9ddc0ef39e239670b22e5439993c45f4ae42mtklein    "src/sksl",
99c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
1007a1f45f9e584fef625e764bd5d180a9c4943dcd5mtklein    "src/utils/win",
101c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
102c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
103c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
104150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
1056321381d18f9d478598c0996c1380633003961ddmtklein  defines = [ "SK_GAMMA_APPLY_TO_A8" ]
106b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  if (is_android) {
107b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    defines += [
108b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_EXPONENT=1.4",
109b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "SK_GAMMA_CONTRAST=0.0",
110b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein    ]
111b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein  }
11288a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  if (is_official_build || is_android) {
11388a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    # TODO(bsalomon): it'd be nice to make Android normal.
11488a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein    defines += [ "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=0" ]
11588a7ac0b2dad4e7d581eae2da19888aec9ba1693mtklein  }
116789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon  libs = []
117789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon  lib_dirs = []
118789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon  if (skia_use_vulkan) {
119789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon    if (skia_vulkan_sdk != "") {
120789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon      include_dirs += [ "$skia_vulkan_sdk/x86_64/include/" ]
121789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon      lib_dirs += [ "$skia_vulkan_sdk/x86_64/lib/" ]
122789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon    }
123789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon    libs += [ "vulkan" ]
124789e25ea7d0e97bfbcd0e16e8c382fbf39962eb2Brian Salomon  }
125c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
126c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
127c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
128c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
129c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
130c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
131c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
132c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
133c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
134c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
135c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
136c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
137c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
138c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1399b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein# Use for CPU-specific Skia code that needs particular compiler flags.
1409b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleintemplate("opts") {
1419b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  if (invoker.enabled) {
1429b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1439b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker, "*")
1449b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
1459b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1469b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  } else {
1479b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    # If not enabled, a phony empty target that swallows all otherwise unused variables.
1489b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    source_set(target_name) {
1499b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      forward_variables_from(invoker,
1509b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             "*",
1519b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             [
1529b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "sources",
1539b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                               "cflags",
1549b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein                             ])
1559b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    }
1569b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  }
157a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal}
158a7eaf2e7e84ff10d1ed76b5d1e039c1a2d931392anmittal
159422310ddbe4db616200a949adcac2c560685030cmtkleinis_x86 = current_cpu == "x64" || current_cpu == "x86"
160c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1617d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("none") {
1627d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
163b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.none_sources
164b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
165b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
166b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1677d6fb2c92d096ac3630e23d561a4077a974a815cmtkleinopts("armv7") {
168b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm"
169b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.armv7_sources + skia_opts.neon_sources
1707d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  cflags = []
171b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
172b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
173b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("arm64") {
174b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
175b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.arm64_sources
176b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = []
177b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
178b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
179b8b3f71c5589aaed8ae76727f3d62642a192b359anmittalopts("crc32") {
180b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  enabled = current_cpu == "arm64"
181b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.crc32_sources
182b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal  cflags = [ "-march=armv8-a+crc" ]
183b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal}
184b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal
1859b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse2") {
1869b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
187b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse2_sources
1883eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (!is_win) {
1893eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "-msse2" ]
1903eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
1919b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
1924e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
1939b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("ssse3") {
1949b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
195b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.ssse3_sources
1963eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (!is_win) {
1973eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "-mssse3" ]
1983eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
1999b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
2004e97607d9a1cef66fac16f347c5ca813ec4f9515mtklein
2019b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse41") {
2029b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
203b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse41_sources
2043eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (!is_win) {
2053eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "-msse4.1" ]
2063eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
2079b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
208c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
2099b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("sse42") {
2109b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
211b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.sse42_sources
2123eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (!is_win) {
2133eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "-msse4.2" ]
2143eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
2159b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein}
2169b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein
2179b8583dd1f18657c08eaab047d79288b9f2c61a7mtkleinopts("avx") {
2189b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein  enabled = is_x86
219b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.avx_sources
2203eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (is_win) {
2213eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "/arch:AVX" ]
2223eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  } else {
2233eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "-mavx" ]
2243eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
225c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
226c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
22778d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Kleinopts("hsw") {
22878d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Klein  enabled = is_x86
22978d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Klein  sources = skia_opts.hsw_sources
2303eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  if (is_win) {
2313eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [ "/arch:AVX2" ]
2323eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  } else {
2333eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    cflags = [
2343eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein      "-mavx2",
2353eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein      "-mbmi",
2363eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein      "-mbmi2",
2373eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein      "-mf16c",
2383eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein      "-mfma",
2393eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein    ]
2403eb71216d2fb70114417ae8ee9b0c5f5dc650704Mike Klein  }
24178d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Klein}
24278d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Klein
243349cecefe21e2b45acc201290cc4e4fa93b4ad76mtkleinopts("dsp") {
244349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein  enabled = current_cpu == "mipsel"
245b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_opts.mips_dsp_sources
246b6064ef5b822ebc14d62170bd4ffa2f7c9bfbe4dmtklein  cflags = []
247349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein}
248349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein
249c095df55e86e7126b0582856720bb9177b553ff1mtklein# Any feature of Skia that requires third-party code should be optional and use this template.
250457b42a6398020c3791f62f8c8637653e0d39bccmtkleintemplate("optional") {
251457b42a6398020c3791f62f8c8637653e0d39bccmtklein  if (invoker.enabled) {
252457b42a6398020c3791f62f8c8637653e0d39bccmtklein    config(target_name + "_public") {
253cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.public_defines)) {
254cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        defines = invoker.public_defines
255cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
256457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
257457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
258cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      forward_variables_from(invoker,
259cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             "*",
260cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             [
261cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "public_defines",
262cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
263cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                             ])
264457b42a6398020c3791f62f8c8637653e0d39bccmtklein      all_dependent_configs = [ ":" + target_name + "_public" ]
2659b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein      configs += skia_library_configs
266457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
267457b42a6398020c3791f62f8c8637653e0d39bccmtklein  } else {
268457b42a6398020c3791f62f8c8637653e0d39bccmtklein    source_set(target_name) {
269457b42a6398020c3791f62f8c8637653e0d39bccmtklein      forward_variables_from(invoker,
270457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             "*",
271457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             [
272457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "public_defines",
273457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "deps",
2746ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein                               "libs",
275457b42a6398020c3791f62f8c8637653e0d39bccmtklein                               "sources",
276cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein                               "sources_when_disabled",
277457b42a6398020c3791f62f8c8637653e0d39bccmtklein                             ])
278cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      if (defined(invoker.sources_when_disabled)) {
279cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein        sources = invoker.sources_when_disabled
280cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      }
281cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein      configs += skia_library_configs
282457b42a6398020c3791f62f8c8637653e0d39bccmtklein    }
283eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein  }
284eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein}
285457b42a6398020c3791f62f8c8637653e0d39bccmtklein
286a45be61d6beeb923d1b3352776042d58d7b7280dmtkleinoptional("fontmgr_android") {
287a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  enabled = fontmgr_android_enabled
288a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
289a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  deps = [
290a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/expat",
291a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "//third_party/freetype2",
292a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
293a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  sources = [
294a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android.cpp",
295a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_factory.cpp",
296a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    "src/ports/SkFontMgr_android_parser.cpp",
297a45be61d6beeb923d1b3352776042d58d7b7280dmtklein  ]
298a45be61d6beeb923d1b3352776042d58d7b7280dmtklein}
299a45be61d6beeb923d1b3352776042d58d7b7280dmtklein
300d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtkleinoptional("fontmgr_custom") {
301d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  enabled = is_linux && skia_use_freetype && !skia_use_fontconfig
302d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
303d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  deps = [
304d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "//third_party/freetype2",
305d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
306d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  sources = [
307d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom.cpp",
308d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    "src/ports/SkFontMgr_custom_directory_factory.cpp",
309d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein  ]
310d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein}
311d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein
3123cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("fontmgr_fontconfig") {
3133cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype && skia_use_fontconfig
3143cc22180561ae17a64ff0e0f9ba173eac149009emtklein
3153cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
3163cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party:fontconfig",
3173cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
3183cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3193cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
3201ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman    "src/ports/SkFontConfigInterface.cpp",
3213cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct.cpp",
3223cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontConfigInterface_direct_factory.cpp",
3233cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_FontConfigInterface.cpp",
3243cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig.cpp",
3253cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontMgr_fontconfig_factory.cpp",
3263cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
3273cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
3283cc22180561ae17a64ff0e0f9ba173eac149009emtklein
329cdedd0e061f3f50cd217638c28b27d798d930896mtkleinoptional("fontmgr_fuchsia") {
330cdedd0e061f3f50cd217638c28b27d798d930896mtklein  enabled = is_fuchsia && skia_use_freetype
331cdedd0e061f3f50cd217638c28b27d798d930896mtklein
332cdedd0e061f3f50cd217638c28b27d798d930896mtklein  deps = [
333cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "//third_party/freetype2",
334cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
335cdedd0e061f3f50cd217638c28b27d798d930896mtklein  sources = [
336cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom.cpp",
337cdedd0e061f3f50cd217638c28b27d798d930896mtklein    "src/ports/SkFontMgr_custom_empty_factory.cpp",
338cdedd0e061f3f50cd217638c28b27d798d930896mtklein  ]
339cdedd0e061f3f50cd217638c28b27d798d930896mtklein}
340cdedd0e061f3f50cd217638c28b27d798d930896mtklein
341457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("gif") {
342457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_giflib
343457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_GIF_LIBRARY" ]
344457b42a6398020c3791f62f8c8637653e0d39bccmtklein
345457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
346457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/giflib",
347457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
348457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
349457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkGifCodec.cpp",
350457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
351457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
352457b42a6398020c3791f62f8c8637653e0d39bccmtklein
35306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinoptional("gpu") {
35406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  enabled = skia_enable_gpu
355e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  public_defines = []
356e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein
35706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources = skia_gpu_sources + [ "src/gpu/gl/GrGLDefaultInterface_native.cpp" ]
35806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
35906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  # These paths need to be absolute to match the ones produced by shared_sources.gni.
36006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  sources -= get_path_info([
36106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
36206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                             "src/gpu/gl/GrGLDefaultInterface_none.cpp",
36306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           ],
36406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein                           "abspath")
36506c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  if (is_android) {
36606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp" ]
36706c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_linux) {
36806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp" ]
36906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else if (is_mac) {
37006c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp" ]
37106c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  } else {
37206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/gpu/gl/GrGLCreateNativeInterface_none.cpp" ]
37306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein  }
374e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  libs = []
375e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein
376e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  if (skia_use_vulkan) {
377e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein    public_defines += [ "SK_VULKAN" ]
378e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein    sources += skia_vk_sources
379e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel    if (skia_enable_vulkan_debug_layers) {
380e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel      public_defines += [ "SK_ENABLE_VK_LAYERS" ]
381e4a9bd79c676346ada8f4c35fa3a7fd99dfc5544egdaniel    }
382e9fb3d553cbff3b86e4aae751c75b742d425c7afmtklein  }
38306c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein}
38406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein
3856321381d18f9d478598c0996c1380633003961ddmtkleinoptional("jpeg") {
3866321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libjpeg_turbo
3876321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_JPEG_LIBRARY" ]
3886321381d18f9d478598c0996c1380633003961ddmtklein
3896321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
3906321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libjpeg-turbo:libjpeg",
3916321381d18f9d478598c0996c1380633003961ddmtklein  ]
3926321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
3936321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegCodec.cpp",
3946321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegDecoderMgr.cpp",
3956321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkJpegUtility.cpp",
3966321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGImageEncoder.cpp",
3976321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkJPEGWriteUtility.cpp",
3986321381d18f9d478598c0996c1380633003961ddmtklein  ]
3996321381d18f9d478598c0996c1380633003961ddmtklein}
4006321381d18f9d478598c0996c1380633003961ddmtklein
4016321381d18f9d478598c0996c1380633003961ddmtkleinoptional("pdf") {
4026321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_zlib
4036321381d18f9d478598c0996c1380633003961ddmtklein
4046321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
4056321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/zlib",
4066321381d18f9d478598c0996c1380633003961ddmtklein  ]
407b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources = skia_pdf_sources
408cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein  sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ]
4096321381d18f9d478598c0996c1380633003961ddmtklein
4106321381d18f9d478598c0996c1380633003961ddmtklein  if (skia_use_sfntly) {
4116321381d18f9d478598c0996c1380633003961ddmtklein    deps += [ "//third_party/sfntly" ]
412cd01b03df8acefbe0e8a37fa10b97d8a6fc0b992mtklein    public_defines = [ "SK_PDF_USE_SFNTLY" ]
4136321381d18f9d478598c0996c1380633003961ddmtklein  }
4146321381d18f9d478598c0996c1380633003961ddmtklein}
4156321381d18f9d478598c0996c1380633003961ddmtklein
4166321381d18f9d478598c0996c1380633003961ddmtkleinoptional("png") {
4176321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_libpng
4186321381d18f9d478598c0996c1380633003961ddmtklein  public_defines = [ "SK_HAS_PNG_LIBRARY" ]
4196321381d18f9d478598c0996c1380633003961ddmtklein
4206321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
4216321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/libpng",
4226321381d18f9d478598c0996c1380633003961ddmtklein  ]
4236321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
4246321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkIcoCodec.cpp",
4256321381d18f9d478598c0996c1380633003961ddmtklein    "src/codec/SkPngCodec.cpp",
4266321381d18f9d478598c0996c1380633003961ddmtklein    "src/images/SkPNGImageEncoder.cpp",
4276321381d18f9d478598c0996c1380633003961ddmtklein  ]
4286321381d18f9d478598c0996c1380633003961ddmtklein}
4296321381d18f9d478598c0996c1380633003961ddmtklein
4303cc22180561ae17a64ff0e0f9ba173eac149009emtkleinoptional("typeface_freetype") {
4313cc22180561ae17a64ff0e0f9ba173eac149009emtklein  enabled = skia_use_freetype
4323cc22180561ae17a64ff0e0f9ba173eac149009emtklein
4333cc22180561ae17a64ff0e0f9ba173eac149009emtklein  deps = [
4343cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "//third_party/freetype2",
4353cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
4363cc22180561ae17a64ff0e0f9ba173eac149009emtklein  sources = [
4373cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType.cpp",
4383cc22180561ae17a64ff0e0f9ba173eac149009emtklein    "src/ports/SkFontHost_FreeType_common.cpp",
4393cc22180561ae17a64ff0e0f9ba173eac149009emtklein  ]
4403cc22180561ae17a64ff0e0f9ba173eac149009emtklein}
4413cc22180561ae17a64ff0e0f9ba173eac149009emtklein
442457b42a6398020c3791f62f8c8637653e0d39bccmtkleinoptional("webp") {
443457b42a6398020c3791f62f8c8637653e0d39bccmtklein  enabled = skia_use_libwebp
444457b42a6398020c3791f62f8c8637653e0d39bccmtklein  public_defines = [ "SK_HAS_WEBP_LIBRARY" ]
445457b42a6398020c3791f62f8c8637653e0d39bccmtklein
446457b42a6398020c3791f62f8c8637653e0d39bccmtklein  deps = [
447457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "//third_party/libwebp",
448457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
449457b42a6398020c3791f62f8c8637653e0d39bccmtklein  sources = [
450457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpAdapterCodec.cpp",
451457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/codec/SkWebpCodec.cpp",
452457b42a6398020c3791f62f8c8637653e0d39bccmtklein    "src/images/SkWEBPImageEncoder.cpp",
453457b42a6398020c3791f62f8c8637653e0d39bccmtklein  ]
454457b42a6398020c3791f62f8c8637653e0d39bccmtklein}
455eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein
4566321381d18f9d478598c0996c1380633003961ddmtkleinoptional("xml") {
4576321381d18f9d478598c0996c1380633003961ddmtklein  enabled = skia_use_expat
4586321381d18f9d478598c0996c1380633003961ddmtklein
4596321381d18f9d478598c0996c1380633003961ddmtklein  deps = [
4606321381d18f9d478598c0996c1380633003961ddmtklein    "//third_party/expat",
4616321381d18f9d478598c0996c1380633003961ddmtklein  ]
4626321381d18f9d478598c0996c1380633003961ddmtklein  sources = [
4636321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkDOM.cpp",
4646321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLParser.cpp",
4656321381d18f9d478598c0996c1380633003961ddmtklein    "src/xml/SkXMLWriter.cpp",
4666321381d18f9d478598c0996c1380633003961ddmtklein  ]
4676321381d18f9d478598c0996c1380633003961ddmtklein}
4686321381d18f9d478598c0996c1380633003961ddmtklein
469c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
470c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
471c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
472c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
473c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
474b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":arm64",
475b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":armv7",
4769b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":avx",
477b8b3f71c5589aaed8ae76727f3d62642a192b359anmittal    ":crc32",
478349cecefe21e2b45acc201290cc4e4fa93b4ad76mtklein    ":dsp",
479a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    ":fontmgr_android",
480d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77mtklein    ":fontmgr_custom",
4813cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":fontmgr_fontconfig",
482cdedd0e061f3f50cd217638c28b27d798d930896mtklein    ":fontmgr_fuchsia",
483457b42a6398020c3791f62f8c8637653e0d39bccmtklein    ":gif",
48406c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    ":gpu",
48578d5a3bac5cbde50cd12d8b9ab6dd269324b5272Mike Klein    ":hsw",
4866321381d18f9d478598c0996c1380633003961ddmtklein    ":jpeg",
4879b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":none",
4886321381d18f9d478598c0996c1380633003961ddmtklein    ":pdf",
4896321381d18f9d478598c0996c1380633003961ddmtklein    ":png",
4909b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse2",
4919b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse41",
4929b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":sse42",
4939b8583dd1f18657c08eaab047d79288b9f2c61a7mtklein    ":ssse3",
4943cc22180561ae17a64ff0e0f9ba173eac149009emtklein    ":typeface_freetype",
495eb3c425f1b33836e116e8ed4eeb40e0c6d8dffb6mtklein    ":webp",
4966321381d18f9d478598c0996c1380633003961ddmtklein    ":xml",
497c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
498c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
499c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
500b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_core_sources
501b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_effects_sources
502b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_sksl_sources
503b944728b93a1623d73be31413a6798e0b7dddc16brettw  sources += skia_utils_sources
504c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
50525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
50625c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
50725c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
5081211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
5091211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
5101211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
5111211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
5121211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
5131211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
5141211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
5151211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
51625c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
5171211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
5181211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
5191211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
520c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
521c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
5222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
523c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
524c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
5251211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
526c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
527c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
528c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
529c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
53025c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
53125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
532c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
533c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
534c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
535c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
536b944728b93a1623d73be31413a6798e0b7dddc16brettw
5377d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  libs = []
5387d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
539c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
540c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
541ae7e671f86e9171c98a4b12bd0a0f875c8d6604fMike Klein      "src/fonts/SkFontMgr_indirect.cpp",
542c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
543c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
544c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
545c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
546c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
547c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
548c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
549605d95289379a07aad50b38ca6badbee45813d56mtklein      "src/ports/SkOSLibrary_win.cpp",
550c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
551c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
552c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
55325c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
5544b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      "src/xps/SkXPSDevice.cpp",
555c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
556b9be979eaecebcb5350efae46e6555188e7c3a78mtklein    sources -=
557b9be979eaecebcb5350efae46e6555188e7c3a78mtklein        [ get_path_info("src/utils/SkThreadUtils_pthread.cpp", "abspath") ]
5584b167fc8503d8b4887346c5054fc2cc93428846dMike Klein    libs += [
5594b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      "FontSub.lib",
5604b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      "Ole32.lib",
5614b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      "OleAut32.lib",
5624b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      "User32.lib",
5634b167fc8503d8b4887346c5054fc2cc93428846dMike Klein    ]
564c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
565c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
566c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
567605d95289379a07aad50b38ca6badbee45813d56mtklein      "src/ports/SkOSLibrary_posix.cpp",
568c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
56925c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
570c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
571c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
572c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
5737d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  if (is_android) {
5747d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    deps += [
5757d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/cpu-features",
5767d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "//third_party/expat",
5777d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
57806c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_android.cpp" ]
5797d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    libs += [
5807d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "EGL",
5817d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "GLESv2",
5827d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "log",
5837d6fb2c92d096ac3630e23d561a4077a974a815cmtklein    ]
5847d6fb2c92d096ac3630e23d561a4077a974a815cmtklein  }
5857d6fb2c92d096ac3630e23d561a4077a974a815cmtklein
586c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
58709e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
58809e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GL",
58909e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "GLU",
59009e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "X11",
59109e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
59206c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
593c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
594c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
595c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
596c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
5977d6fb2c92d096ac3630e23d561a4077a974a815cmtklein      "src/ports/SkDebug_stdio.cpp",
598c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
599c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
600c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
601c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
60209e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    libs += [
60309e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "ApplicationServices.framework",
60409e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein      "OpenGL.framework",
60509e61f72334c6fc4840560b56ff44761d7bf0e5dmtklein    ]
606c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
6076fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
6086fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
60906c35c0953b4884c18d1f2ce32c4c5045f86fa81mtklein    sources += [ "src/ports/SkDebug_stdio.cpp" ]
6106fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
611c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
612c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
613ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
614ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
615ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
616ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
617ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
618ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
619ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
620ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
621ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
622ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
623ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
624ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
625ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
6261211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
6271211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
6281211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
629c095df55e86e7126b0582856720bb9177b553ff1mtklein         rebase_path(skia_h_headers, target_gen_dir)
630bc34404dc3feb4dac854aa43825646dd01139ccbBen Wagner  inputs = skia_h_headers
6311211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
6321211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
6331211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
6341211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
6351211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
63606c35c0953b4884c18d1f2ce32c4c5045f86fa81mtkleinif (skia_enable_gpu && target_cpu == "x64") {
6371fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # Our bots only have 64-bit libOSMesa installed.
6381fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  # TODO: worth fixing?
6391fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  executable("fiddle") {
6401fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    include_dirs = [ "$target_gen_dir" ]
6411fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    libs = []
6421fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    if (is_linux) {
6431fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      libs += [ "OSMesa" ]
6441fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    }
64556d5669095feca663e9e05f4621146abeee626ecmtklein
6461fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    sources = [
6471fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "src/images/SkForceLinking.cpp",
6481fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/draw.cpp",
6491fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      "tools/fiddle/fiddle_main.cpp",
6501fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
6511fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    deps = [
6521fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia",
6531fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein      ":skia.h",
6541fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein    ]
6551fbdf98d0e9a9e5e720c77fd896a0655074e31cbmtklein  }
656c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
65725c81d4e651b43b8217c365c87d530036529a673mtklein
658c095df55e86e7126b0582856720bb9177b553ff1mtklein# Targets guarded by skia_enable_tools may use //third_party freely.
659c095df55e86e7126b0582856720bb9177b553ff1mtkleinif (skia_enable_tools) {
660c095df55e86e7126b0582856720bb9177b553ff1mtklein  template("test_lib") {
661c095df55e86e7126b0582856720bb9177b553ff1mtklein    config(target_name + "_config") {
662c095df55e86e7126b0582856720bb9177b553ff1mtklein      include_dirs = invoker.public_include_dirs
663a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      if (defined(invoker.public_defines)) {
664a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein        defines = invoker.public_defines
665a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein      }
666c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
667c095df55e86e7126b0582856720bb9177b553ff1mtklein    source_set(target_name) {
668c095df55e86e7126b0582856720bb9177b553ff1mtklein      forward_variables_from(invoker, "*", [ "public_include_dirs" ])
669c095df55e86e7126b0582856720bb9177b553ff1mtklein      public_configs = [
670c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":" + target_name + "_config",
671c095df55e86e7126b0582856720bb9177b553ff1mtklein        ":skia_private",
672c095df55e86e7126b0582856720bb9177b553ff1mtklein      ]
673c095df55e86e7126b0582856720bb9177b553ff1mtklein
674c095df55e86e7126b0582856720bb9177b553ff1mtklein      if (!defined(deps)) {
675c095df55e86e7126b0582856720bb9177b553ff1mtklein        deps = []
676c095df55e86e7126b0582856720bb9177b553ff1mtklein      }
677c095df55e86e7126b0582856720bb9177b553ff1mtklein      deps += [ ":skia" ]
678c095df55e86e7126b0582856720bb9177b553ff1mtklein      testonly = true
679c095df55e86e7126b0582856720bb9177b553ff1mtklein    }
68025c81d4e651b43b8217c365c87d530036529a673mtklein  }
681c095df55e86e7126b0582856720bb9177b553ff1mtklein
682c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gpu_tool_utils") {
68338925aa37c17c0f54868852b8c3edf373400c742mtklein    public_include_dirs = []
68438925aa37c17c0f54868852b8c3edf373400c742mtklein    if (skia_enable_gpu) {
68538925aa37c17c0f54868852b8c3edf373400c742mtklein      public_defines = []
68638925aa37c17c0f54868852b8c3edf373400c742mtklein      public_include_dirs += [ "tools/gpu" ]
687d68f9b00389bf676b171f250e684486cb2fbd404mtklein
688d68f9b00389bf676b171f250e684486cb2fbd404mtklein      deps = []
68938925aa37c17c0f54868852b8c3edf373400c742mtklein      sources = [
69038925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/GrContextFactory.cpp",
69138925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/GrTest.cpp",
69238925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/TestContext.cpp",
69338925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/GLTestContext.cpp",
694605d95289379a07aad50b38ca6badbee45813d56mtklein        "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp",
69538925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/DebugGLTestContext.cpp",
69638925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrBufferObj.cpp",
69738925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
69838925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrProgramObj.cpp",
69938925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrShaderObj.cpp",
70038925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrTextureObj.cpp",
70138925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
70238925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/gpu/gl/null/NullGLTestContext.cpp",
70338925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
70438925aa37c17c0f54868852b8c3edf373400c742mtklein      libs = []
70538925aa37c17c0f54868852b8c3edf373400c742mtklein
70638925aa37c17c0f54868852b8c3edf373400c742mtklein      if (is_android) {
70738925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
70838925aa37c17c0f54868852b8c3edf373400c742mtklein      } else if (is_linux) {
70938925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
71038925aa37c17c0f54868852b8c3edf373400c742mtklein      } else if (is_mac) {
71138925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
7124b167fc8503d8b4887346c5054fc2cc93428846dMike Klein      } else if (is_win) {
7134b167fc8503d8b4887346c5054fc2cc93428846dMike Klein        sources += [ "tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp" ]
7144b167fc8503d8b4887346c5054fc2cc93428846dMike Klein        libs += [
7154b167fc8503d8b4887346c5054fc2cc93428846dMike Klein          "Gdi32.lib",
7164b167fc8503d8b4887346c5054fc2cc93428846dMike Klein          "OpenGL32.lib",
7174b167fc8503d8b4887346c5054fc2cc93428846dMike Klein        ]
71838925aa37c17c0f54868852b8c3edf373400c742mtklein      }
7196ef6999017febaf0039b83c1ff4da1efe9c0e85dmtklein
720d68f9b00389bf676b171f250e684486cb2fbd404mtklein      if (skia_use_angle) {
721d68f9b00389bf676b171f250e684486cb2fbd404mtklein        public_defines += [ "SK_ANGLE" ]
722d68f9b00389bf676b171f250e684486cb2fbd404mtklein        deps += [ "//third_party/angle2" ]
723d68f9b00389bf676b171f250e684486cb2fbd404mtklein        sources += [ "tools/gpu/gl/angle/GLTestContext_angle.cpp" ]
72438925aa37c17c0f54868852b8c3edf373400c742mtklein      }
72538925aa37c17c0f54868852b8c3edf373400c742mtklein      if (skia_use_mesa) {
72638925aa37c17c0f54868852b8c3edf373400c742mtklein        public_defines += [ "SK_MESA" ]
72738925aa37c17c0f54868852b8c3edf373400c742mtklein        sources += [ "tools/gpu/gl/mesa/GLTestContext_mesa.cpp" ]
72838925aa37c17c0f54868852b8c3edf373400c742mtklein        libs += [ "OSMesa" ]
72938925aa37c17c0f54868852b8c3edf373400c742mtklein      }
730d68f9b00389bf676b171f250e684486cb2fbd404mtklein      if (skia_use_vulkan) {
731d68f9b00389bf676b171f250e684486cb2fbd404mtklein        sources += [ "tools/gpu/vk/VkTestContext.cpp" ]
732d68f9b00389bf676b171f250e684486cb2fbd404mtklein      }
733a627b5c3b9004118621bfa99f3952465adfa4ad6mtklein    }
73425c81d4e651b43b8217c365c87d530036529a673mtklein  }
73525c81d4e651b43b8217c365c87d530036529a673mtklein
736c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("flags") {
737c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tools/flags" ]
738c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
739c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommandLineFlags.cpp",
740046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
741046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
742046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  test_lib("common_flags") {
743046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    public_include_dirs = [ "tools/flags" ]
744046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
745c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlags.cpp",
746c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/flags/SkCommonFlagsConfig.cpp",
747c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
748c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
749046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
750c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
751c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
75225c81d4e651b43b8217c365c87d530036529a673mtklein  }
75325c81d4e651b43b8217c365c87d530036529a673mtklein
754c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tool_utils") {
755c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [
756c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools",
757c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger",
758c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer",
759c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
760c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
761c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/images/SkForceLinking.cpp",
762c095df55e86e7126b0582856720bb9177b553ff1mtklein      "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
763b37c034ac8ad590c70ceac9811ba42a0bf34642cmtklein      "tools/AndroidSkDebugToStdOut.cpp",
764c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/CrashHandler.cpp",
7650590fa549d09bd1b6f26c0d5e470f35efe430d65mtklein      "tools/LsanSuppressions.cpp",
766c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ProcStats.cpp",
767c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/Resources.cpp",
768c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/ThermalManager.cpp",
769c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/UrlDataManager.cpp",
770c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDebugCanvas.cpp",
771c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkDrawCommand.cpp",
772c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkJsonWriteBuffer.cpp",
773c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkObjectParser.cpp",
774c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/debugger/SkOverdrawMode.cpp",
775c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/picture_utils.cpp",
776c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/random_parse_path.cpp",
777c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils.cpp",
778c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/sk_tool_utils_font.cpp",
779c095df55e86e7126b0582856720bb9177b553ff1mtklein      "tools/timer/Timer.cpp",
780c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
781c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
782046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
783c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
784c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
785c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
786c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_deps = [
787c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/jsoncpp",
788c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
789c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
79025c81d4e651b43b8217c365c87d530036529a673mtklein
791c095df55e86e7126b0582856720bb9177b553ff1mtklein  gm_sources = exec_script("gyp/find.py",
792c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [
793c095df55e86e7126b0582856720bb9177b553ff1mtklein                             "*.c*",
794c095df55e86e7126b0582856720bb9177b553ff1mtklein                             rebase_path("gm"),
795c095df55e86e7126b0582856720bb9177b553ff1mtklein                           ],
796c095df55e86e7126b0582856720bb9177b553ff1mtklein                           "list lines",
797c095df55e86e7126b0582856720bb9177b553ff1mtklein                           [])
798c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("gm") {
799c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "gm" ]
800c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = gm_sources
801c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
802c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
803c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
804c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
805c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
806c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
80725c81d4e651b43b8217c365c87d530036529a673mtklein
808c095df55e86e7126b0582856720bb9177b553ff1mtklein  tests_sources = exec_script("gyp/find.py",
809c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
810c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
811c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("tests"),
812c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
813c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
814c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
815c095df55e86e7126b0582856720bb9177b553ff1mtklein
816c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("tests") {
817c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "tests" ]
818a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    sources = tests_sources - [
819a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
820a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
821a45be61d6beeb923d1b3352776042d58d7b7280dmtklein                rebase_path("tests/skia_test.cpp"),  # alternate main
822a45be61d6beeb923d1b3352776042d58d7b7280dmtklein              ]
823a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    if (!fontmgr_android_enabled) {
824a45be61d6beeb923d1b3352776042d58d7b7280dmtklein      sources -= [ rebase_path("tests/FontMgrAndroidParserTest.cpp") ]
825a45be61d6beeb923d1b3352776042d58d7b7280dmtklein    }
826c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
8276cf896d7ce03b87b3a5595bc66caf0a34c993755fmalita      ":experimental_svg_model",
828c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
829c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
830c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
831c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
832c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/libpng",
833c095df55e86e7126b0582856720bb9177b553ff1mtklein      "//third_party/zlib",
834c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
835c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
8362f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
837c095df55e86e7126b0582856720bb9177b553ff1mtklein  bench_sources = exec_script("gyp/find.py",
838c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [
839c095df55e86e7126b0582856720bb9177b553ff1mtklein                                "*.c*",
840c095df55e86e7126b0582856720bb9177b553ff1mtklein                                rebase_path("bench"),
841c095df55e86e7126b0582856720bb9177b553ff1mtklein                              ],
842c095df55e86e7126b0582856720bb9177b553ff1mtklein                              "list lines",
843c095df55e86e7126b0582856720bb9177b553ff1mtklein                              [])
844c095df55e86e7126b0582856720bb9177b553ff1mtklein
845c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("bench") {
846c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "bench" ]
847c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = bench_sources
848c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources -= [
849c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobench.cpp"),
850c095df55e86e7126b0582856720bb9177b553ff1mtklein      rebase_path("bench/nanobenchAndroid.cpp"),
851c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
852c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
853c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":flags",
854c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gm",
855c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":gpu_tool_utils",
856c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
857c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":tool_utils",
858c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
859c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
8602b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
861c095df55e86e7126b0582856720bb9177b553ff1mtklein  test_lib("experimental_svg_model") {
862c095df55e86e7126b0582856720bb9177b553ff1mtklein    public_include_dirs = [ "experimental/svg/model" ]
863c095df55e86e7126b0582856720bb9177b553ff1mtklein    sources = [
864c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttribute.cpp",
865c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGAttributeParser.cpp",
866c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGCircle.cpp",
867c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGContainer.cpp",
868c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGDOM.cpp",
869c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGEllipse.cpp",
870c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGLine.cpp",
87128d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGLinearGradient.cpp",
872c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGNode.cpp",
873c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPath.cpp",
874c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGPoly.cpp",
875c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRect.cpp",
876c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGRenderContext.cpp",
877c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGSVG.cpp",
878c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGShape.cpp",
87928d5b72d86fdfae20dc47ba548748f119c7273e3fmalita      "experimental/svg/model/SkSVGStop.cpp",
880c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGTransformableNode.cpp",
881c095df55e86e7126b0582856720bb9177b553ff1mtklein      "experimental/svg/model/SkSVGValue.cpp",
882c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
883c095df55e86e7126b0582856720bb9177b553ff1mtklein    deps = [
884c095df55e86e7126b0582856720bb9177b553ff1mtklein      ":skia",
885c095df55e86e7126b0582856720bb9177b553ff1mtklein    ]
886c095df55e86e7126b0582856720bb9177b553ff1mtklein  }
887a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita
8882b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
8892b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
8902b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
8912b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
8922b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
8932b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
8942b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
8952b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
896046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
897a2b9fdfe0b2dd3408064b7cfd1bf8677eaf06491fmalita      ":experimental_svg_model",
8982b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
8992b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
9002b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
9012b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
9022f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
9032b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
9042b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
9052b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
9062b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
9072b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
9082b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
9092b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
910a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein  if (!is_debug) {  # I've benchmarked debug code once too many times...
911a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein    executable("monobench") {
912a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      sources = [
913a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        "tools/monobench.cpp",
914a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      ]
915a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      deps = [
916a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        ":bench",
917a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein        ":skia",
918a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      ]
919a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein      testonly = true
920a343017fc2a1dd3d7aba50f60f2064b787748bb2Mike Klein    }
9212b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
9222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
9232b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
9242b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
9252b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
9262b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
9272b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
9282b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
929046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":common_flags",
9306519c21a57946366c1141fa81fe1b283150b43fcfmalita      ":experimental_svg_model",
9312b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
9322b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
9332b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
9342b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
9352b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
9362b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
9372b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
9382b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
9392b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
94019a9720978700a24efed8dda7e0935ea2b7338c4halcanary
94138925aa37c17c0f54868852b8c3edf373400c742mtklein  if (skia_enable_gpu) {
94238925aa37c17c0f54868852b8c3edf373400c742mtklein    executable("skpbench") {
94338925aa37c17c0f54868852b8c3edf373400c742mtklein      sources = [
94438925aa37c17c0f54868852b8c3edf373400c742mtklein        "tools/skpbench/skpbench.cpp",
94538925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
94638925aa37c17c0f54868852b8c3edf373400c742mtklein      deps = [
94738925aa37c17c0f54868852b8c3edf373400c742mtklein        ":flags",
94838925aa37c17c0f54868852b8c3edf373400c742mtklein        ":gpu_tool_utils",
94938925aa37c17c0f54868852b8c3edf373400c742mtklein        ":skia",
95038925aa37c17c0f54868852b8c3edf373400c742mtklein        ":tool_utils",
95138925aa37c17c0f54868852b8c3edf373400c742mtklein      ]
95238925aa37c17c0f54868852b8c3edf373400c742mtklein      testonly = true
95338925aa37c17c0f54868852b8c3edf373400c742mtklein    }
9544b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton  }
9554b5179b74c49498e5b2b7d94319476672170b61dcsmartdalton
9564b167fc8503d8b4887346c5054fc2cc93428846dMike Klein  # We can't yet build ICU on Windows.
957768bdfca71391016c92239831d66427d0f3b151dMike Klein  if (!is_win) {
9583eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    executable("sktexttopdf-hb") {
9596f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      sources = [
9606f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/SkShaper_harfbuzz.cpp",
9616f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "tools/using_skia_and_harfbuzz.cpp",
9626f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
9636f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      deps = [
9646f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        ":skia",
9656f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein        "//third_party/harfbuzz",
9666f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      ]
9676f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein      testonly = true
9686f5df6acb7dec9788fe5d9c44f7892b896e21de3mtklein    }
96919a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
9703eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  executable("sktexttopdf") {
9713eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    sources = [
9723eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/SkShaper_primitive.cpp",
9733eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      "tools/using_skia_and_harfbuzz.cpp",
9743eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
9753eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    deps = [
9763eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary      ":skia",
9773eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    ]
9783eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary    testonly = true
9793eee9d941e773d576917d4a5e89fd4b2b8f53253halcanary  }
980046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein
981046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  executable("get_images_from_skps") {
982046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    sources = [
983046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "tools/get_images_from_skps.cpp",
984046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
985046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    deps = [
986046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":flags",
987046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      ":skia",
988046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein      "//third_party/jsoncpp",
989046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    ]
990046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein    testonly = true
991046cb56c6c1bb40779c81b115271ed0e8196b48bmtklein  }
992ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein
993ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein  executable("skiaserve") {
994ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    sources = [
995ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/Request.cpp",
996ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/Response.cpp",
997ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/skiaserve.cpp",
998ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BatchBoundsHandler.cpp",
999ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BatchesHandler.cpp",
1000ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/BreakHandler.cpp",
1001ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp",
1002ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/CmdHandler.cpp",
1003ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ColorModeHandler.cpp",
1004ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/DataHandler.cpp",
1005ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/DownloadHandler.cpp",
1006ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/EnableGPUHandler.cpp",
1007ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/ImgHandler.cpp",
1008ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/InfoHandler.cpp",
1009ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/PostHandler.cpp",
1010ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/QuitHandler.cpp",
1011ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "tools/skiaserve/urlhandlers/RootHandler.cpp",
1012ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    ]
1013ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    deps = [
1014ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":flags",
1015ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":gpu_tool_utils",
1016ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":skia",
1017ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      ":tool_utils",
1018ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/jsoncpp",
1019ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/libmicrohttpd",
1020ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein      "//third_party/libpng",
1021ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    ]
1022ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein    testonly = true
1023ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein  }
102414f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick
102514f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick  executable("fuzz") {
102614f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick    sources = [
102714f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/FilterFuzz.cpp",
102814f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/FuzzGradients.cpp",
102914f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/FuzzParsePath.cpp",
103014f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/FuzzPathop.cpp",
103114f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/FuzzScaleToSides.cpp",
103214f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      "fuzz/fuzz.cpp",
103314f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick    ]
103414f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick    deps = [
103514f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      ":flags",
103614f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick      ":skia",
103714f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick    ]
103814f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick    testonly = true
103914f984bc6bdb4327c3f577b7ccbc61a710443288kjlubick  }
10403831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein
10413831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein  executable("dump_record") {
10423831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein    sources = [
10433831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein      "tools/DumpRecord.cpp",
10443831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein      "tools/dump_record.cpp",
10453831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein    ]
10463831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein    deps = [
10473831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein      ":flags",
10483831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein      ":skia",
10493831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein    ]
10503831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein    testonly = true
10513831242a33fbf8d0cd45a0056427bf68df317f07Mike Klein  }
105225c81d4e651b43b8217c365c87d530036529a673mtklein}
1053