BUILD.gn revision 19a9720978700a24efed8dda7e0935ea2b7338c4
1c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Copyright 2016 Google Inc.
2c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein#
3c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Use of this source code is governed by a BSD-style license that can be
4c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# found in the LICENSE file.
5c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
6c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleindeclare_args() {
7c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
8c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
91211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinskia_public_includes = [
1025c81d4e651b43b8217c365c87d530036529a673mtklein  "include/android",
11fa84d94bb0b226f81b7eaa411aabbbaec3d180cbmtklein  "include/c",
121211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/codec",
131211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/config",
141211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/core",
151211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/effects",
161211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu",
171211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/gpu/gl",
181211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/images",
191211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/pathops",
201211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/ports",
2125c81d4e651b43b8217c365c87d530036529a673mtklein  "include/svg",
221211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils",
231211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  "include/utils/mac",
2425c81d4e651b43b8217c365c87d530036529a673mtklein  "include/xml",
251211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein]
261211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
27c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia public API, generally provided by :skia.
28c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_public") {
291211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = skia_public_includes
30c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_DLL" ]
31c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
32c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
33c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Skia internal APIs, used by Skia itself and a few test tools.
34c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_private") {
35c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
36c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
37c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  include_dirs = [
38c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "include/private",
39c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/c",
401211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec",
41c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/config",
42c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/core",
43c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/effects",
4425c81d4e651b43b8217c365c87d530036529a673mtklein    "src/effects/gradients",
4525c81d4e651b43b8217c365c87d530036529a673mtklein    "src/fonts",
46c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/gpu",
47c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/image",
48c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images",
49c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/lazy",
50c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/opts",
51c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/pathops",
522b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/pdf",
53c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports",
54c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt",
55c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils",
56c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1",
57c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx",
58c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
59150d113db56dc55b5e78f32febfb1e3b7c350611mtklein
60150d113db56dc55b5e78f32febfb1e3b7c350611mtklein  defines = [
619be6866e95127b3ad55badfecd471f67e6f4612bmtklein    "SK_GAMMA_APPLY_TO_A8",
629be6866e95127b3ad55badfecd471f67e6f4612bmtklein
63150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_GIF_LIBRARY",
64150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_JPEG_LIBRARY",
65150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_PNG_LIBRARY",
66150d113db56dc55b5e78f32febfb1e3b7c350611mtklein    "SK_HAS_WEBP_LIBRARY",
677c1ae7af4ff3912bdb518ac21571225155ece365mtklein
6819a9720978700a24efed8dda7e0935ea2b7338c4halcanary    # TODO(halcanary): make this the default; this is the value Android uses.
6919a9720978700a24efed8dda7e0935ea2b7338c4halcanary    "SK_SFNTLY_SUBSETTER=\"sample/chromium/font_subsetter.h\"",
7019a9720978700a24efed8dda7e0935ea2b7338c4halcanary
717c1ae7af4ff3912bdb518ac21571225155ece365mtklein    "TURBO_HAS_565",
727c1ae7af4ff3912bdb518ac21571225155ece365mtklein    "TURBO_HAS_CROP",
737c1ae7af4ff3912bdb518ac21571225155ece365mtklein    "TURBO_HAS_SKIP",
74150d113db56dc55b5e78f32febfb1e3b7c350611mtklein  ]
75c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
76c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
77c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
78c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinconfig("skia_library") {
79c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  visibility = [ ":*" ]
80c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  defines = [ "SKIA_IMPLEMENTATION=1" ]
81c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
82c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
83c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinskia_library_configs = [
84c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_public",
85c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_private",
86c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ":skia_library",
87c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein]
88c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
897fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleincore_gypi = exec_script("gn/gypi_to_gn.py",
90c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [
91c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          rebase_path("gyp/core.gypi"),
92c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_include_path)=include",
93c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_src_path)=src",
94c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        ],
95c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        "scope",
96c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [ "gyp/core.gypi" ])
97c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
987fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleineffects_gypi = exec_script("gn/gypi_to_gn.py",
99c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           [
100c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             rebase_path("gyp/effects.gypi"),
101c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             "--replace=<(skia_include_path)=include",
102c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                             "--replace=<(skia_src_path)=src",
103c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           ],
104c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "scope",
105c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           [ "gyp/effects.gypi" ])
106c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1077fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleingpu_gypi = exec_script("gn/gypi_to_gn.py",
108c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [
109c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         rebase_path("gyp/gpu.gypi"),
110c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_include_path)=include",
111c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_src_path)=src",
112c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       ],
113c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       "scope",
114c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [ "gyp/gpu.gypi" ])
115c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1167fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinopts_gypi = exec_script("gn/gypi_to_gn.py",
117c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [
118c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          rebase_path("gyp/opts.gypi"),
119c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_include_path)=include",
120c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                          "--replace=<(skia_src_path)=src",
121c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        ],
122c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        "scope",
123c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                        [ "gyp/opts.gypi" ])
124c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1257fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinpdf_gypi = exec_script("gn/gypi_to_gn.py",
126c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [
127c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         rebase_path("gyp/pdf.gypi"),
128c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_include_path)=include",
129c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "--replace=<(skia_src_path)=src",
130c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       ],
131c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       "scope",
132c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                       [ "gyp/pdf.gypi" ])
133c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1347fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtkleinutils_gypi = exec_script("gn/gypi_to_gn.py",
135c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         [
136c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           rebase_path("gyp/utils.gypi"),
137c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "--replace=<(skia_include_path)=include",
138c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                           "--replace=<(skia_src_path)=src",
139c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         ],
140c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         "scope",
141c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein                         [ "gyp/utils.gypi" ])
142c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
143c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinsource_set("opts_ssse3") {
144c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
145c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
146c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = opts_gypi.ssse3_sources
147c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  cflags = [ "-mssse3" ]
148c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
149c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
150c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinsource_set("opts_sse41") {
151c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
152c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
153c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = opts_gypi.sse41_sources
154c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  cflags = [ "-msse4.1" ]
155c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
156c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
157c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleinsource_set("opts_avx") {
158c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
159c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
160c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = opts_gypi.avx_sources
161c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  cflags = [ "-mavx" ]
162c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
163c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
164c04ff4788cb425db6d9bec0bde4edb14aec97f16mtkleincomponent("skia") {
165c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  public_configs = [ ":skia_public" ]
166c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  configs += skia_library_configs
167c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
168c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
169c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":opts_avx",
170c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":opts_sse41",
171c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":opts_ssse3",
17225c81d4e651b43b8217c365c87d530036529a673mtklein    "//third_party/expat",
17325c81d4e651b43b8217c365c87d530036529a673mtklein    "//third_party/giflib",
1747d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    "//third_party/libjpeg_turbo",
1757d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    "//third_party/libpng",
17625c81d4e651b43b8217c365c87d530036529a673mtklein    "//third_party/libwebp",
17719a9720978700a24efed8dda7e0935ea2b7338c4halcanary    "//third_party/sfntly",
1786fc8ff024bd823f350400a86e7b9daa1c25f618eabarth    "//third_party/zlib",
179c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
180c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
1817fbfbbe8f435fde7233c78f4f2dd1efb4fdd324cmtklein  libs = [ "pthread" ]
182c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
183c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = []
184c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += core_gypi.sources
185c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += effects_gypi.sources
186c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += gpu_gypi.skgpu_sources
187c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += opts_gypi.sse2_sources
188c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += pdf_gypi.sources
189c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += utils_gypi.sources
190c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources += [
19125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionCodec.cpp",
19225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/android/SkBitmapRegionDecoder.cpp",
19325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkAndroidCodec.cpp",
1941211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpCodec.cpp",
1951211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpMaskCodec.cpp",
1961211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpRLECodec.cpp",
1971211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkBmpStandardCodec.cpp",
1981211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodec.cpp",
1991211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkCodecImageGenerator.cpp",
20025c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkGifCodec.cpp",
2011211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkIcoCodec.cpp",
2021211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegCodec.cpp",
2031211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegDecoderMgr.cpp",
2041211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkJpegUtility.cpp",
2051211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMaskSwizzler.cpp",
2061211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkMasks.cpp",
2071211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkPngCodec.cpp",
20825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkSampledCodec.cpp",
2091211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSampler.cpp",
2101211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkSwizzler.cpp",
2111211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/codec/SkWbmpCodec.cpp",
21225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkWebpAdapterCodec.cpp",
21325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/codec/SkWebpCodec.cpp",
214c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder.cpp",
215c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/images/SkImageEncoder_Factory.cpp",
2162b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkJPEGImageEncoder.cpp",
2172b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkJPEGWriteUtility.cpp",
2182b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkKTXImageEncoder.cpp",
2192b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkPNGImageEncoder.cpp",
2202b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkWEBPImageEncoder.cpp",
221c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkDiscardableMemory_none.cpp",
222c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkGlobalInitialization_default.cpp",
2231211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "src/ports/SkImageGenerator_skia.cpp",
224c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkMemory_malloc.cpp",
225c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/ports/SkOSFile_stdio.cpp",
226c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTTable_name.cpp",
227c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/sfnt/SkOTUtils.cpp",
22825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGCanvas.cpp",
22925c81d4e651b43b8217c365c87d530036529a673mtklein    "src/svg/SkSVGDevice.cpp",
230c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "src/utils/mac/SkStream_mac.cpp",
23125c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkDOM.cpp",
23225c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkXMLParser.cpp",
23325c81d4e651b43b8217c365c87d530036529a673mtklein    "src/xml/SkXMLWriter.cpp",
234c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/etc1/etc1.cpp",
235c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    "third_party/ktx/ktx.cpp",
236c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
237c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
238c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_win) {
239c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
240c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_win.cpp",
241c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_win.cpp",
242c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw.cpp",
243c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontMgr_win_dw_factory.cpp",
244c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_WIC.cpp",
245c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorWIC.cpp",
246c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_win.cpp",
247c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkScalerContext_win_dw.cpp",
248c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_win.cpp",
249c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTypeface_win_dw.cpp",
25025c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS.cpp",
251c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
252c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  } else {
253c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
254c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkDebug_stdio.cpp",
255c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkOSFile_posix.cpp",
256c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkTLS_pthread.cpp",
25725c81d4e651b43b8217c365c87d530036529a673mtklein      "src/xps/SkDocument_XPS_None.cpp",
258c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
259c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
260c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
261c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_linux) {
262c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    deps += [
263c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "third_party:fontconfig",
264c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "third_party:freetype2",
265c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
266c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
267c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontConfigInterface_direct.cpp",
268c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontConfigInterface_direct_factory.cpp",
269c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_FreeType.cpp",
270c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_FreeType_common.cpp",
2717d0e3bc785fc5aaf2ed0aa8f37a2bc85c2f82da0bungeman      "src/ports/SkFontMgr_FontConfigInterface.cpp",
2727a34b1cd02ae65f2fb299752ebececec2b4f4285mtklein      "src/ports/SkFontMgr_fontconfig.cpp",
2737a34b1cd02ae65f2fb299752ebececec2b4f4285mtklein      "src/ports/SkFontMgr_fontconfig_factory.cpp",
274c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
275c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
276c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
277c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  if (is_mac) {
278c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    sources += [
279c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkFontHost_mac.cpp",
280c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageEncoder_CG.cpp",
281c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein      "src/ports/SkImageGeneratorCG.cpp",
282c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ]
283c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    libs += [ "ApplicationServices.framework" ]
284c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  }
2856fc8ff024bd823f350400a86e7b9daa1c25f618eabarth
2866fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  if (is_fuchsia) {
287e817ddf9b32200ebfd216921d172ef1342e13caemtklein    sources += [ "src/ports/SkFontMgr_empty_factory.cpp" ]
2886fc8ff024bd823f350400a86e7b9daa1c25f618eabarth  }
289c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
290c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein
291ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtkleinskia_h_headers = exec_script("gyp/find.py",
292ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             [ "*.h" ] + rebase_path(skia_public_includes),
293ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             "list lines",
294ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                             []) -
295ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 [
296ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/gl/GrGLConfig_chrome.h"),
297ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkBackendContext.h"),
298ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkDefines.h"),
299ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkInterface.h"),
300ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/gpu/vk/GrVkTypes.h"),
301ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                   rebase_path("include/ports/SkFontMgr_fontconfig.h"),
302ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                 ]
303ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein
3041211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinaction("skia.h") {
3051211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  script = "gn/echo_headers.py"
3061211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  args = [ rebase_path("$target_gen_dir/skia.h", root_build_dir) ] +
307ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein         rebase_path(skia_h_headers, root_build_dir)
3081211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  outputs = [
3091211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "$target_gen_dir/skia.h",
3101211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  ]
3111211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein}
3121211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
3131211e0ca74fc4b58dd314c87e94692b4d61be9b7mtkleinexecutable("fiddle") {
3141211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein  include_dirs = [ "$target_gen_dir" ]
3157d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  libs = []
3167d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  if (is_linux) {
3177d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein    libs += [ "OSMesa" ]
3187d10b9f6e61ce8cb5387291580c1c0645f72b167mtklein  }
3191211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein
320c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  sources = [
3211211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/draw.cpp",
3221211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    "tools/fiddle/fiddle_main.cpp",
323c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
324c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  deps = [
325c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein    ":skia",
3261211e0ca74fc4b58dd314c87e94692b4d61be9b7mtklein    ":skia.h",
3275dbd27484641279b53369587c93ba0566c20a161mtklein    ":tool_utils",
328c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein  ]
3295dbd27484641279b53369587c93ba0566c20a161mtklein  testonly = true
330c04ff4788cb425db6d9bec0bde4edb14aec97f16mtklein}
33125c81d4e651b43b8217c365c87d530036529a673mtklein
33225c81d4e651b43b8217c365c87d530036529a673mtkleintemplate("test_lib") {
33325c81d4e651b43b8217c365c87d530036529a673mtklein  config(target_name + "_config") {
33425c81d4e651b43b8217c365c87d530036529a673mtklein    include_dirs = invoker.public_include_dirs
33525c81d4e651b43b8217c365c87d530036529a673mtklein  }
33625c81d4e651b43b8217c365c87d530036529a673mtklein  source_set(target_name) {
33725c81d4e651b43b8217c365c87d530036529a673mtklein    forward_variables_from(invoker, "*", [ "public_include_dirs" ])
33825c81d4e651b43b8217c365c87d530036529a673mtklein    public_configs = [
33925c81d4e651b43b8217c365c87d530036529a673mtklein      ":" + target_name + "_config",
34025c81d4e651b43b8217c365c87d530036529a673mtklein      ":skia_private",
34125c81d4e651b43b8217c365c87d530036529a673mtklein    ]
34225c81d4e651b43b8217c365c87d530036529a673mtklein
34325c81d4e651b43b8217c365c87d530036529a673mtklein    if (!defined(deps)) {
34425c81d4e651b43b8217c365c87d530036529a673mtklein      deps = []
34525c81d4e651b43b8217c365c87d530036529a673mtklein    }
34625c81d4e651b43b8217c365c87d530036529a673mtklein    deps += [ ":skia" ]
34725c81d4e651b43b8217c365c87d530036529a673mtklein    testonly = true
34825c81d4e651b43b8217c365c87d530036529a673mtklein  }
34925c81d4e651b43b8217c365c87d530036529a673mtklein}
35025c81d4e651b43b8217c365c87d530036529a673mtklein
35125c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("gpu_tool_utils") {
35225c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "tools/gpu" ]
35325c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
35425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/GrContextFactory.cpp",
35525c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/GrTest.cpp",
35625c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/TestContext.cpp",
35725c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/GLTestContext.cpp",
35825c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/DebugGLTestContext.cpp",
35925c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrBufferObj.cpp",
36025c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrFrameBufferObj.cpp",
36125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrProgramObj.cpp",
36225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrShaderObj.cpp",
36325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrTextureObj.cpp",
36425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/debug/GrTextureUnitObj.cpp",
36525c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/gpu/gl/null/NullGLTestContext.cpp",
36625c81d4e651b43b8217c365c87d530036529a673mtklein  ]
36725c81d4e651b43b8217c365c87d530036529a673mtklein  libs = []
36825c81d4e651b43b8217c365c87d530036529a673mtklein
36925c81d4e651b43b8217c365c87d530036529a673mtklein  if (is_linux) {
3705259da5377a27298939fcef677851d46c75baddemtklein    sources += [
3714db3b7969f62f5ddbf32bd812b9510af018ece89mtklein      "src/gpu/gl/glx/GrGLCreateNativeInterface_glx.cpp",
3724db3b7969f62f5ddbf32bd812b9510af018ece89mtklein      "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp",
3735259da5377a27298939fcef677851d46c75baddemtklein    ]
37425c81d4e651b43b8217c365c87d530036529a673mtklein    libs += [
37525c81d4e651b43b8217c365c87d530036529a673mtklein      "GL",
37625c81d4e651b43b8217c365c87d530036529a673mtklein      "GLU",
37725c81d4e651b43b8217c365c87d530036529a673mtklein      "X11",
37825c81d4e651b43b8217c365c87d530036529a673mtklein    ]
37925c81d4e651b43b8217c365c87d530036529a673mtklein  } else if (is_mac) {
3805259da5377a27298939fcef677851d46c75baddemtklein    sources += [
3814db3b7969f62f5ddbf32bd812b9510af018ece89mtklein      "src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp",
3824db3b7969f62f5ddbf32bd812b9510af018ece89mtklein      "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp",
3835259da5377a27298939fcef677851d46c75baddemtklein    ]
38425c81d4e651b43b8217c365c87d530036529a673mtklein    libs += [ "OpenGL.framework" ]
38525c81d4e651b43b8217c365c87d530036529a673mtklein  }
38625c81d4e651b43b8217c365c87d530036529a673mtklein}
38725c81d4e651b43b8217c365c87d530036529a673mtklein
38825c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("flags") {
38925c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "tools/flags" ]
39025c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
39125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommandLineFlags.cpp",
39225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommonFlags.cpp",
39325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/flags/SkCommonFlagsConfig.cpp",
39425c81d4e651b43b8217c365c87d530036529a673mtklein  ]
39525c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
39625c81d4e651b43b8217c365c87d530036529a673mtklein    ":gpu_tool_utils",
39725c81d4e651b43b8217c365c87d530036529a673mtklein  ]
39825c81d4e651b43b8217c365c87d530036529a673mtklein}
39925c81d4e651b43b8217c365c87d530036529a673mtklein
40025c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("tool_utils") {
40125c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [
40225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools",
4032f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger",
40425c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/timer",
40525c81d4e651b43b8217c365c87d530036529a673mtklein  ]
40625c81d4e651b43b8217c365c87d530036529a673mtklein  sources = [
4072b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "src/images/SkForceLinking.cpp",
40825c81d4e651b43b8217c365c87d530036529a673mtklein    "src/utils/SkMultiPictureDocumentReader.cpp",  # TODO(halcanary): move to tools?
4092b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "tools/CrashHandler.cpp",
41025c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/ProcStats.cpp",
41125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/Resources.cpp",
4122b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    "tools/ThermalManager.cpp",
4132f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/UrlDataManager.cpp",
4142f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkDebugCanvas.cpp",
4152f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkDrawCommand.cpp",
4162f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkJsonWriteBuffer.cpp",
4172f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkObjectParser.cpp",
4182f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "tools/debugger/SkOverdrawMode.cpp",
41925c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/picture_utils.cpp",
42025c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/random_parse_path.cpp",
42125c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/sk_tool_utils.cpp",
42225c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/sk_tool_utils_font.cpp",
42325c81d4e651b43b8217c365c87d530036529a673mtklein    "tools/timer/Timer.cpp",
42425c81d4e651b43b8217c365c87d530036529a673mtklein  ]
42525c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
42625c81d4e651b43b8217c365c87d530036529a673mtklein    ":flags",
4272f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/libpng",
4282f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  ]
4292f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  public_deps = [
4302f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/jsoncpp",
43125c81d4e651b43b8217c365c87d530036529a673mtklein  ]
43225c81d4e651b43b8217c365c87d530036529a673mtklein}
43325c81d4e651b43b8217c365c87d530036529a673mtklein
43425c81d4e651b43b8217c365c87d530036529a673mtkleingm_sources = exec_script("gyp/find.py",
43525c81d4e651b43b8217c365c87d530036529a673mtklein                         [
43625c81d4e651b43b8217c365c87d530036529a673mtklein                           "*.c*",
437ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                           rebase_path("gm"),
43825c81d4e651b43b8217c365c87d530036529a673mtklein                         ],
43925c81d4e651b43b8217c365c87d530036529a673mtklein                         "list lines",
44025c81d4e651b43b8217c365c87d530036529a673mtklein                         [])
44125c81d4e651b43b8217c365c87d530036529a673mtkleintest_lib("gm") {
44225c81d4e651b43b8217c365c87d530036529a673mtklein  public_include_dirs = [ "gm" ]
44325c81d4e651b43b8217c365c87d530036529a673mtklein  sources = gm_sources
44425c81d4e651b43b8217c365c87d530036529a673mtklein  deps = [
44525c81d4e651b43b8217c365c87d530036529a673mtklein    ":gpu_tool_utils",
44625c81d4e651b43b8217c365c87d530036529a673mtklein    ":skia",
44725c81d4e651b43b8217c365c87d530036529a673mtklein    ":tool_utils",
44825c81d4e651b43b8217c365c87d530036529a673mtklein  ]
44925c81d4e651b43b8217c365c87d530036529a673mtklein}
45025c81d4e651b43b8217c365c87d530036529a673mtklein
4512f3416d2befb9480b7faf461530fd9044f77e6cdmtkleintests_sources = exec_script("gyp/find.py",
4522f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            [
4532f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                              "*.c*",
4542f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                              rebase_path("tests"),
4552f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            ],
4562f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            "list lines",
4572f3416d2befb9480b7faf461530fd9044f77e6cdmtklein                            [])
4582f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
4592f3416d2befb9480b7faf461530fd9044f77e6cdmtkleintest_lib("tests") {
4602f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  public_include_dirs = [ "tests" ]
4612f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  sources = tests_sources - [
4622f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/FontMgrAndroidParserTest.cpp"),  # Android only
4632f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
4642f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/RTConfRegistryTest.cpp"),  # TODO: delete
4654db3b7969f62f5ddbf32bd812b9510af018ece89mtklein              rebase_path("tests/SkSLErrorTest.cpp"),  # TODO: make work
4664db3b7969f62f5ddbf32bd812b9510af018ece89mtklein              rebase_path("tests/SkSLGLSLTest.cpp"),  # TODO: make work
4672f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
4682f3416d2befb9480b7faf461530fd9044f77e6cdmtklein              rebase_path("tests/skia_test.cpp"),  # alternate main
4692f3416d2befb9480b7faf461530fd9044f77e6cdmtklein            ]
4702f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  deps = [
4712f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":flags",
4722f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":gpu_tool_utils",
4732f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":skia",
4742f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    ":tool_utils",
4752f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/libpng",
4762f3416d2befb9480b7faf461530fd9044f77e6cdmtklein    "//third_party/zlib",
4772f3416d2befb9480b7faf461530fd9044f77e6cdmtklein  ]
4782f3416d2befb9480b7faf461530fd9044f77e6cdmtklein}
4792f3416d2befb9480b7faf461530fd9044f77e6cdmtklein
4802b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleinbench_sources = exec_script("gyp/find.py",
4812b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            [
4822b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                              "*.c*",
483ada5a44f3bdac10a8a0c53b34f5add7aea9fdbb0mtklein                              rebase_path("bench"),
4842b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            ],
4852b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            "list lines",
4862b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein                            [])
4872b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
4882b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleintest_lib("bench") {
4892b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  public_include_dirs = [ "bench" ]
4902b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  sources = bench_sources
4912b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  sources -= [
4922b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    rebase_path("bench/nanobench.cpp"),
4932b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    rebase_path("bench/nanobenchAndroid.cpp"),
4942b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  ]
4952b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  deps = [
4962b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":flags",
4972b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":gm",
4982b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":gpu_tool_utils",
4992b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":skia",
5002b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ":tool_utils",
5012b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  ]
5022b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein}
5032b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
5042b6870ccb21f0dbcfb17644e9badfb1d07009315mtkleinif (!is_component_build) {  # Our test tools use many non-SK_API APIs...
5052b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("dm") {
5062b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
5072b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DM.cpp",
5082b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMJsonWriter.cpp",
5092b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "dm/DMSrcSink.cpp",
5102b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5112b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    include_dirs = [ "tests" ]
5122b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
5132b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
5142b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
5152b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
5162b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
5172f3416d2befb9480b7faf461530fd9044f77e6cdmtklein      ":tests",
5182b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
5192b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
5202b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/libpng",
5212b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5222b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
5232b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
5242b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
5252b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("monobench") {
5262b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
5272b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "tools/monobench.cpp",
5282b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5292b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
5302b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
5312b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
5322b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5332b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
5342b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
5352b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein
5362b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  executable("nanobench") {
5372b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    sources = [
5382b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "bench/nanobench.cpp",
5392b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5402b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    deps = [
5412b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":bench",
5422b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":flags",
5432b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gm",
5442b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":gpu_tool_utils",
5452b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":skia",
5462b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      ":tool_utils",
5472b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein      "//third_party/jsoncpp",
5482b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    ]
5492b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein    testonly = true
5502b6870ccb21f0dbcfb17644e9badfb1d07009315mtklein  }
55119a9720978700a24efed8dda7e0935ea2b7338c4halcanary
55219a9720978700a24efed8dda7e0935ea2b7338c4halcanary  executable("sktexttopdf") {
55319a9720978700a24efed8dda7e0935ea2b7338c4halcanary    sources = [
55419a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "tools/SkShaper_harfbuzz.cpp",
55519a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "tools/using_skia_and_harfbuzz.cpp",
55619a9720978700a24efed8dda7e0935ea2b7338c4halcanary    ]
55719a9720978700a24efed8dda7e0935ea2b7338c4halcanary    deps = [
55819a9720978700a24efed8dda7e0935ea2b7338c4halcanary      ":skia",
55919a9720978700a24efed8dda7e0935ea2b7338c4halcanary      "//third_party/harfbuzz",
56019a9720978700a24efed8dda7e0935ea2b7338c4halcanary    ]
56119a9720978700a24efed8dda7e0935ea2b7338c4halcanary    testonly = true
56219a9720978700a24efed8dda7e0935ea2b7338c4halcanary  }
56325c81d4e651b43b8217c365c87d530036529a673mtklein}
564