1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. 2*c8dee2aaSAndroid Build Coastguard Worker# 3*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Workerimport("gn/codec.gni") 7*c8dee2aaSAndroid Build Coastguard Workerimport("gn/fuchsia_defines.gni") 8*c8dee2aaSAndroid Build Coastguard Workerimport("gn/shared_sources.gni") 9*c8dee2aaSAndroid Build Coastguard Workerimport("gn/skia.gni") 10*c8dee2aaSAndroid Build Coastguard Workerimport("gn/toolchain/wasm.gni") 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerif (is_fuchsia) { 13*c8dee2aaSAndroid Build Coastguard Worker import("//build/fuchsia/sdk.gni") 14*c8dee2aaSAndroid Build Coastguard Worker import("build/fuchsia/fuchsia_download_sdk.gni") 15*c8dee2aaSAndroid Build Coastguard Worker} 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Workerif (skia_use_dawn) { 18*c8dee2aaSAndroid Build Coastguard Worker import("//third_party/externals/dawn/scripts/dawn_features.gni") 19*c8dee2aaSAndroid Build Coastguard Worker} 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Workerif (defined(skia_settings)) { 22*c8dee2aaSAndroid Build Coastguard Worker import(skia_settings) 23*c8dee2aaSAndroid Build Coastguard Worker} 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Workerimport("gn/ios.gni") 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Worker# Skia public API, generally provided by :skia. 28*c8dee2aaSAndroid Build Coastguard Workerconfig("skia_public") { 29*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "." ] 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Worker defines = [ 32*c8dee2aaSAndroid Build Coastguard Worker "SK_CODEC_DECODES_BMP", 33*c8dee2aaSAndroid Build Coastguard Worker "SK_CODEC_DECODES_WBMP", 34*c8dee2aaSAndroid Build Coastguard Worker ] 35*c8dee2aaSAndroid Build Coastguard Worker cflags_objcc = [] 36*c8dee2aaSAndroid Build Coastguard Worker if (is_component_build) { 37*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SKIA_DLL" ] 38*c8dee2aaSAndroid Build Coastguard Worker } 39*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia || is_linux) { 40*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_R32_SHIFT=16" ] 41*c8dee2aaSAndroid Build Coastguard Worker } 42*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_optimize_size) { 43*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_OPTIMIZE_SIZE" ] 44*c8dee2aaSAndroid Build Coastguard Worker } 45*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_precompile) { 46*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_PRECOMPILE" ] 47*c8dee2aaSAndroid Build Coastguard Worker } 48*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia) { 49*c8dee2aaSAndroid Build Coastguard Worker defines += fuchsia_defines 50*c8dee2aaSAndroid Build Coastguard Worker } 51*c8dee2aaSAndroid Build Coastguard Worker if (is_wasm) { 52*c8dee2aaSAndroid Build Coastguard Worker defines += wasm_defines 53*c8dee2aaSAndroid Build Coastguard Worker } 54*c8dee2aaSAndroid Build Coastguard Worker if (skia_gl_standard == "gles") { 55*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ASSUME_GL_ES=1" ] 56*c8dee2aaSAndroid Build Coastguard Worker } else if (skia_gl_standard == "gl") { 57*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ASSUME_GL=1" ] 58*c8dee2aaSAndroid Build Coastguard Worker } else if (skia_gl_standard == "webgl") { 59*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ASSUME_WEBGL=1" ] 60*c8dee2aaSAndroid Build Coastguard Worker } 61*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_ganesh) { 62*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_GANESH" ] 63*c8dee2aaSAndroid Build Coastguard Worker } 64*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 65*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_GRAPHITE" ] 66*c8dee2aaSAndroid Build Coastguard Worker } 67*c8dee2aaSAndroid Build Coastguard Worker if (skia_disable_tracing) { 68*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_DISABLE_TRACING" ] 69*c8dee2aaSAndroid Build Coastguard Worker } 70*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_perfetto) { 71*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_USE_PERFETTO" ] 72*c8dee2aaSAndroid Build Coastguard Worker } 73*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_safe_libcxx) { 74*c8dee2aaSAndroid Build Coastguard Worker defines += [ "_LIBCPP_ENABLE_ASSERTIONS=1" ] 75*c8dee2aaSAndroid Build Coastguard Worker } 76*c8dee2aaSAndroid Build Coastguard Worker 77*c8dee2aaSAndroid Build Coastguard Worker # Some older versions of the Clang toolchain change the visibility of 78*c8dee2aaSAndroid Build Coastguard Worker # symbols decorated with API_AVAILABLE macro to be visible. Users of such 79*c8dee2aaSAndroid Build Coastguard Worker # toolchains suppress the use of this macro till toolchain updates are made. 80*c8dee2aaSAndroid Build Coastguard Worker if (is_mac || is_ios) { 81*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_api_available_macro) { 82*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_API_AVAILABLE" ] 83*c8dee2aaSAndroid Build Coastguard Worker } else { 84*c8dee2aaSAndroid Build Coastguard Worker cflags_objcc += [ "-Wno-unguarded-availability" ] 85*c8dee2aaSAndroid Build Coastguard Worker } 86*c8dee2aaSAndroid Build Coastguard Worker } 87*c8dee2aaSAndroid Build Coastguard Worker} 88*c8dee2aaSAndroid Build Coastguard Worker 89*c8dee2aaSAndroid Build Coastguard Worker# Skia internal APIs, used by Skia itself and a few test tools. 90*c8dee2aaSAndroid Build Coastguard Workerconfig("skia_private") { 91*c8dee2aaSAndroid Build Coastguard Worker visibility = [ "./*" ] 92*c8dee2aaSAndroid Build Coastguard Worker 93*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_GAMMA_APPLY_TO_A8" ] 94*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_fixed_gamma_text) { 95*c8dee2aaSAndroid Build Coastguard Worker defines += [ 96*c8dee2aaSAndroid Build Coastguard Worker "SK_GAMMA_EXPONENT=1.4", 97*c8dee2aaSAndroid Build Coastguard Worker "SK_GAMMA_CONTRAST=0.0", 98*c8dee2aaSAndroid Build Coastguard Worker ] 99*c8dee2aaSAndroid Build Coastguard Worker } 100*c8dee2aaSAndroid Build Coastguard Worker if (is_skia_dev_build && !is_wasm) { 101*c8dee2aaSAndroid Build Coastguard Worker defines += [ 102*c8dee2aaSAndroid Build Coastguard Worker "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1", 103*c8dee2aaSAndroid Build Coastguard Worker "GPU_TEST_UTILS=1", 104*c8dee2aaSAndroid Build Coastguard Worker ] 105*c8dee2aaSAndroid Build Coastguard Worker } 106*c8dee2aaSAndroid Build Coastguard Worker libs = [] 107*c8dee2aaSAndroid Build Coastguard Worker lib_dirs = [] 108*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl && skia_use_angle) { 109*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ANGLE" ] 110*c8dee2aaSAndroid Build Coastguard Worker } 111*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vma) { 112*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_USE_VMA" ] 113*c8dee2aaSAndroid Build Coastguard Worker } 114*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_winuwp) { 115*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_WINUWP" ] 116*c8dee2aaSAndroid Build Coastguard Worker } 117*c8dee2aaSAndroid Build Coastguard Worker if (skia_print_sksl_shaders) { 118*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_PRINT_SKSL_SHADERS" ] 119*c8dee2aaSAndroid Build Coastguard Worker } 120*c8dee2aaSAndroid Build Coastguard Worker if (skia_print_native_shaders) { 121*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_PRINT_NATIVE_SHADERS" ] 122*c8dee2aaSAndroid Build Coastguard Worker } 123*c8dee2aaSAndroid Build Coastguard Worker 124*c8dee2aaSAndroid Build Coastguard Worker # Temporary staging flag: 125*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_AVX512_OPTS" ] 126*c8dee2aaSAndroid Build Coastguard Worker} 127*c8dee2aaSAndroid Build Coastguard Worker 128*c8dee2aaSAndroid Build Coastguard Worker# Any code that's linked into Skia-the-library should use this config via += skia_library_configs. 129*c8dee2aaSAndroid Build Coastguard Workerconfig("skia_library") { 130*c8dee2aaSAndroid Build Coastguard Worker visibility = [ "./*" ] 131*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SKIA_IMPLEMENTATION=1" ] 132*c8dee2aaSAndroid Build Coastguard Worker} 133*c8dee2aaSAndroid Build Coastguard Worker 134*c8dee2aaSAndroid Build Coastguard Workerskia_library_configs = [ 135*c8dee2aaSAndroid Build Coastguard Worker ":skia_public", 136*c8dee2aaSAndroid Build Coastguard Worker ":skia_private", 137*c8dee2aaSAndroid Build Coastguard Worker ":skia_library", 138*c8dee2aaSAndroid Build Coastguard Worker] 139*c8dee2aaSAndroid Build Coastguard Worker 140*c8dee2aaSAndroid Build Coastguard Worker# Use for CPU-specific Skia code that needs particular compiler flags. 141*c8dee2aaSAndroid Build Coastguard Workertemplate("opts") { 142*c8dee2aaSAndroid Build Coastguard Worker if (invoker.enabled) { 143*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name) { 144*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 145*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 146*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 147*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, "*") 148*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.configs)) { 149*c8dee2aaSAndroid Build Coastguard Worker configs += invoker.configs 150*c8dee2aaSAndroid Build Coastguard Worker } 151*c8dee2aaSAndroid Build Coastguard Worker } 152*c8dee2aaSAndroid Build Coastguard Worker } else { 153*c8dee2aaSAndroid Build Coastguard Worker # If not enabled, a phony empty target that swallows all otherwise unused variables. 154*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name) { 155*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 156*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 157*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, 158*c8dee2aaSAndroid Build Coastguard Worker "*", 159*c8dee2aaSAndroid Build Coastguard Worker [ 160*c8dee2aaSAndroid Build Coastguard Worker "sources", 161*c8dee2aaSAndroid Build Coastguard Worker "cflags", 162*c8dee2aaSAndroid Build Coastguard Worker ]) 163*c8dee2aaSAndroid Build Coastguard Worker } 164*c8dee2aaSAndroid Build Coastguard Worker } 165*c8dee2aaSAndroid Build Coastguard Worker} 166*c8dee2aaSAndroid Build Coastguard Worker 167*c8dee2aaSAndroid Build Coastguard Workeris_x86 = current_cpu == "x64" || current_cpu == "x86" 168*c8dee2aaSAndroid Build Coastguard Workeris_loong64 = current_cpu == "loong64" 169*c8dee2aaSAndroid Build Coastguard Worker 170*c8dee2aaSAndroid Build Coastguard Workeropts("hsw") { 171*c8dee2aaSAndroid Build Coastguard Worker enabled = is_x86 172*c8dee2aaSAndroid Build Coastguard Worker sources = skia_opts.hsw_sources 173*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 174*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "/arch:AVX2" ] 175*c8dee2aaSAndroid Build Coastguard Worker } else { 176*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "-march=haswell" ] 177*c8dee2aaSAndroid Build Coastguard Worker } 178*c8dee2aaSAndroid Build Coastguard Worker} 179*c8dee2aaSAndroid Build Coastguard Worker 180*c8dee2aaSAndroid Build Coastguard Workeropts("skx") { 181*c8dee2aaSAndroid Build Coastguard Worker enabled = is_x86 182*c8dee2aaSAndroid Build Coastguard Worker sources = skia_opts.skx_sources 183*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 184*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "/arch:AVX512" ] 185*c8dee2aaSAndroid Build Coastguard Worker } else { 186*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "-march=skylake-avx512" ] 187*c8dee2aaSAndroid Build Coastguard Worker } 188*c8dee2aaSAndroid Build Coastguard Worker} 189*c8dee2aaSAndroid Build Coastguard Worker 190*c8dee2aaSAndroid Build Coastguard Workeropts("lasx") { 191*c8dee2aaSAndroid Build Coastguard Worker enabled = is_loong64 192*c8dee2aaSAndroid Build Coastguard Worker sources = skia_opts.lasx_sources 193*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "-mlasx" ] 194*c8dee2aaSAndroid Build Coastguard Worker} 195*c8dee2aaSAndroid Build Coastguard Worker 196*c8dee2aaSAndroid Build Coastguard Worker# Any feature of Skia that requires third-party code should be optional and use this template. 197*c8dee2aaSAndroid Build Coastguard Workertemplate("optional") { 198*c8dee2aaSAndroid Build Coastguard Worker if (invoker.enabled) { 199*c8dee2aaSAndroid Build Coastguard Worker config(target_name + "_public") { 200*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.public_defines)) { 201*c8dee2aaSAndroid Build Coastguard Worker defines = invoker.public_defines 202*c8dee2aaSAndroid Build Coastguard Worker } 203*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.public_configs)) { 204*c8dee2aaSAndroid Build Coastguard Worker configs = invoker.public_configs 205*c8dee2aaSAndroid Build Coastguard Worker } 206*c8dee2aaSAndroid Build Coastguard Worker } 207*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name) { 208*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 209*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 210*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 211*c8dee2aaSAndroid Build Coastguard Worker 212*c8dee2aaSAndroid Build Coastguard Worker # "*" clobbers the current scope; append to existing configs 213*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, 214*c8dee2aaSAndroid Build Coastguard Worker "*", 215*c8dee2aaSAndroid Build Coastguard Worker [ 216*c8dee2aaSAndroid Build Coastguard Worker "configs", 217*c8dee2aaSAndroid Build Coastguard Worker "public_defines", 218*c8dee2aaSAndroid Build Coastguard Worker "sources_for_tests", 219*c8dee2aaSAndroid Build Coastguard Worker "sources_when_disabled", 220*c8dee2aaSAndroid Build Coastguard Worker ]) 221*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.configs)) { 222*c8dee2aaSAndroid Build Coastguard Worker configs += invoker.configs 223*c8dee2aaSAndroid Build Coastguard Worker } 224*c8dee2aaSAndroid Build Coastguard Worker all_dependent_configs = [ ":" + target_name + "_public" ] 225*c8dee2aaSAndroid Build Coastguard Worker } 226*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.sources_for_tests) && skia_enable_tools) { 227*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name + "_tests") { 228*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 229*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 230*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 231*c8dee2aaSAndroid Build Coastguard Worker 232*c8dee2aaSAndroid Build Coastguard Worker # "*" clobbers the current scope; append to existing configs 233*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, 234*c8dee2aaSAndroid Build Coastguard Worker "*", 235*c8dee2aaSAndroid Build Coastguard Worker [ 236*c8dee2aaSAndroid Build Coastguard Worker "configs", 237*c8dee2aaSAndroid Build Coastguard Worker "public_defines", 238*c8dee2aaSAndroid Build Coastguard Worker "sources", 239*c8dee2aaSAndroid Build Coastguard Worker "sources_for_tests", 240*c8dee2aaSAndroid Build Coastguard Worker "sources_when_disabled", 241*c8dee2aaSAndroid Build Coastguard Worker ]) 242*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.configs)) { 243*c8dee2aaSAndroid Build Coastguard Worker configs += invoker.configs 244*c8dee2aaSAndroid Build Coastguard Worker } 245*c8dee2aaSAndroid Build Coastguard Worker testonly = true 246*c8dee2aaSAndroid Build Coastguard Worker sources = invoker.sources_for_tests 247*c8dee2aaSAndroid Build Coastguard Worker if (!defined(deps)) { 248*c8dee2aaSAndroid Build Coastguard Worker deps = [] 249*c8dee2aaSAndroid Build Coastguard Worker } 250*c8dee2aaSAndroid Build Coastguard Worker deps += [ 251*c8dee2aaSAndroid Build Coastguard Worker ":test", 252*c8dee2aaSAndroid Build Coastguard Worker ":" + target_name, 253*c8dee2aaSAndroid Build Coastguard Worker ] 254*c8dee2aaSAndroid Build Coastguard Worker all_dependent_configs = [ ":" + target_name + "_public" ] 255*c8dee2aaSAndroid Build Coastguard Worker } 256*c8dee2aaSAndroid Build Coastguard Worker } 257*c8dee2aaSAndroid Build Coastguard Worker } else { 258*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name) { 259*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 260*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 261*c8dee2aaSAndroid Build Coastguard Worker 262*c8dee2aaSAndroid Build Coastguard Worker # "*" clobbers the current scope; append to existing configs 263*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, 264*c8dee2aaSAndroid Build Coastguard Worker "*", 265*c8dee2aaSAndroid Build Coastguard Worker [ 266*c8dee2aaSAndroid Build Coastguard Worker "configs", 267*c8dee2aaSAndroid Build Coastguard Worker "public", 268*c8dee2aaSAndroid Build Coastguard Worker "public_defines", 269*c8dee2aaSAndroid Build Coastguard Worker "public_deps", 270*c8dee2aaSAndroid Build Coastguard Worker "deps", 271*c8dee2aaSAndroid Build Coastguard Worker "libs", 272*c8dee2aaSAndroid Build Coastguard Worker "frameworks", 273*c8dee2aaSAndroid Build Coastguard Worker "sources", 274*c8dee2aaSAndroid Build Coastguard Worker "sources_for_tests", 275*c8dee2aaSAndroid Build Coastguard Worker "sources_when_disabled", 276*c8dee2aaSAndroid Build Coastguard Worker ]) 277*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.configs)) { 278*c8dee2aaSAndroid Build Coastguard Worker configs += invoker.configs 279*c8dee2aaSAndroid Build Coastguard Worker } 280*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.sources_when_disabled)) { 281*c8dee2aaSAndroid Build Coastguard Worker sources = invoker.sources_when_disabled 282*c8dee2aaSAndroid Build Coastguard Worker } 283*c8dee2aaSAndroid Build Coastguard Worker } 284*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.sources_for_tests)) { 285*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name + "_tests") { 286*c8dee2aaSAndroid Build Coastguard Worker visibility = [ ":*" ] 287*c8dee2aaSAndroid Build Coastguard Worker } 288*c8dee2aaSAndroid Build Coastguard Worker } 289*c8dee2aaSAndroid Build Coastguard Worker } 290*c8dee2aaSAndroid Build Coastguard Worker} 291*c8dee2aaSAndroid Build Coastguard Worker 292*c8dee2aaSAndroid Build Coastguard Workeroptional("android_utils") { 293*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_android_utils 294*c8dee2aaSAndroid Build Coastguard Worker 295*c8dee2aaSAndroid Build Coastguard Worker public = [ 296*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android/BRDAllocator.h", 297*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android/BitmapRegionDecoder.h", 298*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android/FrontBufferedStream.h", 299*c8dee2aaSAndroid Build Coastguard Worker ] 300*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_ENABLE_ANDROID_UTILS" ] 301*c8dee2aaSAndroid Build Coastguard Worker sources = [ 302*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android/BitmapRegionDecoder.cpp", 303*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android/FrontBufferedStream.cpp", 304*c8dee2aaSAndroid Build Coastguard Worker ] 305*c8dee2aaSAndroid Build Coastguard Worker} 306*c8dee2aaSAndroid Build Coastguard Worker 307*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_android") { 308*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_android 309*c8dee2aaSAndroid Build Coastguard Worker 310*c8dee2aaSAndroid Build Coastguard Worker deps = [ 311*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 312*c8dee2aaSAndroid Build Coastguard Worker ":typeface_proxy", 313*c8dee2aaSAndroid Build Coastguard Worker "//third_party/expat", 314*c8dee2aaSAndroid Build Coastguard Worker ] 315*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_ANDROID_AVAILABLE" ] 316*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_android_public 317*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_android_sources 318*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/FontMgrAndroidParserTest.cpp" ] 319*c8dee2aaSAndroid Build Coastguard Worker} 320*c8dee2aaSAndroid Build Coastguard Worker 321*c8dee2aaSAndroid Build Coastguard Worker# if building Skia for API >= 30 and not using custom fonts, enable 322*c8dee2aaSAndroid Build Coastguard Worker# skia_enable_fontmgr_android_ndk and disable skia_enable_fontmgr_android 323*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_android_ndk") { 324*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_android_ndk 325*c8dee2aaSAndroid Build Coastguard Worker 326*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":typeface_freetype" ] 327*c8dee2aaSAndroid Build Coastguard Worker libs = [ "android" ] 328*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_ANDROID_NDK_AVAILABLE" ] 329*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_android_ndk_public 330*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_android_ndk_sources 331*c8dee2aaSAndroid Build Coastguard Worker} 332*c8dee2aaSAndroid Build Coastguard Worker 333*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_custom") { 334*c8dee2aaSAndroid Build Coastguard Worker enabled = 335*c8dee2aaSAndroid Build Coastguard Worker skia_enable_fontmgr_custom_directory || 336*c8dee2aaSAndroid Build Coastguard Worker skia_enable_fontmgr_custom_embedded || skia_enable_fontmgr_custom_empty 337*c8dee2aaSAndroid Build Coastguard Worker 338*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":typeface_freetype" ] 339*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_custom_sources 340*c8dee2aaSAndroid Build Coastguard Worker} 341*c8dee2aaSAndroid Build Coastguard Worker 342*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_custom_directory") { 343*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_custom_directory 344*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE" ] 345*c8dee2aaSAndroid Build Coastguard Worker deps = [ 346*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom", 347*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 348*c8dee2aaSAndroid Build Coastguard Worker ] 349*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_directory_public 350*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_directory_sources 351*c8dee2aaSAndroid Build Coastguard Worker} 352*c8dee2aaSAndroid Build Coastguard Worker 353*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_custom_embedded") { 354*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_custom_embedded 355*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FREETYPE_EMBEDDED_AVAILABLE" ] 356*c8dee2aaSAndroid Build Coastguard Worker deps = [ 357*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom", 358*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 359*c8dee2aaSAndroid Build Coastguard Worker ] 360*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_embedded_public 361*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_embedded_sources 362*c8dee2aaSAndroid Build Coastguard Worker} 363*c8dee2aaSAndroid Build Coastguard Worker 364*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_custom_empty") { 365*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_custom_empty 366*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE" ] 367*c8dee2aaSAndroid Build Coastguard Worker deps = [ 368*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom", 369*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 370*c8dee2aaSAndroid Build Coastguard Worker ] 371*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_empty_public 372*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_empty_sources 373*c8dee2aaSAndroid Build Coastguard Worker} 374*c8dee2aaSAndroid Build Coastguard Worker 375*c8dee2aaSAndroid Build Coastguard Workerskia_source_set("typeface_proxy") { 376*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":skia_public" ] 377*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_typeface_proxy_sources 378*c8dee2aaSAndroid Build Coastguard Worker} 379*c8dee2aaSAndroid Build Coastguard Worker 380*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_fontconfig") { 381*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_fontconfig 382*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FONTCONFIG_AVAILABLE" ] 383*c8dee2aaSAndroid Build Coastguard Worker 384*c8dee2aaSAndroid Build Coastguard Worker # The public header includes fontconfig.h and uses FcConfig* 385*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ "//third_party:fontconfig" ] 386*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_fontconfig_public 387*c8dee2aaSAndroid Build Coastguard Worker deps = [ 388*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 389*c8dee2aaSAndroid Build Coastguard Worker ":typeface_proxy", 390*c8dee2aaSAndroid Build Coastguard Worker ] 391*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_fontconfig_sources 392*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/FontMgrFontConfigTest.cpp" ] 393*c8dee2aaSAndroid Build Coastguard Worker} 394*c8dee2aaSAndroid Build Coastguard Worker 395*c8dee2aaSAndroid Build Coastguard Workerskia_source_set("fontscanner_tests") { 396*c8dee2aaSAndroid Build Coastguard Worker testonly = true 397*c8dee2aaSAndroid Build Coastguard Worker 398*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 399*c8dee2aaSAndroid Build Coastguard Worker sources = [ 400*c8dee2aaSAndroid Build Coastguard Worker "tests/FontScanner.cpp", 401*c8dee2aaSAndroid Build Coastguard Worker "tests/FontScanner.h", 402*c8dee2aaSAndroid Build Coastguard Worker ] 403*c8dee2aaSAndroid Build Coastguard Worker} 404*c8dee2aaSAndroid Build Coastguard Worker 405*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_FontConfigInterface") { 406*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_FontConfigInterface 407*c8dee2aaSAndroid Build Coastguard Worker 408*c8dee2aaSAndroid Build Coastguard Worker deps = [ 409*c8dee2aaSAndroid Build Coastguard Worker ":typeface_freetype", 410*c8dee2aaSAndroid Build Coastguard Worker "//third_party:fontconfig", 411*c8dee2aaSAndroid Build Coastguard Worker ] 412*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fci_public 413*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fci_sources 414*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/FCITest.cpp" ] 415*c8dee2aaSAndroid Build Coastguard Worker} 416*c8dee2aaSAndroid Build Coastguard Worker 417*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_fontations_empty") { 418*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_fontations 419*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FONTATIONS_AVAILABLE" ] 420*c8dee2aaSAndroid Build Coastguard Worker 421*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":typeface_fontations" ] 422*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_fontations_public 423*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_fontations_sources 424*c8dee2aaSAndroid Build Coastguard Worker} 425*c8dee2aaSAndroid Build Coastguard Worker 426*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_fuchsia") { 427*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_fuchsia 428*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_FUCHSIA_AVAILABLE" ] 429*c8dee2aaSAndroid Build Coastguard Worker deps = [] 430*c8dee2aaSAndroid Build Coastguard Worker 431*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia && using_fuchsia_sdk) { 432*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//build/fuchsia/fidl:fuchsia.fonts" ] 433*c8dee2aaSAndroid Build Coastguard Worker } else { 434*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//sdk/fidl/fuchsia.fonts" ] 435*c8dee2aaSAndroid Build Coastguard Worker } 436*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_fuchsia_public 437*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_fuchsia_sources 438*c8dee2aaSAndroid Build Coastguard Worker} 439*c8dee2aaSAndroid Build Coastguard Worker 440*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_mac_ct") { 441*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_fonthost_mac 442*c8dee2aaSAndroid Build Coastguard Worker 443*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ 444*c8dee2aaSAndroid Build Coastguard Worker "SK_TYPEFACE_FACTORY_CORETEXT", 445*c8dee2aaSAndroid Build Coastguard Worker "SK_FONTMGR_CORETEXT_AVAILABLE", 446*c8dee2aaSAndroid Build Coastguard Worker ] 447*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_fontmgr_coretext_public 448*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fontmgr_coretext_sources 449*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/TypefaceMacTest.cpp" ] 450*c8dee2aaSAndroid Build Coastguard Worker 451*c8dee2aaSAndroid Build Coastguard Worker if (is_mac) { 452*c8dee2aaSAndroid Build Coastguard Worker frameworks = [ 453*c8dee2aaSAndroid Build Coastguard Worker # AppKit symbols NSFontWeightXXX may be dlsym'ed. 454*c8dee2aaSAndroid Build Coastguard Worker "AppKit.framework", 455*c8dee2aaSAndroid Build Coastguard Worker "ApplicationServices.framework", 456*c8dee2aaSAndroid Build Coastguard Worker ] 457*c8dee2aaSAndroid Build Coastguard Worker } 458*c8dee2aaSAndroid Build Coastguard Worker 459*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 460*c8dee2aaSAndroid Build Coastguard Worker frameworks = [ 461*c8dee2aaSAndroid Build Coastguard Worker "CoreFoundation.framework", 462*c8dee2aaSAndroid Build Coastguard Worker "CoreGraphics.framework", 463*c8dee2aaSAndroid Build Coastguard Worker "CoreText.framework", 464*c8dee2aaSAndroid Build Coastguard Worker 465*c8dee2aaSAndroid Build Coastguard Worker # UIKit symbols UIFontWeightXXX may be dlsym'ed. 466*c8dee2aaSAndroid Build Coastguard Worker "UIKit.framework", 467*c8dee2aaSAndroid Build Coastguard Worker ] 468*c8dee2aaSAndroid Build Coastguard Worker } 469*c8dee2aaSAndroid Build Coastguard Worker} 470*c8dee2aaSAndroid Build Coastguard Worker 471*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_win") { 472*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_win 473*c8dee2aaSAndroid Build Coastguard Worker 474*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ 475*c8dee2aaSAndroid Build Coastguard Worker "SK_TYPEFACE_FACTORY_DIRECTWRITE", 476*c8dee2aaSAndroid Build Coastguard Worker "SK_FONTMGR_DIRECTWRITE_AVAILABLE", 477*c8dee2aaSAndroid Build Coastguard Worker ] 478*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_windows_fonts_public 479*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_windows_fonts_sources 480*c8dee2aaSAndroid Build Coastguard Worker if (skia_dwritecore_sdk != "") { 481*c8dee2aaSAndroid Build Coastguard Worker defines = [ "DWRITE_CORE" ] 482*c8dee2aaSAndroid Build Coastguard Worker if (is_win && is_clang) { 483*c8dee2aaSAndroid Build Coastguard Worker # Clang complains about these headers, so mark them as system. These 484*c8dee2aaSAndroid Build Coastguard Worker # headers are hiding SDK headers of the same name, which are also 485*c8dee2aaSAndroid Build Coastguard Worker # included as system headers, so these need to go first in the cflags 486*c8dee2aaSAndroid Build Coastguard Worker # "includes" before the SDK. gn appends configs in the order listed, 487*c8dee2aaSAndroid Build Coastguard Worker # so these flags will be first. 488*c8dee2aaSAndroid Build Coastguard Worker cflags = [ 489*c8dee2aaSAndroid Build Coastguard Worker "-imsvc", 490*c8dee2aaSAndroid Build Coastguard Worker "${skia_dwritecore_sdk}/include", 491*c8dee2aaSAndroid Build Coastguard Worker ] 492*c8dee2aaSAndroid Build Coastguard Worker } else { 493*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "${skia_dwritecore_sdk}/include" ] 494*c8dee2aaSAndroid Build Coastguard Worker } 495*c8dee2aaSAndroid Build Coastguard Worker } 496*c8dee2aaSAndroid Build Coastguard Worker} 497*c8dee2aaSAndroid Build Coastguard Worker 498*c8dee2aaSAndroid Build Coastguard Workeroptional("fontmgr_win_gdi") { 499*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_fontmgr_win_gdi 500*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_FONTMGR_GDI_AVAILABLE" ] 501*c8dee2aaSAndroid Build Coastguard Worker public = skia_ports_windows_fonts_public 502*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_fonthost_win_sources 503*c8dee2aaSAndroid Build Coastguard Worker libs = [ "Gdi32.lib" ] 504*c8dee2aaSAndroid Build Coastguard Worker} 505*c8dee2aaSAndroid Build Coastguard Worker 506*c8dee2aaSAndroid Build Coastguard Workerif (skia_lex) { 507*c8dee2aaSAndroid Build Coastguard Worker skia_executable("sksllex") { 508*c8dee2aaSAndroid Build Coastguard Worker sources = [ 509*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/DFA.h", 510*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/DFAState.h", 511*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/LexUtil.h", 512*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/Main.cpp", 513*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/NFA.cpp", 514*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/NFA.h", 515*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/NFAState.h", 516*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/NFAtoDFA.h", 517*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/RegexNode.cpp", 518*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/RegexNode.h", 519*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/RegexParser.cpp", 520*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/RegexParser.h", 521*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/TransitionTable.cpp", 522*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/lex/TransitionTable.h", 523*c8dee2aaSAndroid Build Coastguard Worker ] 524*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "." ] 525*c8dee2aaSAndroid Build Coastguard Worker } 526*c8dee2aaSAndroid Build Coastguard Worker 527*c8dee2aaSAndroid Build Coastguard Worker action("run_sksllex") { 528*c8dee2aaSAndroid Build Coastguard Worker script = "gn/run_sksllex.py" 529*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":sksllex(//gn/toolchain:$host_toolchain)" ] 530*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/sksl/lex/sksl.lex" ] 531*c8dee2aaSAndroid Build Coastguard Worker 532*c8dee2aaSAndroid Build Coastguard Worker # GN insists its outputs should go somewhere underneath target_out_dir, so we trick it with a 533*c8dee2aaSAndroid Build Coastguard Worker # path that starts with target_out_dir and then uses ".." to back up into the src dir. 534*c8dee2aaSAndroid Build Coastguard Worker outputs = [ 535*c8dee2aaSAndroid Build Coastguard Worker "$target_out_dir/" + rebase_path("src/sksl/SkSLLexer.h", target_out_dir), 536*c8dee2aaSAndroid Build Coastguard Worker # the script also modifies the corresponding .cpp file, but if we tell GN that it gets 537*c8dee2aaSAndroid Build Coastguard Worker # confused due to the same file being named by two different paths 538*c8dee2aaSAndroid Build Coastguard Worker ] 539*c8dee2aaSAndroid Build Coastguard Worker sksllex_path = "$root_out_dir/" 540*c8dee2aaSAndroid Build Coastguard Worker sksllex_path += "sksllex" 541*c8dee2aaSAndroid Build Coastguard Worker if (host_os == "win") { 542*c8dee2aaSAndroid Build Coastguard Worker sksllex_path += ".exe" 543*c8dee2aaSAndroid Build Coastguard Worker } 544*c8dee2aaSAndroid Build Coastguard Worker args = [ 545*c8dee2aaSAndroid Build Coastguard Worker rebase_path(sksllex_path), 546*c8dee2aaSAndroid Build Coastguard Worker rebase_path("bin/clang-format"), 547*c8dee2aaSAndroid Build Coastguard Worker rebase_path("bin/fetch-clang-format"), 548*c8dee2aaSAndroid Build Coastguard Worker rebase_path("src"), 549*c8dee2aaSAndroid Build Coastguard Worker ] 550*c8dee2aaSAndroid Build Coastguard Worker } 551*c8dee2aaSAndroid Build Coastguard Worker} else { 552*c8dee2aaSAndroid Build Coastguard Worker group("run_sksllex") { 553*c8dee2aaSAndroid Build Coastguard Worker } 554*c8dee2aaSAndroid Build Coastguard Worker} 555*c8dee2aaSAndroid Build Coastguard Worker 556*c8dee2aaSAndroid Build Coastguard Workerif (skia_compile_modules || skia_compile_sksl_tests) { 557*c8dee2aaSAndroid Build Coastguard Worker # Copy the module source files into the same directory as skslc. 558*c8dee2aaSAndroid Build Coastguard Worker copy("sksl_modules") { 559*c8dee2aaSAndroid Build Coastguard Worker sources = [ 560*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_compute.sksl", 561*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_frag.sksl", 562*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_gpu.sksl", 563*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_graphite_frag.sksl", 564*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_graphite_frag_es2.sksl", 565*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_graphite_vert.sksl", 566*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_graphite_vert_es2.sksl", 567*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_public.sksl", 568*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_rt_shader.sksl", 569*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_shared.sksl", 570*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/sksl_vert.sksl", 571*c8dee2aaSAndroid Build Coastguard Worker ] 572*c8dee2aaSAndroid Build Coastguard Worker skslc_dir = "$root_out_dir/" 573*c8dee2aaSAndroid Build Coastguard Worker if (host_toolchain != default_toolchain_name) { 574*c8dee2aaSAndroid Build Coastguard Worker skslc_dir += "$host_toolchain/" 575*c8dee2aaSAndroid Build Coastguard Worker } 576*c8dee2aaSAndroid Build Coastguard Worker outputs = [ "$skslc_dir/{{source_file_part}}" ] 577*c8dee2aaSAndroid Build Coastguard Worker } 578*c8dee2aaSAndroid Build Coastguard Worker} 579*c8dee2aaSAndroid Build Coastguard Worker 580*c8dee2aaSAndroid Build Coastguard Workerif (skia_compile_modules) { 581*c8dee2aaSAndroid Build Coastguard Worker # Generate the sksl-minify binary. 582*c8dee2aaSAndroid Build Coastguard Worker skia_executable("sksl-minify") { 583*c8dee2aaSAndroid Build Coastguard Worker defines = [ 584*c8dee2aaSAndroid Build Coastguard Worker "SKSL_STANDALONE", 585*c8dee2aaSAndroid Build Coastguard Worker "SK_DISABLE_TRACING", 586*c8dee2aaSAndroid Build Coastguard Worker ] 587*c8dee2aaSAndroid Build Coastguard Worker sources = skslc_deps 588*c8dee2aaSAndroid Build Coastguard Worker sources += [ 589*c8dee2aaSAndroid Build Coastguard Worker "tools/sksl-minify/SkSLMinify.cpp", 590*c8dee2aaSAndroid Build Coastguard Worker "tools/skslc/ProcessWorklist.cpp", 591*c8dee2aaSAndroid Build Coastguard Worker "tools/skslc/ProcessWorklist.h", 592*c8dee2aaSAndroid Build Coastguard Worker ] 593*c8dee2aaSAndroid Build Coastguard Worker libs = [] 594*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 595*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_win.cpp" ] 596*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac || is_ios) { 597*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_mac.cpp" ] 598*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux || is_android) { 599*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_linux.cpp" ] 600*c8dee2aaSAndroid Build Coastguard Worker } 601*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 602*c8dee2aaSAndroid Build Coastguard Worker sources += skia_ports_windows_sources 603*c8dee2aaSAndroid Build Coastguard Worker } else { 604*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkOSFile_posix.cpp" ] 605*c8dee2aaSAndroid Build Coastguard Worker libs += [ "dl" ] 606*c8dee2aaSAndroid Build Coastguard Worker } 607*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_core_sources 608*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_codegen_sources 609*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "." ] 610*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":run_sksllex" ] 611*c8dee2aaSAndroid Build Coastguard Worker } 612*c8dee2aaSAndroid Build Coastguard Worker 613*c8dee2aaSAndroid Build Coastguard Worker sksl_minify_path = "$root_out_dir/" 614*c8dee2aaSAndroid Build Coastguard Worker if (host_toolchain != default_toolchain_name) { 615*c8dee2aaSAndroid Build Coastguard Worker sksl_minify_path += "$host_toolchain/" 616*c8dee2aaSAndroid Build Coastguard Worker } 617*c8dee2aaSAndroid Build Coastguard Worker sksl_minify_path += "sksl-minify" 618*c8dee2aaSAndroid Build Coastguard Worker if (host_os == "win") { 619*c8dee2aaSAndroid Build Coastguard Worker sksl_minify_path += ".exe" 620*c8dee2aaSAndroid Build Coastguard Worker } 621*c8dee2aaSAndroid Build Coastguard Worker 622*c8dee2aaSAndroid Build Coastguard Worker # Use minify_sksl.py to precompile all of the modules. 623*c8dee2aaSAndroid Build Coastguard Worker minify_sksl_sources = get_target_outputs(":sksl_modules") 624*c8dee2aaSAndroid Build Coastguard Worker 625*c8dee2aaSAndroid Build Coastguard Worker minify_sksl_outputs = [] 626*c8dee2aaSAndroid Build Coastguard Worker foreach(src, minify_sksl_sources) { 627*c8dee2aaSAndroid Build Coastguard Worker name = get_path_info(src, "name") 628*c8dee2aaSAndroid Build Coastguard Worker 629*c8dee2aaSAndroid Build Coastguard Worker # GN insists its outputs should go somewhere underneath target_out_dir, so we trick it with a 630*c8dee2aaSAndroid Build Coastguard Worker # path that starts with target_out_dir and then uses ".." to back up into the src dir. 631*c8dee2aaSAndroid Build Coastguard Worker minify_sksl_outputs += [ "$target_out_dir/" + rebase_path( 632*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/generated/$name.minified.sksl", 633*c8dee2aaSAndroid Build Coastguard Worker target_out_dir) ] 634*c8dee2aaSAndroid Build Coastguard Worker minify_sksl_outputs += [ "$target_out_dir/" + rebase_path( 635*c8dee2aaSAndroid Build Coastguard Worker "src/sksl/generated/$name.unoptimized.sksl", 636*c8dee2aaSAndroid Build Coastguard Worker target_out_dir) ] 637*c8dee2aaSAndroid Build Coastguard Worker } 638*c8dee2aaSAndroid Build Coastguard Worker 639*c8dee2aaSAndroid Build Coastguard Worker action("minify_sksl") { 640*c8dee2aaSAndroid Build Coastguard Worker script = "gn/minify_sksl.py" 641*c8dee2aaSAndroid Build Coastguard Worker deps = [ 642*c8dee2aaSAndroid Build Coastguard Worker ":sksl-minify(//gn/toolchain:$host_toolchain)", 643*c8dee2aaSAndroid Build Coastguard Worker ":sksl_modules", 644*c8dee2aaSAndroid Build Coastguard Worker ] 645*c8dee2aaSAndroid Build Coastguard Worker sources = minify_sksl_sources 646*c8dee2aaSAndroid Build Coastguard Worker outputs = minify_sksl_outputs 647*c8dee2aaSAndroid Build Coastguard Worker args = [ 648*c8dee2aaSAndroid Build Coastguard Worker rebase_path(sksl_minify_path), 649*c8dee2aaSAndroid Build Coastguard Worker rebase_path("src/sksl/generated"), 650*c8dee2aaSAndroid Build Coastguard Worker ] 651*c8dee2aaSAndroid Build Coastguard Worker args += rebase_path(minify_sksl_sources) 652*c8dee2aaSAndroid Build Coastguard Worker } 653*c8dee2aaSAndroid Build Coastguard Worker 654*c8dee2aaSAndroid Build Coastguard Worker if (skia_compile_sksl_tests) { 655*c8dee2aaSAndroid Build Coastguard Worker # Minify our existing .rts files into golden minified outputs. 656*c8dee2aaSAndroid Build Coastguard Worker import("gn/sksl_tests.gni") 657*c8dee2aaSAndroid Build Coastguard Worker action("minify_sksl_tests") { 658*c8dee2aaSAndroid Build Coastguard Worker script = "gn/minify_sksl_tests.py" 659*c8dee2aaSAndroid Build Coastguard Worker deps = [ 660*c8dee2aaSAndroid Build Coastguard Worker ":sksl-minify(//gn/toolchain:$host_toolchain)", 661*c8dee2aaSAndroid Build Coastguard Worker ":sksl_modules", 662*c8dee2aaSAndroid Build Coastguard Worker ] 663*c8dee2aaSAndroid Build Coastguard Worker sources = [] 664*c8dee2aaSAndroid Build Coastguard Worker outputs = [] 665*c8dee2aaSAndroid Build Coastguard Worker response_file_contents = [] 666*c8dee2aaSAndroid Build Coastguard Worker args = [ 667*c8dee2aaSAndroid Build Coastguard Worker # Comments match the variable names in minify_sksl_tests.py 668*c8dee2aaSAndroid Build Coastguard Worker rebase_path(sksl_minify_path), # sksl_minify 669*c8dee2aaSAndroid Build Coastguard Worker rebase_path("src/sksl/sksl_shared.sksl"), # shared_module 670*c8dee2aaSAndroid Build Coastguard Worker rebase_path("src/sksl/sksl_public.sksl"), # public_module 671*c8dee2aaSAndroid Build Coastguard Worker rebase_path("src/sksl/sksl_rt_shader.sksl"), # public_module 672*c8dee2aaSAndroid Build Coastguard Worker rebase_path("resources"), # input_root_dir 673*c8dee2aaSAndroid Build Coastguard Worker rebase_path("tests"), # output_root_dir 674*c8dee2aaSAndroid Build Coastguard Worker "{{response_file_name}}", # input_file 675*c8dee2aaSAndroid Build Coastguard Worker ] 676*c8dee2aaSAndroid Build Coastguard Worker 677*c8dee2aaSAndroid Build Coastguard Worker testsDir = get_path_info("tests/sksl/", "abspath") 678*c8dee2aaSAndroid Build Coastguard Worker resourcesDir = get_path_info("resources/sksl/", "abspath") 679*c8dee2aaSAndroid Build Coastguard Worker 680*c8dee2aaSAndroid Build Coastguard Worker foreach(partialPath, sksl_minify_tests_sources) { 681*c8dee2aaSAndroid Build Coastguard Worker dst = testsDir + partialPath 682*c8dee2aaSAndroid Build Coastguard Worker src = resourcesDir + partialPath 683*c8dee2aaSAndroid Build Coastguard Worker 684*c8dee2aaSAndroid Build Coastguard Worker dir = get_path_info(dst, "dir") 685*c8dee2aaSAndroid Build Coastguard Worker name = get_path_info(dst, "name") 686*c8dee2aaSAndroid Build Coastguard Worker ext = get_path_info(dst, "extension") 687*c8dee2aaSAndroid Build Coastguard Worker if (ext == "rts" || ext == "privrts" || ext == "rtcf" || ext == "rtb" || 688*c8dee2aaSAndroid Build Coastguard Worker ext == "mfrag" || ext == "mvert") { 689*c8dee2aaSAndroid Build Coastguard Worker response_file_contents += [ rebase_path(src) ] 690*c8dee2aaSAndroid Build Coastguard Worker sources += [ src ] 691*c8dee2aaSAndroid Build Coastguard Worker outputs += [ target_out_dir + "/" + 692*c8dee2aaSAndroid Build Coastguard Worker rebase_path(dir + "/" + name + ".minified.sksl", 693*c8dee2aaSAndroid Build Coastguard Worker target_out_dir) ] 694*c8dee2aaSAndroid Build Coastguard Worker } 695*c8dee2aaSAndroid Build Coastguard Worker } 696*c8dee2aaSAndroid Build Coastguard Worker } 697*c8dee2aaSAndroid Build Coastguard Worker } 698*c8dee2aaSAndroid Build Coastguard Worker} else { 699*c8dee2aaSAndroid Build Coastguard Worker group("minify_sksl") { 700*c8dee2aaSAndroid Build Coastguard Worker } 701*c8dee2aaSAndroid Build Coastguard Worker group("minify_sksl_tests") { 702*c8dee2aaSAndroid Build Coastguard Worker } 703*c8dee2aaSAndroid Build Coastguard Worker} 704*c8dee2aaSAndroid Build Coastguard Worker 705*c8dee2aaSAndroid Build Coastguard Worker# `Compile SkSL Tests` relies on skslc and the precompiled modules. 706*c8dee2aaSAndroid Build Coastguard Workerif (skia_compile_sksl_tests) { 707*c8dee2aaSAndroid Build Coastguard Worker # Build skslc. 708*c8dee2aaSAndroid Build Coastguard Worker skia_executable("skslc") { 709*c8dee2aaSAndroid Build Coastguard Worker defines = [ 710*c8dee2aaSAndroid Build Coastguard Worker "SKSL_STANDALONE", 711*c8dee2aaSAndroid Build Coastguard Worker "SK_DISABLE_TRACING", 712*c8dee2aaSAndroid Build Coastguard Worker "SK_COMPILE_WITH_GN", 713*c8dee2aaSAndroid Build Coastguard Worker ] 714*c8dee2aaSAndroid Build Coastguard Worker sources = skslc_deps 715*c8dee2aaSAndroid Build Coastguard Worker sources += [ 716*c8dee2aaSAndroid Build Coastguard Worker "tools/skslc/Main.cpp", 717*c8dee2aaSAndroid Build Coastguard Worker "tools/skslc/ProcessWorklist.cpp", 718*c8dee2aaSAndroid Build Coastguard Worker "tools/skslc/ProcessWorklist.h", 719*c8dee2aaSAndroid Build Coastguard Worker ] 720*c8dee2aaSAndroid Build Coastguard Worker libs = [] 721*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 722*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_win.cpp" ] 723*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac || is_ios) { 724*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_mac.cpp" ] 725*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux || is_android) { 726*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/utils/SkGetExecutablePath_linux.cpp" ] 727*c8dee2aaSAndroid Build Coastguard Worker } 728*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 729*c8dee2aaSAndroid Build Coastguard Worker sources += skia_ports_windows_sources 730*c8dee2aaSAndroid Build Coastguard Worker } else { 731*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkOSFile_posix.cpp" ] 732*c8dee2aaSAndroid Build Coastguard Worker libs += [ "dl" ] 733*c8dee2aaSAndroid Build Coastguard Worker } 734*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_codegen_sources 735*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_core_sources 736*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_hlsl_sources 737*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_pipeline_sources 738*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_tracing_sources 739*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_validate_spirv_sources 740*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_validate_wgsl_sources 741*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "." ] 742*c8dee2aaSAndroid Build Coastguard Worker deps = [ 743*c8dee2aaSAndroid Build Coastguard Worker ":run_sksllex", 744*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/dawn/src/tint/api:api", 745*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/spirv-tools:spvtools", 746*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/spirv-tools:spvtools_val", 747*c8dee2aaSAndroid Build Coastguard Worker "//third_party/spirv-cross:spirv_cross", 748*c8dee2aaSAndroid Build Coastguard Worker ] 749*c8dee2aaSAndroid Build Coastguard Worker } 750*c8dee2aaSAndroid Build Coastguard Worker 751*c8dee2aaSAndroid Build Coastguard Worker skslc_path = "$root_out_dir/" 752*c8dee2aaSAndroid Build Coastguard Worker if (host_toolchain != default_toolchain_name) { 753*c8dee2aaSAndroid Build Coastguard Worker skslc_path += "$host_toolchain/" 754*c8dee2aaSAndroid Build Coastguard Worker } 755*c8dee2aaSAndroid Build Coastguard Worker skslc_path += "skslc" 756*c8dee2aaSAndroid Build Coastguard Worker if (host_os == "win") { 757*c8dee2aaSAndroid Build Coastguard Worker skslc_path += ".exe" 758*c8dee2aaSAndroid Build Coastguard Worker } 759*c8dee2aaSAndroid Build Coastguard Worker 760*c8dee2aaSAndroid Build Coastguard Worker # Build the test files using skslc. 761*c8dee2aaSAndroid Build Coastguard Worker import("gn/sksl_tests.gni") 762*c8dee2aaSAndroid Build Coastguard Worker template("compile_sksl") { 763*c8dee2aaSAndroid Build Coastguard Worker # Compile the passed-in `sources` into `outputs` using skslc, with the given language/settings. 764*c8dee2aaSAndroid Build Coastguard Worker action("compile_sksl_${target_name}") { 765*c8dee2aaSAndroid Build Coastguard Worker script = "gn/compile_sksl_tests.py" 766*c8dee2aaSAndroid Build Coastguard Worker deps = [ 767*c8dee2aaSAndroid Build Coastguard Worker ":sksl_modules", 768*c8dee2aaSAndroid Build Coastguard Worker ":skslc(//gn/toolchain:$host_toolchain)", 769*c8dee2aaSAndroid Build Coastguard Worker ] 770*c8dee2aaSAndroid Build Coastguard Worker sources = [] 771*c8dee2aaSAndroid Build Coastguard Worker outputs = [] 772*c8dee2aaSAndroid Build Coastguard Worker response_file_contents = [] 773*c8dee2aaSAndroid Build Coastguard Worker args = [ 774*c8dee2aaSAndroid Build Coastguard Worker # Comments are the variable name in compile_sksl_tests.py 775*c8dee2aaSAndroid Build Coastguard Worker rebase_path(skslc_path), # skslc 776*c8dee2aaSAndroid Build Coastguard Worker invoker.lang, # lang 777*c8dee2aaSAndroid Build Coastguard Worker invoker.settings, # settings 778*c8dee2aaSAndroid Build Coastguard Worker rebase_path("resources"), # input_root_dir 779*c8dee2aaSAndroid Build Coastguard Worker rebase_path("tests"), # output_root_dir 780*c8dee2aaSAndroid Build Coastguard Worker "{{response_file_name}}", # input_file 781*c8dee2aaSAndroid Build Coastguard Worker ] 782*c8dee2aaSAndroid Build Coastguard Worker 783*c8dee2aaSAndroid Build Coastguard Worker testsDir = get_path_info("tests/sksl/", "abspath") 784*c8dee2aaSAndroid Build Coastguard Worker resourcesDir = get_path_info("resources/sksl/", "abspath") 785*c8dee2aaSAndroid Build Coastguard Worker 786*c8dee2aaSAndroid Build Coastguard Worker foreach(partialPath, invoker.sources) { 787*c8dee2aaSAndroid Build Coastguard Worker dst = testsDir + partialPath 788*c8dee2aaSAndroid Build Coastguard Worker src = resourcesDir + partialPath 789*c8dee2aaSAndroid Build Coastguard Worker 790*c8dee2aaSAndroid Build Coastguard Worker dir = get_path_info(dst, "dir") 791*c8dee2aaSAndroid Build Coastguard Worker name = get_path_info(dst, "name") 792*c8dee2aaSAndroid Build Coastguard Worker ext = get_path_info(dst, "extension") 793*c8dee2aaSAndroid Build Coastguard Worker response_file_contents += [ rebase_path(src) ] 794*c8dee2aaSAndroid Build Coastguard Worker sources += [ src ] 795*c8dee2aaSAndroid Build Coastguard Worker 796*c8dee2aaSAndroid Build Coastguard Worker foreach(outExtension, invoker.outExtensions) { 797*c8dee2aaSAndroid Build Coastguard Worker # SPIR-V uses separate extensions for .vert and .compute shaders. 798*c8dee2aaSAndroid Build Coastguard Worker if (ext == "vert" && outExtension == ".asm.frag") { 799*c8dee2aaSAndroid Build Coastguard Worker outExtension = ".asm.vert" 800*c8dee2aaSAndroid Build Coastguard Worker } else if (ext == "compute" && outExtension == ".asm.frag") { 801*c8dee2aaSAndroid Build Coastguard Worker outExtension = ".asm.comp" 802*c8dee2aaSAndroid Build Coastguard Worker } 803*c8dee2aaSAndroid Build Coastguard Worker outputs += 804*c8dee2aaSAndroid Build Coastguard Worker [ target_out_dir + "/" + 805*c8dee2aaSAndroid Build Coastguard Worker rebase_path(dir + "/" + name + outExtension, target_out_dir) ] 806*c8dee2aaSAndroid Build Coastguard Worker } 807*c8dee2aaSAndroid Build Coastguard Worker } 808*c8dee2aaSAndroid Build Coastguard Worker } 809*c8dee2aaSAndroid Build Coastguard Worker } 810*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("glsl_tests") { 811*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_glsl_tests_sources + sksl_glsl_settings_tests_sources 812*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".glsl" ] 813*c8dee2aaSAndroid Build Coastguard Worker lang = "--glsl" 814*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 815*c8dee2aaSAndroid Build Coastguard Worker } 816*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("glsl_nosettings_tests") { 817*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_glsl_settings_tests_sources 818*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ "StandaloneSettings.glsl" ] 819*c8dee2aaSAndroid Build Coastguard Worker lang = "--glsl" 820*c8dee2aaSAndroid Build Coastguard Worker settings = "--nosettings" 821*c8dee2aaSAndroid Build Coastguard Worker } 822*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("metal_tests") { 823*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_metal_tests_sources 824*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".metal" ] 825*c8dee2aaSAndroid Build Coastguard Worker lang = "--metal" 826*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 827*c8dee2aaSAndroid Build Coastguard Worker } 828*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("hlsl_tests") { 829*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_hlsl_tests_sources 830*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".hlsl" ] 831*c8dee2aaSAndroid Build Coastguard Worker lang = "--hlsl" 832*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 833*c8dee2aaSAndroid Build Coastguard Worker } 834*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("skrp_tests") { 835*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_skrp_tests_sources 836*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".skrp" ] 837*c8dee2aaSAndroid Build Coastguard Worker lang = "--skrp" 838*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 839*c8dee2aaSAndroid Build Coastguard Worker } 840*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("stage_tests") { 841*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_stage_tests_sources 842*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".stage" ] 843*c8dee2aaSAndroid Build Coastguard Worker lang = "--stage" 844*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 845*c8dee2aaSAndroid Build Coastguard Worker } 846*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("spirv_tests") { 847*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_spirv_tests_sources 848*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".asm.frag" ] 849*c8dee2aaSAndroid Build Coastguard Worker lang = "--spirv" 850*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 851*c8dee2aaSAndroid Build Coastguard Worker } 852*c8dee2aaSAndroid Build Coastguard Worker compile_sksl("wgsl_tests") { 853*c8dee2aaSAndroid Build Coastguard Worker sources = sksl_wgsl_tests_sources 854*c8dee2aaSAndroid Build Coastguard Worker outExtensions = [ ".wgsl" ] 855*c8dee2aaSAndroid Build Coastguard Worker lang = "--wgsl" 856*c8dee2aaSAndroid Build Coastguard Worker settings = "--settings" 857*c8dee2aaSAndroid Build Coastguard Worker } 858*c8dee2aaSAndroid Build Coastguard Worker} else { 859*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_glsl_tests") { 860*c8dee2aaSAndroid Build Coastguard Worker } 861*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_glsl_nosettings_tests") { 862*c8dee2aaSAndroid Build Coastguard Worker } 863*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_metal_tests") { 864*c8dee2aaSAndroid Build Coastguard Worker } 865*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_hlsl_tests") { 866*c8dee2aaSAndroid Build Coastguard Worker } 867*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_skrp_tests") { 868*c8dee2aaSAndroid Build Coastguard Worker } 869*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_spirv_tests") { 870*c8dee2aaSAndroid Build Coastguard Worker } 871*c8dee2aaSAndroid Build Coastguard Worker group("compile_sksl_wgsl_tests") { 872*c8dee2aaSAndroid Build Coastguard Worker } 873*c8dee2aaSAndroid Build Coastguard Worker} 874*c8dee2aaSAndroid Build Coastguard Worker 875*c8dee2aaSAndroid Build Coastguard Workergroup("compile_all_sksl_tests") { 876*c8dee2aaSAndroid Build Coastguard Worker deps = [ 877*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_glsl_nosettings_tests", 878*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_glsl_tests", 879*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_hlsl_tests", 880*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_metal_tests", 881*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_skrp_tests", 882*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_spirv_tests", 883*c8dee2aaSAndroid Build Coastguard Worker ":compile_sksl_wgsl_tests", 884*c8dee2aaSAndroid Build Coastguard Worker ] 885*c8dee2aaSAndroid Build Coastguard Worker} 886*c8dee2aaSAndroid Build Coastguard Worker 887*c8dee2aaSAndroid Build Coastguard Workeroptional("gpu_shared") { 888*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_ganesh || skia_enable_graphite 889*c8dee2aaSAndroid Build Coastguard Worker 890*c8dee2aaSAndroid Build Coastguard Worker configs = [] 891*c8dee2aaSAndroid Build Coastguard Worker deps = [] 892*c8dee2aaSAndroid Build Coastguard Worker libs = [] 893*c8dee2aaSAndroid Build Coastguard Worker public_defines = [] 894*c8dee2aaSAndroid Build Coastguard Worker public_deps = [] 895*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 896*c8dee2aaSAndroid Build Coastguard Worker 897*c8dee2aaSAndroid Build Coastguard Worker sources = skia_shared_gpu_sources 898*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_pipeline_sources 899*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_codegen_sources 900*c8dee2aaSAndroid Build Coastguard Worker 901*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 902*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_DAWN" ] 903*c8dee2aaSAndroid Build Coastguard Worker 904*c8dee2aaSAndroid Build Coastguard Worker # When building for WASM, the WebGPU headers are provided by Emscripten. For native builds we 905*c8dee2aaSAndroid Build Coastguard Worker # have to depend on Dawn directly. 906*c8dee2aaSAndroid Build Coastguard Worker if (!skia_use_webgpu) { 907*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ 908*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/dawn/include/dawn:cpp_headers", 909*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/dawn/src/dawn:cpp", 910*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/dawn/src/dawn:proc", 911*c8dee2aaSAndroid Build Coastguard Worker ] 912*c8dee2aaSAndroid Build Coastguard Worker 913*c8dee2aaSAndroid Build Coastguard Worker if (dawn_enable_d3d12 || dawn_enable_d3d11 || dawn_enable_desktop_gl || 914*c8dee2aaSAndroid Build Coastguard Worker dawn_enable_metal || dawn_enable_opengles || dawn_enable_vulkan) { 915*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ "//third_party/externals/dawn/src/dawn/native" ] 916*c8dee2aaSAndroid Build Coastguard Worker } 917*c8dee2aaSAndroid Build Coastguard Worker if (dawn_enable_d3d12) { 918*c8dee2aaSAndroid Build Coastguard Worker libs += [ 919*c8dee2aaSAndroid Build Coastguard Worker "d3d12.lib", 920*c8dee2aaSAndroid Build Coastguard Worker "dxgi.lib", 921*c8dee2aaSAndroid Build Coastguard Worker "d3dcompiler.lib", 922*c8dee2aaSAndroid Build Coastguard Worker ] 923*c8dee2aaSAndroid Build Coastguard Worker } else if (dawn_enable_metal) { 924*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Metal.framework" ] 925*c8dee2aaSAndroid Build Coastguard Worker } 926*c8dee2aaSAndroid Build Coastguard Worker } 927*c8dee2aaSAndroid Build Coastguard Worker } 928*c8dee2aaSAndroid Build Coastguard Worker 929*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_direct3d) { 930*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_hlsl_sources 931*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/spirv-cross:spirv_cross" ] 932*c8dee2aaSAndroid Build Coastguard Worker } 933*c8dee2aaSAndroid Build Coastguard Worker 934*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 935*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_VULKAN" ] 936*c8dee2aaSAndroid Build Coastguard Worker sources += skia_shared_vk_sources 937*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":use_skia_vulkan_headers" ] 938*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_vulkan_debug_layers) { 939*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_ENABLE_VK_LAYERS" ] 940*c8dee2aaSAndroid Build Coastguard Worker } 941*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vma) { 942*c8dee2aaSAndroid Build Coastguard Worker sources += skia_vma_sources 943*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ "src/gpu/vk/vulkanmemoryallocator" ] 944*c8dee2aaSAndroid Build Coastguard Worker } 945*c8dee2aaSAndroid Build Coastguard Worker } 946*c8dee2aaSAndroid Build Coastguard Worker 947*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 948*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_METAL" ] 949*c8dee2aaSAndroid Build Coastguard Worker sources += skia_shared_mtl_sources 950*c8dee2aaSAndroid Build Coastguard Worker } 951*c8dee2aaSAndroid Build Coastguard Worker 952*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 953*c8dee2aaSAndroid Build Coastguard Worker sources += skia_shared_android_sources 954*c8dee2aaSAndroid Build Coastguard Worker } 955*c8dee2aaSAndroid Build Coastguard Worker} 956*c8dee2aaSAndroid Build Coastguard Worker 957*c8dee2aaSAndroid Build Coastguard Workeroptional("gpu") { 958*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_ganesh 959*c8dee2aaSAndroid Build Coastguard Worker deps = [ 960*c8dee2aaSAndroid Build Coastguard Worker ":gpu_shared", 961*c8dee2aaSAndroid Build Coastguard Worker ":minify_sksl", 962*c8dee2aaSAndroid Build Coastguard Worker ":run_sksllex", 963*c8dee2aaSAndroid Build Coastguard Worker ] 964*c8dee2aaSAndroid Build Coastguard Worker if (skia_generate_workarounds) { 965*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":workaround_list" ] 966*c8dee2aaSAndroid Build Coastguard Worker } 967*c8dee2aaSAndroid Build Coastguard Worker configs = [] 968*c8dee2aaSAndroid Build Coastguard Worker public_defines = [] 969*c8dee2aaSAndroid Build Coastguard Worker public_configs = [] 970*c8dee2aaSAndroid Build Coastguard Worker public_deps = [] 971*c8dee2aaSAndroid Build Coastguard Worker 972*c8dee2aaSAndroid Build Coastguard Worker public = skia_gpu_public 973*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ganesh_private 974*c8dee2aaSAndroid Build Coastguard Worker 975*c8dee2aaSAndroid Build Coastguard Worker libs = [] 976*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 977*c8dee2aaSAndroid Build Coastguard Worker 978*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 979*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_android_private 980*c8dee2aaSAndroid Build Coastguard Worker 981*c8dee2aaSAndroid Build Coastguard Worker # this lib is required to link against AHardwareBuffer 982*c8dee2aaSAndroid Build Coastguard Worker if (defined(ndk_api) && ndk_api >= 26) { 983*c8dee2aaSAndroid Build Coastguard Worker libs += [ "android" ] 984*c8dee2aaSAndroid Build Coastguard Worker } 985*c8dee2aaSAndroid Build Coastguard Worker } 986*c8dee2aaSAndroid Build Coastguard Worker 987*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 988*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_GL" ] 989*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 990*c8dee2aaSAndroid Build Coastguard Worker sources += [ 991*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", 992*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", 993*c8dee2aaSAndroid Build Coastguard Worker ] 994*c8dee2aaSAndroid Build Coastguard Worker sources += skia_android_gl_sources 995*c8dee2aaSAndroid Build Coastguard Worker 996*c8dee2aaSAndroid Build Coastguard Worker # this lib is required to link against AHardwareBuffer 997*c8dee2aaSAndroid Build Coastguard Worker if (defined(ndk_api) && ndk_api >= 26) { 998*c8dee2aaSAndroid Build Coastguard Worker libs += [ "android" ] 999*c8dee2aaSAndroid Build Coastguard Worker } 1000*c8dee2aaSAndroid Build Coastguard Worker } else if (skia_use_egl) { 1001*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_epoxy_egl) { 1002*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.cpp" ] 1003*c8dee2aaSAndroid Build Coastguard Worker libs += [ "epoxy" ] 1004*c8dee2aaSAndroid Build Coastguard Worker } else { 1005*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1006*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", 1007*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", 1008*c8dee2aaSAndroid Build Coastguard Worker ] 1009*c8dee2aaSAndroid Build Coastguard Worker libs += [ "EGL" ] 1010*c8dee2aaSAndroid Build Coastguard Worker } 1011*c8dee2aaSAndroid Build Coastguard Worker } else if (skia_use_webgl) { 1012*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp" ] 1013*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux && skia_use_x11) { 1014*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1015*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp", 1016*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp", 1017*c8dee2aaSAndroid Build Coastguard Worker ] 1018*c8dee2aaSAndroid Build Coastguard Worker libs += [ "GL" ] 1019*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 1020*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp" ] 1021*c8dee2aaSAndroid Build Coastguard Worker } else if (is_ios) { 1022*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp" ] 1023*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win && !skia_enable_winuwp) { 1024*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1025*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp", 1026*c8dee2aaSAndroid Build Coastguard Worker "src/gpu/ganesh/gl/win/GrGLMakeWinInterface.cpp", 1027*c8dee2aaSAndroid Build Coastguard Worker ] 1028*c8dee2aaSAndroid Build Coastguard Worker if (target_cpu != "arm64") { 1029*c8dee2aaSAndroid Build Coastguard Worker libs += [ "OpenGL32.lib" ] 1030*c8dee2aaSAndroid Build Coastguard Worker } 1031*c8dee2aaSAndroid Build Coastguard Worker } else { 1032*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] 1033*c8dee2aaSAndroid Build Coastguard Worker } 1034*c8dee2aaSAndroid Build Coastguard Worker public += skia_gpu_gl_public 1035*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_gl_private 1036*c8dee2aaSAndroid Build Coastguard Worker } 1037*c8dee2aaSAndroid Build Coastguard Worker 1038*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 1039*c8dee2aaSAndroid Build Coastguard Worker public += skia_gpu_vk_public 1040*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_vk_private 1041*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":use_skia_vulkan_headers" ] 1042*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia) { 1043*c8dee2aaSAndroid Build Coastguard Worker if (using_fuchsia_sdk) { 1044*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ "$fuchsia_sdk_root/pkg:vulkan" ] 1045*c8dee2aaSAndroid Build Coastguard Worker } else { 1046*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ "//src/graphics/lib/vulkan" ] 1047*c8dee2aaSAndroid Build Coastguard Worker } 1048*c8dee2aaSAndroid Build Coastguard Worker } 1049*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 1050*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_vk_android_private 1051*c8dee2aaSAndroid Build Coastguard Worker } 1052*c8dee2aaSAndroid Build Coastguard Worker } 1053*c8dee2aaSAndroid Build Coastguard Worker 1054*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_direct3d) { 1055*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_DIRECT3D" ] 1056*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/d3d12allocator" ] 1057*c8dee2aaSAndroid Build Coastguard Worker sources += skia_direct3d_sources 1058*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_direct3d_debug_layer) { 1059*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_ENABLE_D3D_DEBUG_LAYER" ] 1060*c8dee2aaSAndroid Build Coastguard Worker } 1061*c8dee2aaSAndroid Build Coastguard Worker libs += [ 1062*c8dee2aaSAndroid Build Coastguard Worker "d3d12.lib", 1063*c8dee2aaSAndroid Build Coastguard Worker "dxgi.lib", 1064*c8dee2aaSAndroid Build Coastguard Worker "d3dcompiler.lib", 1065*c8dee2aaSAndroid Build Coastguard Worker ] 1066*c8dee2aaSAndroid Build Coastguard Worker } 1067*c8dee2aaSAndroid Build Coastguard Worker 1068*c8dee2aaSAndroid Build Coastguard Worker cflags_objcc = [] 1069*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 1070*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_METAL" ] 1071*c8dee2aaSAndroid Build Coastguard Worker public += skia_gpu_metal_public 1072*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_metal_private 1073*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_metal_cpp 1074*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_metal_debug_info) { 1075*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_ENABLE_MTL_DEBUG_INFO" ] 1076*c8dee2aaSAndroid Build Coastguard Worker } 1077*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Metal.framework" ] 1078*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Foundation.framework" ] 1079*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 1080*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "UIKit.framework" ] 1081*c8dee2aaSAndroid Build Coastguard Worker } 1082*c8dee2aaSAndroid Build Coastguard Worker cflags_objcc += [ "-fobjc-arc" ] 1083*c8dee2aaSAndroid Build Coastguard Worker } 1084*c8dee2aaSAndroid Build Coastguard Worker 1085*c8dee2aaSAndroid Build Coastguard Worker if (is_debug || skia_build_for_debugger) { 1086*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_ENABLE_DUMP_GPU" ] 1087*c8dee2aaSAndroid Build Coastguard Worker } 1088*c8dee2aaSAndroid Build Coastguard Worker} 1089*c8dee2aaSAndroid Build Coastguard Worker 1090*c8dee2aaSAndroid Build Coastguard Workeroptional("vello") { 1091*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_vello_shaders 1092*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_ENABLE_VELLO_SHADERS" ] 1093*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ "//third_party/vello" ] 1094*c8dee2aaSAndroid Build Coastguard Worker} 1095*c8dee2aaSAndroid Build Coastguard Worker 1096*c8dee2aaSAndroid Build Coastguard Workeroptional("heif") { 1097*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libheif 1098*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_HAS_HEIF_LIBRARY" ] 1099*c8dee2aaSAndroid Build Coastguard Worker 1100*c8dee2aaSAndroid Build Coastguard Worker # This HEIF decoding functionality is a part of the Android Framework. 1101*c8dee2aaSAndroid Build Coastguard Worker # https://android.googlesource.com/platform/frameworks/av/+/master/media/libheif/include/HeifDecoderAPI.h 1102*c8dee2aaSAndroid Build Coastguard Worker # There isn't a way to compile that library outside of it, so we just link against 1103*c8dee2aaSAndroid Build Coastguard Worker # the library. This feature is not supported on other platforms (and we haven't 1104*c8dee2aaSAndroid Build Coastguard Worker # yet tried something like https://github.com/strukturag/libheif/tree/master/libheif). 1105*c8dee2aaSAndroid Build Coastguard Worker # The dependency for Android is set in gn_to_bp.py. 1106*c8dee2aaSAndroid Build Coastguard Worker deps = [] 1107*c8dee2aaSAndroid Build Coastguard Worker 1108*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkHeifCodec.cpp" ] 1109*c8dee2aaSAndroid Build Coastguard Worker} 1110*c8dee2aaSAndroid Build Coastguard Worker 1111*c8dee2aaSAndroid Build Coastguard Workeroptional("avif") { 1112*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libavif 1113*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_AVIF" ] 1114*c8dee2aaSAndroid Build Coastguard Worker 1115*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libavif" ] 1116*c8dee2aaSAndroid Build Coastguard Worker 1117*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkAvifCodec.cpp" ] 1118*c8dee2aaSAndroid Build Coastguard Worker} 1119*c8dee2aaSAndroid Build Coastguard Worker 1120*c8dee2aaSAndroid Build Coastguard Workeroptional("crabbyavif") { 1121*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_crabbyavif 1122*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_AVIF" ] 1123*c8dee2aaSAndroid Build Coastguard Worker 1124*c8dee2aaSAndroid Build Coastguard Worker # AVIF decoding is provided by CrabbyAvif (a Rust library). Since skia's 1125*c8dee2aaSAndroid Build Coastguard Worker # standalone builds do not support Rust, it is only being enabled when 1126*c8dee2aaSAndroid Build Coastguard Worker # building for the Android framework. 1127*c8dee2aaSAndroid Build Coastguard Worker # The dependency for Android is set in gn_to_bp.py 1128*c8dee2aaSAndroid Build Coastguard Worker deps = [] 1129*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkCrabbyAvifCodec.cpp" ] 1130*c8dee2aaSAndroid Build Coastguard Worker} 1131*c8dee2aaSAndroid Build Coastguard Worker 1132*c8dee2aaSAndroid Build Coastguard Workeroptional("jpeg_mpf") { 1133*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_jpeg_gainmaps && 1134*c8dee2aaSAndroid Build Coastguard Worker (skia_use_libjpeg_turbo_encode || skia_use_libjpeg_turbo_decode) 1135*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1136*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegMultiPicture.cpp", 1137*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegSegmentScan.cpp", 1138*c8dee2aaSAndroid Build Coastguard Worker ] 1139*c8dee2aaSAndroid Build Coastguard Worker} 1140*c8dee2aaSAndroid Build Coastguard Worker 1141*c8dee2aaSAndroid Build Coastguard Workeroptional("jpeg_decode") { 1142*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libjpeg_turbo_decode 1143*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_JPEG" ] 1144*c8dee2aaSAndroid Build Coastguard Worker 1145*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libjpeg-turbo:libjpeg" ] 1146*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1147*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegCodec.cpp", 1148*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegDecoderMgr.cpp", 1149*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegMetadataDecoderImpl.cpp", 1150*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegSourceMgr.cpp", 1151*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkJpegUtility.cpp", 1152*c8dee2aaSAndroid Build Coastguard Worker ] 1153*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_jpeg_gainmaps) { 1154*c8dee2aaSAndroid Build Coastguard Worker # Theoretically this doesn't need to be public, but this allows gn_to_bp.py to see it, and seems 1155*c8dee2aaSAndroid Build Coastguard Worker # to align with other codec support. See b/265939413 1156*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_CODEC_DECODES_JPEG_GAINMAPS" ] 1157*c8dee2aaSAndroid Build Coastguard Worker deps += [ 1158*c8dee2aaSAndroid Build Coastguard Worker ":jpeg_mpf", 1159*c8dee2aaSAndroid Build Coastguard Worker ":xml", 1160*c8dee2aaSAndroid Build Coastguard Worker ] 1161*c8dee2aaSAndroid Build Coastguard Worker sources += skia_codec_jpeg_xmp 1162*c8dee2aaSAndroid Build Coastguard Worker } 1163*c8dee2aaSAndroid Build Coastguard Worker} 1164*c8dee2aaSAndroid Build Coastguard Worker 1165*c8dee2aaSAndroid Build Coastguard Workeroptional("jpeg_encode") { 1166*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libjpeg_turbo_encode && !skia_use_ndk_images 1167*c8dee2aaSAndroid Build Coastguard Worker 1168*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libjpeg-turbo:libjpeg" ] 1169*c8dee2aaSAndroid Build Coastguard Worker public = skia_encode_jpeg_public 1170*c8dee2aaSAndroid Build Coastguard Worker sources = skia_encode_jpeg_srcs 1171*c8dee2aaSAndroid Build Coastguard Worker 1172*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_jpeg_gainmaps) { 1173*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":jpeg_mpf" ] 1174*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/encode/SkJpegGainmapEncoder.cpp" ] 1175*c8dee2aaSAndroid Build Coastguard Worker } 1176*c8dee2aaSAndroid Build Coastguard Worker} 1177*c8dee2aaSAndroid Build Coastguard Worker 1178*c8dee2aaSAndroid Build Coastguard Workeroptional("jpegxl_decode") { 1179*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libjxl_decode 1180*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_JPEGXL" ] 1181*c8dee2aaSAndroid Build Coastguard Worker 1182*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libjxl" ] 1183*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkJpegxlCodec.cpp" ] 1184*c8dee2aaSAndroid Build Coastguard Worker} 1185*c8dee2aaSAndroid Build Coastguard Worker 1186*c8dee2aaSAndroid Build Coastguard Workeroptional("ndk_images") { 1187*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_ndk_images 1188*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_ENABLE_NDK_IMAGES" ] 1189*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1190*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkImageEncoder_NDK.cpp", 1191*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkImageGeneratorNDK.cpp", 1192*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkNDKConversions.cpp", 1193*c8dee2aaSAndroid Build Coastguard Worker ] 1194*c8dee2aaSAndroid Build Coastguard Worker libs = [ "jnigraphics" ] 1195*c8dee2aaSAndroid Build Coastguard Worker} 1196*c8dee2aaSAndroid Build Coastguard Worker 1197*c8dee2aaSAndroid Build Coastguard Workeroptional("graphite") { 1198*c8dee2aaSAndroid Build Coastguard Worker configs = [] 1199*c8dee2aaSAndroid Build Coastguard Worker libs = [] 1200*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 1201*c8dee2aaSAndroid Build Coastguard Worker public_defines = [] 1202*c8dee2aaSAndroid Build Coastguard Worker 1203*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_enable_graphite 1204*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1205*c8dee2aaSAndroid Build Coastguard Worker ":gpu_shared", 1206*c8dee2aaSAndroid Build Coastguard Worker ":vello", 1207*c8dee2aaSAndroid Build Coastguard Worker ] 1208*c8dee2aaSAndroid Build Coastguard Worker public = skia_graphite_public 1209*c8dee2aaSAndroid Build Coastguard Worker sources = skia_graphite_sources 1210*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_graphite_modules_sources 1211*c8dee2aaSAndroid Build Coastguard Worker 1212*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 1213*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_android_private 1214*c8dee2aaSAndroid Build Coastguard Worker } 1215*c8dee2aaSAndroid Build Coastguard Worker 1216*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_vello_shaders) { 1217*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_vello_sources 1218*c8dee2aaSAndroid Build Coastguard Worker } 1219*c8dee2aaSAndroid Build Coastguard Worker 1220*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 1221*c8dee2aaSAndroid Build Coastguard Worker public += skia_graphite_dawn_public 1222*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_dawn_sources 1223*c8dee2aaSAndroid Build Coastguard Worker } 1224*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 1225*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_METAL" ] 1226*c8dee2aaSAndroid Build Coastguard Worker public += skia_graphite_mtl_public 1227*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_mtl_sources 1228*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_metal_debug_info) { 1229*c8dee2aaSAndroid Build Coastguard Worker public_defines += [ "SK_ENABLE_MTL_DEBUG_INFO" ] 1230*c8dee2aaSAndroid Build Coastguard Worker } 1231*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Metal.framework" ] 1232*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Foundation.framework" ] 1233*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 1234*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "UIKit.framework" ] 1235*c8dee2aaSAndroid Build Coastguard Worker } 1236*c8dee2aaSAndroid Build Coastguard Worker } 1237*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 1238*c8dee2aaSAndroid Build Coastguard Worker public += skia_graphite_vk_public 1239*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_vk_sources 1240*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":use_skia_vulkan_headers" ] 1241*c8dee2aaSAndroid Build Coastguard Worker } 1242*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_precompile) { 1243*c8dee2aaSAndroid Build Coastguard Worker public += skia_graphite_precompile_public 1244*c8dee2aaSAndroid Build Coastguard Worker sources += skia_graphite_precompile_sources 1245*c8dee2aaSAndroid Build Coastguard Worker } 1246*c8dee2aaSAndroid Build Coastguard Worker} 1247*c8dee2aaSAndroid Build Coastguard Worker 1248*c8dee2aaSAndroid Build Coastguard Workeroptional("pdf") { 1249*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_zlib && skia_enable_pdf && skia_use_libjpeg_turbo_decode && 1250*c8dee2aaSAndroid Build Coastguard Worker skia_use_libjpeg_turbo_encode 1251*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_SUPPORT_PDF" ] 1252*c8dee2aaSAndroid Build Coastguard Worker 1253*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/zlib" ] 1254*c8dee2aaSAndroid Build Coastguard Worker public = skia_pdf_public 1255*c8dee2aaSAndroid Build Coastguard Worker sources = skia_pdf_sources 1256*c8dee2aaSAndroid Build Coastguard Worker sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ] 1257*c8dee2aaSAndroid Build Coastguard Worker if (skia_pdf_subset_harfbuzz) { 1258*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/harfbuzz" ] 1259*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_PDF_USE_HARFBUZZ_SUBSET" ] 1260*c8dee2aaSAndroid Build Coastguard Worker } 1261*c8dee2aaSAndroid Build Coastguard Worker deps += [ 1262*c8dee2aaSAndroid Build Coastguard Worker ":jpeg_decode", 1263*c8dee2aaSAndroid Build Coastguard Worker ":jpeg_encode", 1264*c8dee2aaSAndroid Build Coastguard Worker ] 1265*c8dee2aaSAndroid Build Coastguard Worker} 1266*c8dee2aaSAndroid Build Coastguard Worker 1267*c8dee2aaSAndroid Build Coastguard Workeroptional("xps") { 1268*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_xps && is_win 1269*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_SUPPORT_XPS" ] 1270*c8dee2aaSAndroid Build Coastguard Worker public = skia_xps_public 1271*c8dee2aaSAndroid Build Coastguard Worker sources = skia_xps_sources 1272*c8dee2aaSAndroid Build Coastguard Worker} 1273*c8dee2aaSAndroid Build Coastguard Worker 1274*c8dee2aaSAndroid Build Coastguard Workeroptional("png_decode") { 1275*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libpng_decode 1276*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ 1277*c8dee2aaSAndroid Build Coastguard Worker "SK_CODEC_DECODES_ICO", 1278*c8dee2aaSAndroid Build Coastguard Worker "SK_CODEC_DECODES_PNG", 1279*c8dee2aaSAndroid Build Coastguard Worker ] 1280*c8dee2aaSAndroid Build Coastguard Worker 1281*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libpng" ] 1282*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkIcoCodec.cpp" ] + skia_codec_png 1283*c8dee2aaSAndroid Build Coastguard Worker} 1284*c8dee2aaSAndroid Build Coastguard Worker 1285*c8dee2aaSAndroid Build Coastguard Workeroptional("png_encode") { 1286*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libpng_encode && !skia_use_ndk_images 1287*c8dee2aaSAndroid Build Coastguard Worker public = skia_encode_png_public 1288*c8dee2aaSAndroid Build Coastguard Worker 1289*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libpng" ] 1290*c8dee2aaSAndroid Build Coastguard Worker sources = skia_encode_png_srcs 1291*c8dee2aaSAndroid Build Coastguard Worker} 1292*c8dee2aaSAndroid Build Coastguard Worker 1293*c8dee2aaSAndroid Build Coastguard Workeroptional("raw") { 1294*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_dng_sdk && skia_use_libjpeg_turbo_decode && skia_use_piex 1295*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_RAW" ] 1296*c8dee2aaSAndroid Build Coastguard Worker 1297*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1298*c8dee2aaSAndroid Build Coastguard Worker "//third_party/dng_sdk", 1299*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libjpeg-turbo:libjpeg", 1300*c8dee2aaSAndroid Build Coastguard Worker "//third_party/piex", 1301*c8dee2aaSAndroid Build Coastguard Worker ] 1302*c8dee2aaSAndroid Build Coastguard Worker 1303*c8dee2aaSAndroid Build Coastguard Worker # SkRawCodec catches any exceptions thrown by dng_sdk, insulating the rest of 1304*c8dee2aaSAndroid Build Coastguard Worker # Skia. 1305*c8dee2aaSAndroid Build Coastguard Worker configs = [ "gn/portable:add_exceptions" ] 1306*c8dee2aaSAndroid Build Coastguard Worker 1307*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkRawCodec.cpp" ] 1308*c8dee2aaSAndroid Build Coastguard Worker} 1309*c8dee2aaSAndroid Build Coastguard Worker 1310*c8dee2aaSAndroid Build Coastguard Workeroptional("typeface_freetype") { 1311*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_freetype 1312*c8dee2aaSAndroid Build Coastguard Worker 1313*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_TYPEFACE_FACTORY_FREETYPE" ] 1314*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/freetype2" ] 1315*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_freetype_sources 1316*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/FontScanner_FreeTypeTest.cpp" ] 1317*c8dee2aaSAndroid Build Coastguard Worker} 1318*c8dee2aaSAndroid Build Coastguard Worker 1319*c8dee2aaSAndroid Build Coastguard Workerbazel_args = [] 1320*c8dee2aaSAndroid Build Coastguard Workerif (is_mac && target_cpu == "arm64") { 1321*c8dee2aaSAndroid Build Coastguard Worker # TODO: Normally the target toolchain would be specified with `--platforms` but that doesn't 1322*c8dee2aaSAndroid Build Coastguard Worker # work. When building and running on an arm64 mac, setting `--host_platform` seems to do the 1323*c8dee2aaSAndroid Build Coastguard Worker # right thing but may not be the right build configuration in the long run. 1324*c8dee2aaSAndroid Build Coastguard Worker bazel_args += [ "--host_platform=//bazel/platform:mac_arm64_hermetic" ] 1325*c8dee2aaSAndroid Build Coastguard Worker} 1326*c8dee2aaSAndroid Build Coastguard Workerif (is_debug) { 1327*c8dee2aaSAndroid Build Coastguard Worker bazel_args += [ "--compilation_mode=dbg" ] 1328*c8dee2aaSAndroid Build Coastguard Worker} else { 1329*c8dee2aaSAndroid Build Coastguard Worker bazel_args += [ "--compilation_mode=opt" ] 1330*c8dee2aaSAndroid Build Coastguard Worker} 1331*c8dee2aaSAndroid Build Coastguard Worker 1332*c8dee2aaSAndroid Build Coastguard Workerif (skia_use_fontations) { 1333*c8dee2aaSAndroid Build Coastguard Worker action("fontations_rust_side_bazel_build") { 1334*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 1335*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1336*c8dee2aaSAndroid Build Coastguard Worker "src/ports/fontations/BUILD.bazel", 1337*c8dee2aaSAndroid Build Coastguard Worker "src/ports/fontations/src/ffi.rs", 1338*c8dee2aaSAndroid Build Coastguard Worker ] 1339*c8dee2aaSAndroid Build Coastguard Worker outputs = [ "$root_out_dir/libbridge_rust_side.a" ] 1340*c8dee2aaSAndroid Build Coastguard Worker args = 1341*c8dee2aaSAndroid Build Coastguard Worker [ 1342*c8dee2aaSAndroid Build Coastguard Worker "//src/ports/fontations:bridge_rust_side", 1343*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/src/ports/fontations/libbridge_rust_side.a", 1344*c8dee2aaSAndroid Build Coastguard Worker root_build_dir), 1345*c8dee2aaSAndroid Build Coastguard Worker ] + bazel_args 1346*c8dee2aaSAndroid Build Coastguard Worker } 1347*c8dee2aaSAndroid Build Coastguard Worker 1348*c8dee2aaSAndroid Build Coastguard Worker # We only use Bazel to get the generated `.cc` and `.h` file and then compile 1349*c8dee2aaSAndroid Build Coastguard Worker # them on GN/ninja side using `skia_source_set` below. This ensures that the 1350*c8dee2aaSAndroid Build Coastguard Worker # same C++ stdlib and compiler is used throughout the build (in some scenarios 1351*c8dee2aaSAndroid Build Coastguard Worker # Bazel may end up using different ones). 1352*c8dee2aaSAndroid Build Coastguard Worker action("fontations_ffi_bazel_build") { 1353*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 1354*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1355*c8dee2aaSAndroid Build Coastguard Worker "src/ports/fontations/BUILD.bazel", 1356*c8dee2aaSAndroid Build Coastguard Worker "src/ports/fontations/src/ffi.rs", 1357*c8dee2aaSAndroid Build Coastguard Worker ] 1358*c8dee2aaSAndroid Build Coastguard Worker outputs = [ 1359*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/src/ports/fontations/src/ffi.rs.h", 1360*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/src/ports/fontations/src/ffi.rs.cc", 1361*c8dee2aaSAndroid Build Coastguard Worker ] 1362*c8dee2aaSAndroid Build Coastguard Worker args = [ 1363*c8dee2aaSAndroid Build Coastguard Worker "//src/ports/fontations:fontations_ffi", 1364*c8dee2aaSAndroid Build Coastguard Worker 1365*c8dee2aaSAndroid Build Coastguard Worker # we want the header to not simply be copied into the output directory, 1366*c8dee2aaSAndroid Build Coastguard Worker # but in the same path as the Bazel build uses. 1367*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/src/ports/fontations/src/ffi.rs.h", 1368*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=src/ports/fontations/src/ffi.rs.h", 1369*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/src/ports/fontations/src/ffi.rs.cc", 1370*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + 1371*c8dee2aaSAndroid Build Coastguard Worker "=src/ports/fontations/src/ffi.rs.cc", 1372*c8dee2aaSAndroid Build Coastguard Worker ] + bazel_args 1373*c8dee2aaSAndroid Build Coastguard Worker } 1374*c8dee2aaSAndroid Build Coastguard Worker config("fontations_ffi_public_config") { 1375*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ 1376*c8dee2aaSAndroid Build Coastguard Worker # This is where `src/ports/fontations/src/ffi.rs.h` was put by Bazel 1377*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir", 1378*c8dee2aaSAndroid Build Coastguard Worker ] 1379*c8dee2aaSAndroid Build Coastguard Worker } 1380*c8dee2aaSAndroid Build Coastguard Worker config("fontations_ffi_private_config") { 1381*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ 1382*c8dee2aaSAndroid Build Coastguard Worker # This entry is needed so that `ffi.rs.cc` can resolve 1383*c8dee2aaSAndroid Build Coastguard Worker # `#include "src/ports/fontations/src/ffi.rs.h"` 1384*c8dee2aaSAndroid Build Coastguard Worker ".", 1385*c8dee2aaSAndroid Build Coastguard Worker ] 1386*c8dee2aaSAndroid Build Coastguard Worker } 1387*c8dee2aaSAndroid Build Coastguard Worker skia_source_set("fontations_ffi") { 1388*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1389*c8dee2aaSAndroid Build Coastguard Worker ":fontations_ffi_bazel_build", 1390*c8dee2aaSAndroid Build Coastguard Worker ":fontations_rust_side_bazel_build", 1391*c8dee2aaSAndroid Build Coastguard Worker ] 1392*c8dee2aaSAndroid Build Coastguard Worker public = [ "${root_out_dir}/src/ports/fontations/src/ffi.rs.h" ] 1393*c8dee2aaSAndroid Build Coastguard Worker sources = [ "${root_out_dir}/src/ports/fontations/src/ffi.rs.cc" ] 1394*c8dee2aaSAndroid Build Coastguard Worker libs = [ "$root_out_dir/libbridge_rust_side.a" ] 1395*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":fontations_ffi_public_config" ] 1396*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":fontations_ffi_private_config" ] 1397*c8dee2aaSAndroid Build Coastguard Worker } 1398*c8dee2aaSAndroid Build Coastguard Worker} 1399*c8dee2aaSAndroid Build Coastguard Worker 1400*c8dee2aaSAndroid Build Coastguard Workeroptional("typeface_fontations") { 1401*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_TYPEFACE_FACTORY_FONTATIONS" ] 1402*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_fontations 1403*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":fontations_ffi" ] 1404*c8dee2aaSAndroid Build Coastguard Worker sources = skia_ports_typeface_fontations_sources 1405*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ 1406*c8dee2aaSAndroid Build Coastguard Worker "tests/FontationsTest.cpp", 1407*c8dee2aaSAndroid Build Coastguard Worker "tests/FontationsFtCompTest.cpp", 1408*c8dee2aaSAndroid Build Coastguard Worker "tests/FontScanner_FontationsTest.cpp", 1409*c8dee2aaSAndroid Build Coastguard Worker ] 1410*c8dee2aaSAndroid Build Coastguard Worker} 1411*c8dee2aaSAndroid Build Coastguard Worker 1412*c8dee2aaSAndroid Build Coastguard Workerif (skia_use_rust_png_decode || skia_use_rust_png_encode) { 1413*c8dee2aaSAndroid Build Coastguard Worker # We only use Bazel to get the generated `.cc` and `.h` file and then compile 1414*c8dee2aaSAndroid Build Coastguard Worker # them on GN/ninja side using `skia_source_set` below. This ensures that the 1415*c8dee2aaSAndroid Build Coastguard Worker # same C++ stdlib and compiler is used throughout the build (in some scenarios 1416*c8dee2aaSAndroid Build Coastguard Worker # Bazel may end up using different ones). 1417*c8dee2aaSAndroid Build Coastguard Worker action("rust_png_ffi_bazel_build") { 1418*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 1419*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1420*c8dee2aaSAndroid Build Coastguard Worker "experimental/rust_png/ffi/BUILD.bazel", 1421*c8dee2aaSAndroid Build Coastguard Worker "experimental/rust_png/ffi/FFI.h", 1422*c8dee2aaSAndroid Build Coastguard Worker "experimental/rust_png/ffi/FFI.rs", 1423*c8dee2aaSAndroid Build Coastguard Worker ] 1424*c8dee2aaSAndroid Build Coastguard Worker outputs = [ 1425*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/librust_png_ffi_rs.a", 1426*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/experimental/rust_png/ffi/FFI.rs.h", 1427*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/experimental/rust_png/ffi/FFI.rs.cc", 1428*c8dee2aaSAndroid Build Coastguard Worker ] 1429*c8dee2aaSAndroid Build Coastguard Worker args = 1430*c8dee2aaSAndroid Build Coastguard Worker [ 1431*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_png/ffi:*", 1432*c8dee2aaSAndroid Build Coastguard Worker 1433*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/experimental/rust_png/ffi/libffi_rs.a", 1434*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=librust_png_ffi_rs.a", 1435*c8dee2aaSAndroid Build Coastguard Worker 1436*c8dee2aaSAndroid Build Coastguard Worker # we want the `cxx`-generated headers to not simply be copied into 1437*c8dee2aaSAndroid Build Coastguard Worker # the output directory, but in the same path as the Bazel build 1438*c8dee2aaSAndroid Build Coastguard Worker # uses. 1439*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/experimental/rust_png/ffi/FFI.rs.h", 1440*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=experimental/rust_png/ffi/FFI.rs.h", 1441*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/experimental/rust_png/ffi/FFI.rs.cc", 1442*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=experimental/rust_png/ffi/FFI.rs.cc", 1443*c8dee2aaSAndroid Build Coastguard Worker ] + bazel_args 1444*c8dee2aaSAndroid Build Coastguard Worker } 1445*c8dee2aaSAndroid Build Coastguard Worker action("rust_png_cxx_core_bazel_build") { 1446*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 1447*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1448*c8dee2aaSAndroid Build Coastguard Worker "WORKSPACE.bazel", 1449*c8dee2aaSAndroid Build Coastguard Worker "bazel/external/cxx/BUILD.bazel", 1450*c8dee2aaSAndroid Build Coastguard Worker "bazel/external/cxx/BUILD.bazel.skia", 1451*c8dee2aaSAndroid Build Coastguard Worker ] 1452*c8dee2aaSAndroid Build Coastguard Worker outputs = [ 1453*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/librust_png_cxx_core_lib.a", 1454*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/third_party/rust/cxx/v1/cxx.h", 1455*c8dee2aaSAndroid Build Coastguard Worker ] 1456*c8dee2aaSAndroid Build Coastguard Worker args = [ 1457*c8dee2aaSAndroid Build Coastguard Worker "@cxx//:core-lib", 1458*c8dee2aaSAndroid Build Coastguard Worker 1459*c8dee2aaSAndroid Build Coastguard Worker rebase_path("//bazel-bin/external/cxx/libcore-lib.a", 1460*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=librust_png_cxx_core_lib.a", 1461*c8dee2aaSAndroid Build Coastguard Worker 1462*c8dee2aaSAndroid Build Coastguard Worker # we want the `cxx.h` header to not simply be copied into the 1463*c8dee2aaSAndroid Build Coastguard Worker # output directory, but in the same path as the Bazel build uses. 1464*c8dee2aaSAndroid Build Coastguard Worker rebase_path( 1465*c8dee2aaSAndroid Build Coastguard Worker "//bazel-bin/external/cxx/_virtual_includes/core-lib/third_party/rust/cxx/v1/cxx.h", 1466*c8dee2aaSAndroid Build Coastguard Worker root_build_dir) + "=third_party/rust/cxx/v1/cxx.h", 1467*c8dee2aaSAndroid Build Coastguard Worker ] + bazel_args 1468*c8dee2aaSAndroid Build Coastguard Worker } 1469*c8dee2aaSAndroid Build Coastguard Worker config("rust_png_cxx_bridge_public_config") { 1470*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ 1471*c8dee2aaSAndroid Build Coastguard Worker # This is where `experimental/rust_png/ffi/FFI.rs.h` and 1472*c8dee2aaSAndroid Build Coastguard Worker # `third_party/rust/cxx/v1/cxx.h` were put by Bazel 1473*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir", 1474*c8dee2aaSAndroid Build Coastguard Worker ] 1475*c8dee2aaSAndroid Build Coastguard Worker } 1476*c8dee2aaSAndroid Build Coastguard Worker config("rust_png_cxx_bridge_private_config") { 1477*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ 1478*c8dee2aaSAndroid Build Coastguard Worker # This entry is needed so that `FFI.rs.cc` can resolve 1479*c8dee2aaSAndroid Build Coastguard Worker # `#include "experimental/rust_png/ffi/FFI.h"` 1480*c8dee2aaSAndroid Build Coastguard Worker ".", 1481*c8dee2aaSAndroid Build Coastguard Worker ] 1482*c8dee2aaSAndroid Build Coastguard Worker } 1483*c8dee2aaSAndroid Build Coastguard Worker skia_source_set("rust_png_cxx_bridge") { 1484*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":rust_png_ffi_bazel_build" ] 1485*c8dee2aaSAndroid Build Coastguard Worker public = [ "${root_out_dir}/experimental/rust_png/ffi/FFI.rs.h" ] 1486*c8dee2aaSAndroid Build Coastguard Worker sources = [ "${root_out_dir}/experimental/rust_png/ffi/FFI.rs.cc" ] 1487*c8dee2aaSAndroid Build Coastguard Worker libs = [ "$root_out_dir/librust_png_ffi_rs.a" ] 1488*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":rust_png_cxx_bridge_public_config" ] 1489*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":rust_png_cxx_bridge_private_config" ] 1490*c8dee2aaSAndroid Build Coastguard Worker } 1491*c8dee2aaSAndroid Build Coastguard Worker} 1492*c8dee2aaSAndroid Build Coastguard Worker 1493*c8dee2aaSAndroid Build Coastguard Workeroptional("rust_png_decode") { 1494*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_USE_RUST_PNG_DECODE" ] 1495*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_rust_png_decode 1496*c8dee2aaSAndroid Build Coastguard Worker public = skia_codec_rust_png_public # From `gn/codec.gni` 1497*c8dee2aaSAndroid Build Coastguard Worker sources = skia_codec_rust_png # From `gn/codec.gni` 1498*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/SkPngRustDecoderTest.cpp" ] 1499*c8dee2aaSAndroid Build Coastguard Worker 1500*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1501*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_cxx_bridge", 1502*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_cxx_core_bazel_build", 1503*c8dee2aaSAndroid Build Coastguard Worker ] 1504*c8dee2aaSAndroid Build Coastguard Worker libs = [ "$root_out_dir/librust_png_cxx_core_lib.a" ] 1505*c8dee2aaSAndroid Build Coastguard Worker} 1506*c8dee2aaSAndroid Build Coastguard Worker 1507*c8dee2aaSAndroid Build Coastguard Workeroptional("rust_png_encode") { 1508*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_USE_RUST_PNG_ENCODE" ] 1509*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_rust_png_encode 1510*c8dee2aaSAndroid Build Coastguard Worker public = skia_encode_rust_png_public # From `gn/core.gni` 1511*c8dee2aaSAndroid Build Coastguard Worker sources = 1512*c8dee2aaSAndroid Build Coastguard Worker skia_encode_rust_png_srcs + skia_encode_png_base # From `gn/core.gni` 1513*c8dee2aaSAndroid Build Coastguard Worker sources_for_tests = [ "tests/SkPngRustEncoderTest.cpp" ] 1514*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1515*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_cxx_bridge", 1516*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_cxx_core_bazel_build", 1517*c8dee2aaSAndroid Build Coastguard Worker ] 1518*c8dee2aaSAndroid Build Coastguard Worker libs = [ "$root_out_dir/librust_png_cxx_core_lib.a" ] 1519*c8dee2aaSAndroid Build Coastguard Worker} 1520*c8dee2aaSAndroid Build Coastguard Worker 1521*c8dee2aaSAndroid Build Coastguard Workeroptional("webp_decode") { 1522*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libwebp_decode 1523*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_CODEC_DECODES_WEBP" ] 1524*c8dee2aaSAndroid Build Coastguard Worker 1525*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libwebp" ] 1526*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkWebpCodec.cpp" ] 1527*c8dee2aaSAndroid Build Coastguard Worker} 1528*c8dee2aaSAndroid Build Coastguard Worker 1529*c8dee2aaSAndroid Build Coastguard Workeroptional("webp_encode") { 1530*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_libwebp_encode && !skia_use_ndk_images 1531*c8dee2aaSAndroid Build Coastguard Worker public = skia_encode_webp_public 1532*c8dee2aaSAndroid Build Coastguard Worker 1533*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libwebp" ] 1534*c8dee2aaSAndroid Build Coastguard Worker sources = skia_encode_webp_srcs 1535*c8dee2aaSAndroid Build Coastguard Worker} 1536*c8dee2aaSAndroid Build Coastguard Worker 1537*c8dee2aaSAndroid Build Coastguard Workeroptional("wuffs") { 1538*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_wuffs 1539*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ 1540*c8dee2aaSAndroid Build Coastguard Worker "SK_HAS_WUFFS_LIBRARY", 1541*c8dee2aaSAndroid Build Coastguard Worker "SK_CODEC_DECODES_GIF", 1542*c8dee2aaSAndroid Build Coastguard Worker ] 1543*c8dee2aaSAndroid Build Coastguard Worker 1544*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/wuffs" ] 1545*c8dee2aaSAndroid Build Coastguard Worker sources = [ "src/codec/SkWuffsCodec.cpp" ] 1546*c8dee2aaSAndroid Build Coastguard Worker} 1547*c8dee2aaSAndroid Build Coastguard Worker 1548*c8dee2aaSAndroid Build Coastguard Workeroptional("xml") { 1549*c8dee2aaSAndroid Build Coastguard Worker enabled = skia_use_expat || skia_use_jpeg_gainmaps 1550*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "SK_XML" ] 1551*c8dee2aaSAndroid Build Coastguard Worker 1552*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/expat" ] 1553*c8dee2aaSAndroid Build Coastguard Worker sources = skia_xml_sources + skia_codec_xmp + [ 1554*c8dee2aaSAndroid Build Coastguard Worker "src/svg/SkSVGCanvas.cpp", 1555*c8dee2aaSAndroid Build Coastguard Worker "src/svg/SkSVGDevice.cpp", 1556*c8dee2aaSAndroid Build Coastguard Worker ] 1557*c8dee2aaSAndroid Build Coastguard Worker} 1558*c8dee2aaSAndroid Build Coastguard Worker 1559*c8dee2aaSAndroid Build Coastguard Workerif (skia_enable_ganesh && skia_generate_workarounds) { 1560*c8dee2aaSAndroid Build Coastguard Worker action("workaround_list") { 1561*c8dee2aaSAndroid Build Coastguard Worker script = "tools/build_workaround_header.py" 1562*c8dee2aaSAndroid Build Coastguard Worker 1563*c8dee2aaSAndroid Build Coastguard Worker inputs = [ "src/gpu/gpu_workaround_list.txt" ] 1564*c8dee2aaSAndroid Build Coastguard Worker 1565*c8dee2aaSAndroid Build Coastguard Worker # GN insists its outputs should go somewhere underneath root_out_dir, so we trick it with a 1566*c8dee2aaSAndroid Build Coastguard Worker # path that starts with root_out_dir and then uses ".." to back up into the src dir. 1567*c8dee2aaSAndroid Build Coastguard Worker output_file = 1568*c8dee2aaSAndroid Build Coastguard Worker rebase_path("include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h", 1569*c8dee2aaSAndroid Build Coastguard Worker root_out_dir) 1570*c8dee2aaSAndroid Build Coastguard Worker 1571*c8dee2aaSAndroid Build Coastguard Worker outputs = [ "$root_out_dir/$output_file" ] 1572*c8dee2aaSAndroid Build Coastguard Worker args = [ 1573*c8dee2aaSAndroid Build Coastguard Worker "--output-file", 1574*c8dee2aaSAndroid Build Coastguard Worker "$output_file", 1575*c8dee2aaSAndroid Build Coastguard Worker ] 1576*c8dee2aaSAndroid Build Coastguard Worker 1577*c8dee2aaSAndroid Build Coastguard Worker foreach(file, inputs) { 1578*c8dee2aaSAndroid Build Coastguard Worker args += [ rebase_path(file, root_build_dir) ] 1579*c8dee2aaSAndroid Build Coastguard Worker } 1580*c8dee2aaSAndroid Build Coastguard Worker } 1581*c8dee2aaSAndroid Build Coastguard Worker} 1582*c8dee2aaSAndroid Build Coastguard Worker 1583*c8dee2aaSAndroid Build Coastguard Workerimport("gn/codec.gni") 1584*c8dee2aaSAndroid Build Coastguard Worker 1585*c8dee2aaSAndroid Build Coastguard Workerskia_component("skia") { 1586*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":skia_public" ] 1587*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 1588*c8dee2aaSAndroid Build Coastguard Worker 1589*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ 1590*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_FontConfigInterface", 1591*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_android", 1592*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_android_ndk", 1593*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom_directory", 1594*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom_embedded", 1595*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_custom_empty", 1596*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_fontations_empty", 1597*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_fontconfig", 1598*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_fuchsia", 1599*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_mac_ct", 1600*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_win", 1601*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_win_gdi", 1602*c8dee2aaSAndroid Build Coastguard Worker ":gpu", 1603*c8dee2aaSAndroid Build Coastguard Worker ":graphite", 1604*c8dee2aaSAndroid Build Coastguard Worker ":jpeg_encode", 1605*c8dee2aaSAndroid Build Coastguard Worker ":pdf", 1606*c8dee2aaSAndroid Build Coastguard Worker ":png_encode", 1607*c8dee2aaSAndroid Build Coastguard Worker ":webp_encode", 1608*c8dee2aaSAndroid Build Coastguard Worker ":xps", 1609*c8dee2aaSAndroid Build Coastguard Worker ] 1610*c8dee2aaSAndroid Build Coastguard Worker 1611*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1612*c8dee2aaSAndroid Build Coastguard Worker ":android_utils", 1613*c8dee2aaSAndroid Build Coastguard Worker ":avif", 1614*c8dee2aaSAndroid Build Coastguard Worker ":crabbyavif", 1615*c8dee2aaSAndroid Build Coastguard Worker ":heif", 1616*c8dee2aaSAndroid Build Coastguard Worker ":hsw", 1617*c8dee2aaSAndroid Build Coastguard Worker ":jpeg_decode", 1618*c8dee2aaSAndroid Build Coastguard Worker ":jpegxl_decode", 1619*c8dee2aaSAndroid Build Coastguard Worker ":lasx", 1620*c8dee2aaSAndroid Build Coastguard Worker ":minify_sksl", 1621*c8dee2aaSAndroid Build Coastguard Worker ":ndk_images", 1622*c8dee2aaSAndroid Build Coastguard Worker ":png_decode", 1623*c8dee2aaSAndroid Build Coastguard Worker ":raw", 1624*c8dee2aaSAndroid Build Coastguard Worker ":skx", 1625*c8dee2aaSAndroid Build Coastguard Worker ":typeface_fontations", 1626*c8dee2aaSAndroid Build Coastguard Worker ":vello", 1627*c8dee2aaSAndroid Build Coastguard Worker ":webp_decode", 1628*c8dee2aaSAndroid Build Coastguard Worker ":wuffs", 1629*c8dee2aaSAndroid Build Coastguard Worker ":xml", 1630*c8dee2aaSAndroid Build Coastguard Worker "modules/skcms", 1631*c8dee2aaSAndroid Build Coastguard Worker ] 1632*c8dee2aaSAndroid Build Coastguard Worker 1633*c8dee2aaSAndroid Build Coastguard Worker public = skia_core_public 1634*c8dee2aaSAndroid Build Coastguard Worker public += skia_codec_public 1635*c8dee2aaSAndroid Build Coastguard Worker public += skia_utils_public 1636*c8dee2aaSAndroid Build Coastguard Worker public += skia_effects_public 1637*c8dee2aaSAndroid Build Coastguard Worker public += skia_effects_imagefilter_public 1638*c8dee2aaSAndroid Build Coastguard Worker 1639*c8dee2aaSAndroid Build Coastguard Worker sources = [] 1640*c8dee2aaSAndroid Build Coastguard Worker sources += skia_core_sources 1641*c8dee2aaSAndroid Build Coastguard Worker sources += skia_utils_private 1642*c8dee2aaSAndroid Build Coastguard Worker sources += skia_utils_chromium 1643*c8dee2aaSAndroid Build Coastguard Worker sources += skia_effects_sources 1644*c8dee2aaSAndroid Build Coastguard Worker sources += skia_colorfilters_sources 1645*c8dee2aaSAndroid Build Coastguard Worker sources += skia_effects_imagefilter_sources 1646*c8dee2aaSAndroid Build Coastguard Worker sources += skia_codec_shared 1647*c8dee2aaSAndroid Build Coastguard Worker sources += skia_codec_decode_bmp 1648*c8dee2aaSAndroid Build Coastguard Worker sources += skia_encode_srcs 1649*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_core_sources 1650*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_core_module_sources 1651*c8dee2aaSAndroid Build Coastguard Worker sources += skia_sksl_tracing_sources 1652*c8dee2aaSAndroid Build Coastguard Worker sources += skia_ports_sources 1653*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1654*c8dee2aaSAndroid Build Coastguard Worker "src/android/SkAndroidFrameworkUtils.cpp", 1655*c8dee2aaSAndroid Build Coastguard Worker "src/android/SkAnimatedImage.cpp", 1656*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkAndroidCodec.cpp", 1657*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkAndroidCodecAdapter.cpp", 1658*c8dee2aaSAndroid Build Coastguard Worker "src/codec/SkSampledCodec.cpp", 1659*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkDiscardableMemory_none.cpp", 1660*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkMemory_malloc.cpp", 1661*c8dee2aaSAndroid Build Coastguard Worker "src/sfnt/SkOTTable_name.cpp", 1662*c8dee2aaSAndroid Build Coastguard Worker "src/sfnt/SkOTUtils.cpp", 1663*c8dee2aaSAndroid Build Coastguard Worker ] 1664*c8dee2aaSAndroid Build Coastguard Worker 1665*c8dee2aaSAndroid Build Coastguard Worker defines = [] 1666*c8dee2aaSAndroid Build Coastguard Worker libs = [] 1667*c8dee2aaSAndroid Build Coastguard Worker 1668*c8dee2aaSAndroid Build Coastguard Worker if (skia_build_for_debugger) { 1669*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_BUILD_FOR_DEBUGGER" ] 1670*c8dee2aaSAndroid Build Coastguard Worker } 1671*c8dee2aaSAndroid Build Coastguard Worker 1672*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_no_jpeg_encode) { 1673*c8dee2aaSAndroid Build Coastguard Worker sources += skia_no_encode_jpeg_srcs 1674*c8dee2aaSAndroid Build Coastguard Worker } 1675*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_no_png_encode) { 1676*c8dee2aaSAndroid Build Coastguard Worker sources += skia_no_encode_png_srcs 1677*c8dee2aaSAndroid Build Coastguard Worker } 1678*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_no_webp_encode) { 1679*c8dee2aaSAndroid Build Coastguard Worker sources += skia_no_encode_webp_srcs 1680*c8dee2aaSAndroid Build Coastguard Worker } 1681*c8dee2aaSAndroid Build Coastguard Worker 1682*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 1683*c8dee2aaSAndroid Build Coastguard Worker sources += skia_ports_windows_sources + [ 1684*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkDebug_win.cpp", 1685*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkImageGeneratorWIC.cpp", 1686*c8dee2aaSAndroid Build Coastguard Worker ] 1687*c8dee2aaSAndroid Build Coastguard Worker libs += [ 1688*c8dee2aaSAndroid Build Coastguard Worker "Ole32.lib", 1689*c8dee2aaSAndroid Build Coastguard Worker "OleAut32.lib", 1690*c8dee2aaSAndroid Build Coastguard Worker ] 1691*c8dee2aaSAndroid Build Coastguard Worker 1692*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_winuwp) { 1693*c8dee2aaSAndroid Build Coastguard Worker libs += [ 1694*c8dee2aaSAndroid Build Coastguard Worker "FontSub.lib", 1695*c8dee2aaSAndroid Build Coastguard Worker "User32.lib", 1696*c8dee2aaSAndroid Build Coastguard Worker "Usp10.lib", 1697*c8dee2aaSAndroid Build Coastguard Worker ] 1698*c8dee2aaSAndroid Build Coastguard Worker } 1699*c8dee2aaSAndroid Build Coastguard Worker } else { 1700*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkOSFile_posix.cpp" ] 1701*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 1702*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkOSFile_ios.h" ] 1703*c8dee2aaSAndroid Build Coastguard Worker } 1704*c8dee2aaSAndroid Build Coastguard Worker libs += [ "dl" ] 1705*c8dee2aaSAndroid Build Coastguard Worker } 1706*c8dee2aaSAndroid Build Coastguard Worker 1707*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 1708*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/expat" ] 1709*c8dee2aaSAndroid Build Coastguard Worker if (defined(ndk) && ndk != "") { 1710*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/cpu-features" ] 1711*c8dee2aaSAndroid Build Coastguard Worker } 1712*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkDebug_android.cpp" ] 1713*c8dee2aaSAndroid Build Coastguard Worker libs += [ 1714*c8dee2aaSAndroid Build Coastguard Worker "EGL", 1715*c8dee2aaSAndroid Build Coastguard Worker "GLESv2", 1716*c8dee2aaSAndroid Build Coastguard Worker "log", 1717*c8dee2aaSAndroid Build Coastguard Worker ] 1718*c8dee2aaSAndroid Build Coastguard Worker } 1719*c8dee2aaSAndroid Build Coastguard Worker 1720*c8dee2aaSAndroid Build Coastguard Worker if (is_linux || is_wasm) { 1721*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkDebug_stdio.cpp" ] 1722*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_egl) { 1723*c8dee2aaSAndroid Build Coastguard Worker libs += [ "GLESv2" ] 1724*c8dee2aaSAndroid Build Coastguard Worker } 1725*c8dee2aaSAndroid Build Coastguard Worker } 1726*c8dee2aaSAndroid Build Coastguard Worker 1727*c8dee2aaSAndroid Build Coastguard Worker if (is_mac) { 1728*c8dee2aaSAndroid Build Coastguard Worker public += [ "include/ports/SkCFObject.h" ] 1729*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1730*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkDebug_stdio.cpp", 1731*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkImageGeneratorCG.cpp", 1732*c8dee2aaSAndroid Build Coastguard Worker ] 1733*c8dee2aaSAndroid Build Coastguard Worker frameworks = [ 1734*c8dee2aaSAndroid Build Coastguard Worker "ApplicationServices.framework", 1735*c8dee2aaSAndroid Build Coastguard Worker "OpenGL.framework", 1736*c8dee2aaSAndroid Build Coastguard Worker ] 1737*c8dee2aaSAndroid Build Coastguard Worker } 1738*c8dee2aaSAndroid Build Coastguard Worker 1739*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 1740*c8dee2aaSAndroid Build Coastguard Worker public += [ "include/ports/SkCFObject.h" ] 1741*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1742*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkDebug_stdio.cpp", 1743*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkImageGeneratorCG.cpp", 1744*c8dee2aaSAndroid Build Coastguard Worker ] 1745*c8dee2aaSAndroid Build Coastguard Worker frameworks = [ 1746*c8dee2aaSAndroid Build Coastguard Worker "CoreFoundation.framework", 1747*c8dee2aaSAndroid Build Coastguard Worker "ImageIO.framework", 1748*c8dee2aaSAndroid Build Coastguard Worker "MobileCoreServices.framework", 1749*c8dee2aaSAndroid Build Coastguard Worker ] 1750*c8dee2aaSAndroid Build Coastguard Worker } 1751*c8dee2aaSAndroid Build Coastguard Worker 1752*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia) { 1753*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/ports/SkDebug_stdio.cpp" ] 1754*c8dee2aaSAndroid Build Coastguard Worker } 1755*c8dee2aaSAndroid Build Coastguard Worker 1756*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_spirv_validation) { 1757*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/externals/spirv-tools:spvtools_val" ] 1758*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_SPIRV_VALIDATION" ] 1759*c8dee2aaSAndroid Build Coastguard Worker } 1760*c8dee2aaSAndroid Build Coastguard Worker 1761*c8dee2aaSAndroid Build Coastguard Worker if (skia_include_multiframe_procs) { 1762*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/SkSharingProc.cpp" ] 1763*c8dee2aaSAndroid Build Coastguard Worker } 1764*c8dee2aaSAndroid Build Coastguard Worker 1765*c8dee2aaSAndroid Build Coastguard Worker # Overrides TRACE_EVENT0..2 macros (etc) to map to Perfetto's tracing macros. 1766*c8dee2aaSAndroid Build Coastguard Worker # Currently only supported in Android framework. 1767*c8dee2aaSAndroid Build Coastguard Worker if (skia_android_framework_use_perfetto) { 1768*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ANDROID_FRAMEWORK_USE_PERFETTO" ] 1769*c8dee2aaSAndroid Build Coastguard Worker sources += [ "src/android/SkAndroidFrameworkPerfettoStaticStorage.cpp" ] 1770*c8dee2aaSAndroid Build Coastguard Worker } 1771*c8dee2aaSAndroid Build Coastguard Worker 1772*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_ganesh && !skia_enable_graphite) { 1773*c8dee2aaSAndroid Build Coastguard Worker sources += skia_no_slug_srcs 1774*c8dee2aaSAndroid Build Coastguard Worker } 1775*c8dee2aaSAndroid Build Coastguard Worker} 1776*c8dee2aaSAndroid Build Coastguard Worker 1777*c8dee2aaSAndroid Build Coastguard Worker# DebugCanvas used in experimental/wasm-skp-debugger 1778*c8dee2aaSAndroid Build Coastguard Workerif (is_wasm) { 1779*c8dee2aaSAndroid Build Coastguard Worker skia_static_library("debugcanvas") { 1780*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":skia_public" ] 1781*c8dee2aaSAndroid Build Coastguard Worker 1782*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1783*c8dee2aaSAndroid Build Coastguard Worker "tools/SkSharingProc.cpp", 1784*c8dee2aaSAndroid Build Coastguard Worker "tools/UrlDataManager.cpp", 1785*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugCanvas.cpp", 1786*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugLayerManager.cpp", 1787*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DrawCommand.cpp", 1788*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/JsonWriteBuffer.cpp", 1789*c8dee2aaSAndroid Build Coastguard Worker ] 1790*c8dee2aaSAndroid Build Coastguard Worker } 1791*c8dee2aaSAndroid Build Coastguard Worker} 1792*c8dee2aaSAndroid Build Coastguard Worker 1793*c8dee2aaSAndroid Build Coastguard Workerskia_static_library("pathkit") { 1794*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 1795*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":skia_public" ] 1796*c8dee2aaSAndroid Build Coastguard Worker configs = skia_library_configs 1797*c8dee2aaSAndroid Build Coastguard Worker 1798*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":hsw" ] 1799*c8dee2aaSAndroid Build Coastguard Worker 1800*c8dee2aaSAndroid Build Coastguard Worker sources = [] 1801*c8dee2aaSAndroid Build Coastguard Worker sources += skia_pathops_sources 1802*c8dee2aaSAndroid Build Coastguard Worker sources += skia_pathops_public 1803*c8dee2aaSAndroid Build Coastguard Worker sources += [ 1804*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkArenaAlloc.cpp", 1805*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkBezierCurves.cpp", 1806*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkContainers.cpp", 1807*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkCubics.cpp", 1808*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkFloatingPoint.cpp", 1809*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkMalloc.cpp", 1810*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkMathPriv.cpp", 1811*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkQuads.cpp", 1812*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkSafeMath.cpp", 1813*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkSemaphore.cpp", 1814*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkTDArray.cpp", 1815*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkThreadID.cpp", 1816*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkUTF.cpp", 1817*c8dee2aaSAndroid Build Coastguard Worker "src/base/SkUtils.cpp", 1818*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkAnalyticEdge.cpp", 1819*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkContourMeasure.cpp", 1820*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkCubicMap.cpp", 1821*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkEdge.cpp", 1822*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkEdgeBuilder.cpp", 1823*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkEdgeClipper.cpp", 1824*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkGeometry.cpp", 1825*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkIDChangeListener.cpp", 1826*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkLineClipper.cpp", 1827*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkMallocPixelRef.cpp", 1828*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkMatrix.cpp", 1829*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkOpts.cpp", 1830*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPaint.cpp", 1831*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPaintPriv.cpp", 1832*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPath.cpp", 1833*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPathBuilder.cpp", 1834*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPathEffect.cpp", 1835*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPathMeasure.cpp", 1836*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPathRef.cpp", 1837*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPathUtils.cpp", 1838*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkPoint.cpp", 1839*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkRRect.cpp", 1840*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkReadBuffer.cpp", 1841*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkRect.cpp", 1842*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkStream.cpp", 1843*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkString.cpp", 1844*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkStringUtils.cpp", 1845*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkStroke.cpp", 1846*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkStrokeRec.cpp", 1847*c8dee2aaSAndroid Build Coastguard Worker "src/core/SkStrokerPriv.cpp", 1848*c8dee2aaSAndroid Build Coastguard Worker "src/effects/SkDashPathEffect.cpp", 1849*c8dee2aaSAndroid Build Coastguard Worker "src/effects/SkTrimPathEffect.cpp", 1850*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkDebug_stdio.cpp", 1851*c8dee2aaSAndroid Build Coastguard Worker "src/ports/SkMemory_malloc.cpp", 1852*c8dee2aaSAndroid Build Coastguard Worker "src/utils/SkDashPath.cpp", 1853*c8dee2aaSAndroid Build Coastguard Worker "src/utils/SkParse.cpp", 1854*c8dee2aaSAndroid Build Coastguard Worker "src/utils/SkParsePath.cpp", 1855*c8dee2aaSAndroid Build Coastguard Worker ] 1856*c8dee2aaSAndroid Build Coastguard Worker} 1857*c8dee2aaSAndroid Build Coastguard Worker 1858*c8dee2aaSAndroid Build Coastguard Workergroup("modules") { 1859*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1860*c8dee2aaSAndroid Build Coastguard Worker "modules/bentleyottmann", 1861*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 1862*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 1863*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 1864*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 1865*c8dee2aaSAndroid Build Coastguard Worker ] 1866*c8dee2aaSAndroid Build Coastguard Worker 1867*c8dee2aaSAndroid Build Coastguard Worker if (is_wasm) { 1868*c8dee2aaSAndroid Build Coastguard Worker deps += [ "modules/canvaskit" ] 1869*c8dee2aaSAndroid Build Coastguard Worker } 1870*c8dee2aaSAndroid Build Coastguard Worker} 1871*c8dee2aaSAndroid Build Coastguard Worker 1872*c8dee2aaSAndroid Build Coastguard Workerconfig("use_skia_vulkan_headers") { 1873*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "include/third_party/vulkan" ] 1874*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_USE_INTERNAL_VULKAN_HEADERS" ] 1875*c8dee2aaSAndroid Build Coastguard Worker} 1876*c8dee2aaSAndroid Build Coastguard Worker 1877*c8dee2aaSAndroid Build Coastguard Workerconfig("vulkan_memory_allocator") { 1878*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "$skia_vulkan_memory_allocator_dir/include" ] 1879*c8dee2aaSAndroid Build Coastguard Worker} 1880*c8dee2aaSAndroid Build Coastguard Worker 1881*c8dee2aaSAndroid Build Coastguard Worker# Targets guarded by skia_enable_tools may use //third_party freely. 1882*c8dee2aaSAndroid Build Coastguard Workerif (skia_enable_tools) { 1883*c8dee2aaSAndroid Build Coastguard Worker skia_public_includes = [ 1884*c8dee2aaSAndroid Build Coastguard Worker "client_utils/android", 1885*c8dee2aaSAndroid Build Coastguard Worker "include/android", 1886*c8dee2aaSAndroid Build Coastguard Worker "include/codec", 1887*c8dee2aaSAndroid Build Coastguard Worker "include/config", 1888*c8dee2aaSAndroid Build Coastguard Worker "include/core", 1889*c8dee2aaSAndroid Build Coastguard Worker "include/docs", 1890*c8dee2aaSAndroid Build Coastguard Worker "include/effects", 1891*c8dee2aaSAndroid Build Coastguard Worker "include/encode", 1892*c8dee2aaSAndroid Build Coastguard Worker "include/gpu", 1893*c8dee2aaSAndroid Build Coastguard Worker "include/pathops", 1894*c8dee2aaSAndroid Build Coastguard Worker "include/ports", 1895*c8dee2aaSAndroid Build Coastguard Worker "include/svg", 1896*c8dee2aaSAndroid Build Coastguard Worker "include/utils", 1897*c8dee2aaSAndroid Build Coastguard Worker "include/utils/mac", 1898*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie/include", 1899*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph/include", 1900*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper/include", 1901*c8dee2aaSAndroid Build Coastguard Worker "modules/svg/include", 1902*c8dee2aaSAndroid Build Coastguard Worker ] 1903*c8dee2aaSAndroid Build Coastguard Worker 1904*c8dee2aaSAndroid Build Coastguard Worker # Used by gn_to_bp.py to list our public include dirs. 1905*c8dee2aaSAndroid Build Coastguard Worker skia_source_set("public") { 1906*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":skia_public" ] 1907*c8dee2aaSAndroid Build Coastguard Worker include_dirs = skia_public_includes 1908*c8dee2aaSAndroid Build Coastguard Worker } 1909*c8dee2aaSAndroid Build Coastguard Worker 1910*c8dee2aaSAndroid Build Coastguard Worker config("skia.h_config") { 1911*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "$target_gen_dir" ] 1912*c8dee2aaSAndroid Build Coastguard Worker } 1913*c8dee2aaSAndroid Build Coastguard Worker action("skia.h") { 1914*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":skia.h_config" ] 1915*c8dee2aaSAndroid Build Coastguard Worker skia_h = "$target_gen_dir/skia.h" 1916*c8dee2aaSAndroid Build Coastguard Worker script = "gn/find_headers.py" 1917*c8dee2aaSAndroid Build Coastguard Worker 1918*c8dee2aaSAndroid Build Coastguard Worker args = [ rebase_path("//bin/gn") ] + [ rebase_path("//") ] + 1919*c8dee2aaSAndroid Build Coastguard Worker [ rebase_path(skia_h, root_build_dir) ] + 1920*c8dee2aaSAndroid Build Coastguard Worker rebase_path(skia_public_includes) 1921*c8dee2aaSAndroid Build Coastguard Worker depfile = "$skia_h.deps" 1922*c8dee2aaSAndroid Build Coastguard Worker outputs = [ skia_h ] 1923*c8dee2aaSAndroid Build Coastguard Worker } 1924*c8dee2aaSAndroid Build Coastguard Worker 1925*c8dee2aaSAndroid Build Coastguard Worker if (is_linux && target_cpu == "x64") { 1926*c8dee2aaSAndroid Build Coastguard Worker skia_executable("fiddle") { 1927*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 1928*c8dee2aaSAndroid Build Coastguard Worker libs = [] 1929*c8dee2aaSAndroid Build Coastguard Worker sources = [ 1930*c8dee2aaSAndroid Build Coastguard Worker "tools/fiddle/draw.cpp", 1931*c8dee2aaSAndroid Build Coastguard Worker "tools/fiddle/fiddle_main.cpp", 1932*c8dee2aaSAndroid Build Coastguard Worker ] 1933*c8dee2aaSAndroid Build Coastguard Worker 1934*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_egl) { 1935*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/fiddle/egl_context.cpp" ] 1936*c8dee2aaSAndroid Build Coastguard Worker } else { 1937*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/fiddle/null_context.cpp" ] 1938*c8dee2aaSAndroid Build Coastguard Worker } 1939*c8dee2aaSAndroid Build Coastguard Worker testonly = true 1940*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1941*c8dee2aaSAndroid Build Coastguard Worker ":flags", 1942*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 1943*c8dee2aaSAndroid Build Coastguard Worker ":skia", 1944*c8dee2aaSAndroid Build Coastguard Worker ":skia.h", 1945*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 1946*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 1947*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 1948*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 1949*c8dee2aaSAndroid Build Coastguard Worker ] 1950*c8dee2aaSAndroid Build Coastguard Worker } 1951*c8dee2aaSAndroid Build Coastguard Worker } 1952*c8dee2aaSAndroid Build Coastguard Worker 1953*c8dee2aaSAndroid Build Coastguard Worker config("cpp17") { 1954*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 1955*c8dee2aaSAndroid Build Coastguard Worker cflags_cc = [ "/std:c++17" ] 1956*c8dee2aaSAndroid Build Coastguard Worker } else { 1957*c8dee2aaSAndroid Build Coastguard Worker cflags_cc = [ "-std=c++17" ] 1958*c8dee2aaSAndroid Build Coastguard Worker } 1959*c8dee2aaSAndroid Build Coastguard Worker } 1960*c8dee2aaSAndroid Build Coastguard Worker 1961*c8dee2aaSAndroid Build Coastguard Worker skia_source_set("public_headers_warnings_check") { 1962*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/public_headers_warnings_check.cpp" ] 1963*c8dee2aaSAndroid Build Coastguard Worker configs = [ 1964*c8dee2aaSAndroid Build Coastguard Worker ":use_skia_vulkan_headers", 1965*c8dee2aaSAndroid Build Coastguard Worker ":cpp17", 1966*c8dee2aaSAndroid Build Coastguard Worker ] 1967*c8dee2aaSAndroid Build Coastguard Worker if (defined(skia_header_target_default_configs)) { 1968*c8dee2aaSAndroid Build Coastguard Worker configs += skia_header_target_default_configs 1969*c8dee2aaSAndroid Build Coastguard Worker } 1970*c8dee2aaSAndroid Build Coastguard Worker deps = [ 1971*c8dee2aaSAndroid Build Coastguard Worker ":skia", 1972*c8dee2aaSAndroid Build Coastguard Worker ":skia.h", 1973*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 1974*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 1975*c8dee2aaSAndroid Build Coastguard Worker ] 1976*c8dee2aaSAndroid Build Coastguard Worker 1977*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 1978*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/externals/dawn/include/dawn:headers" ] 1979*c8dee2aaSAndroid Build Coastguard Worker } 1980*c8dee2aaSAndroid Build Coastguard Worker } 1981*c8dee2aaSAndroid Build Coastguard Worker 1982*c8dee2aaSAndroid Build Coastguard Worker template("test_lib") { 1983*c8dee2aaSAndroid Build Coastguard Worker config(target_name + "_config") { 1984*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.public_defines)) { 1985*c8dee2aaSAndroid Build Coastguard Worker defines = invoker.public_defines 1986*c8dee2aaSAndroid Build Coastguard Worker } 1987*c8dee2aaSAndroid Build Coastguard Worker } 1988*c8dee2aaSAndroid Build Coastguard Worker skia_source_set(target_name) { 1989*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, "*", []) 1990*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 1991*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ 1992*c8dee2aaSAndroid Build Coastguard Worker ":" + target_name + "_config", 1993*c8dee2aaSAndroid Build Coastguard Worker ":skia_private", 1994*c8dee2aaSAndroid Build Coastguard Worker ] 1995*c8dee2aaSAndroid Build Coastguard Worker 1996*c8dee2aaSAndroid Build Coastguard Worker if (!defined(deps)) { 1997*c8dee2aaSAndroid Build Coastguard Worker deps = [] 1998*c8dee2aaSAndroid Build Coastguard Worker } 1999*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":skia" ] 2000*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2001*c8dee2aaSAndroid Build Coastguard Worker } 2002*c8dee2aaSAndroid Build Coastguard Worker } 2003*c8dee2aaSAndroid Build Coastguard Worker 2004*c8dee2aaSAndroid Build Coastguard Worker template("test_app") { 2005*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 2006*c8dee2aaSAndroid Build Coastguard Worker ios_app_bundle(target_name) { 2007*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, 2008*c8dee2aaSAndroid Build Coastguard Worker "*", 2009*c8dee2aaSAndroid Build Coastguard Worker [ 2010*c8dee2aaSAndroid Build Coastguard Worker "output_name", 2011*c8dee2aaSAndroid Build Coastguard Worker "visibility", 2012*c8dee2aaSAndroid Build Coastguard Worker "is_shared_library", 2013*c8dee2aaSAndroid Build Coastguard Worker ]) 2014*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2015*c8dee2aaSAndroid Build Coastguard Worker extra_configs = [ ":skia_private" ] 2016*c8dee2aaSAndroid Build Coastguard Worker launchscreen = "platform_tools/ios/app/LaunchScreen.storyboard" 2017*c8dee2aaSAndroid Build Coastguard Worker data_sources = [ "resources" ] 2018*c8dee2aaSAndroid Build Coastguard Worker if ("True" == exec_script("//gn/checkdir.py", 2019*c8dee2aaSAndroid Build Coastguard Worker [ rebase_path("skps", root_build_dir) ], 2020*c8dee2aaSAndroid Build Coastguard Worker "trim string")) { 2021*c8dee2aaSAndroid Build Coastguard Worker data_sources += [ "skps" ] 2022*c8dee2aaSAndroid Build Coastguard Worker } 2023*c8dee2aaSAndroid Build Coastguard Worker if ("True" == exec_script("//gn/checkdir.py", 2024*c8dee2aaSAndroid Build Coastguard Worker [ rebase_path("mskps", root_build_dir) ], 2025*c8dee2aaSAndroid Build Coastguard Worker "trim string")) { 2026*c8dee2aaSAndroid Build Coastguard Worker data_sources += [ "mskps" ] 2027*c8dee2aaSAndroid Build Coastguard Worker } 2028*c8dee2aaSAndroid Build Coastguard Worker } 2029*c8dee2aaSAndroid Build Coastguard Worker } else { 2030*c8dee2aaSAndroid Build Coastguard Worker # !is_ios 2031*c8dee2aaSAndroid Build Coastguard Worker 2032*c8dee2aaSAndroid Build Coastguard Worker if (defined(invoker.is_shared_library) && invoker.is_shared_library) { 2033*c8dee2aaSAndroid Build Coastguard Worker skia_shared_library("lib" + target_name) { 2034*c8dee2aaSAndroid Build Coastguard Worker output_dir = root_build_dir 2035*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, "*", [ "is_shared_library" ]) 2036*c8dee2aaSAndroid Build Coastguard Worker if (!defined(configs)) { 2037*c8dee2aaSAndroid Build Coastguard Worker configs = [] 2038*c8dee2aaSAndroid Build Coastguard Worker } 2039*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":skia_private" ] 2040*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2041*c8dee2aaSAndroid Build Coastguard Worker } 2042*c8dee2aaSAndroid Build Coastguard Worker } else { 2043*c8dee2aaSAndroid Build Coastguard Worker _executable = target_name 2044*c8dee2aaSAndroid Build Coastguard Worker skia_executable(_executable) { 2045*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 2046*c8dee2aaSAndroid Build Coastguard Worker output_dir = root_build_dir 2047*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, "*", [ "is_shared_library" ]) 2048*c8dee2aaSAndroid Build Coastguard Worker if (!defined(configs)) { 2049*c8dee2aaSAndroid Build Coastguard Worker configs = [] 2050*c8dee2aaSAndroid Build Coastguard Worker } 2051*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":skia_private" ] 2052*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2053*c8dee2aaSAndroid Build Coastguard Worker } 2054*c8dee2aaSAndroid Build Coastguard Worker } 2055*c8dee2aaSAndroid Build Coastguard Worker if (is_android && skia_android_serial != "" && defined(_executable)) { 2056*c8dee2aaSAndroid Build Coastguard Worker action("push_" + target_name) { 2057*c8dee2aaSAndroid Build Coastguard Worker output_dir = root_build_dir 2058*c8dee2aaSAndroid Build Coastguard Worker script = "gn/push_to_android.py" 2059*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":" + _executable ] 2060*c8dee2aaSAndroid Build Coastguard Worker _stamp = "$target_gen_dir/$_executable.pushed_$skia_android_serial" 2061*c8dee2aaSAndroid Build Coastguard Worker outputs = [ _stamp ] 2062*c8dee2aaSAndroid Build Coastguard Worker args = [ 2063*c8dee2aaSAndroid Build Coastguard Worker rebase_path("$root_build_dir/$_executable"), 2064*c8dee2aaSAndroid Build Coastguard Worker skia_android_serial, 2065*c8dee2aaSAndroid Build Coastguard Worker rebase_path(_stamp), 2066*c8dee2aaSAndroid Build Coastguard Worker ] 2067*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2068*c8dee2aaSAndroid Build Coastguard Worker } 2069*c8dee2aaSAndroid Build Coastguard Worker } 2070*c8dee2aaSAndroid Build Coastguard Worker } 2071*c8dee2aaSAndroid Build Coastguard Worker } 2072*c8dee2aaSAndroid Build Coastguard Worker 2073*c8dee2aaSAndroid Build Coastguard Worker test_lib("load_dynamic_library") { 2074*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":skia_private" ] 2075*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 2076*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/library/LoadDynamicLibrary.h" ] 2077*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 2078*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/library/LoadDynamicLibrary_win.cpp" ] 2079*c8dee2aaSAndroid Build Coastguard Worker } else { 2080*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/library/LoadDynamicLibrary_posix.cpp" ] 2081*c8dee2aaSAndroid Build Coastguard Worker } 2082*c8dee2aaSAndroid Build Coastguard Worker } 2083*c8dee2aaSAndroid Build Coastguard Worker 2084*c8dee2aaSAndroid Build Coastguard Worker test_lib("gpu_tool_utils") { 2085*c8dee2aaSAndroid Build Coastguard Worker public_defines = [] 2086*c8dee2aaSAndroid Build Coastguard Worker 2087*c8dee2aaSAndroid Build Coastguard Worker # Bots and even devs may not have Vulkan headers, so put 2088*c8dee2aaSAndroid Build Coastguard Worker # include/third_party/vulkan on our path so they're always available. 2089*c8dee2aaSAndroid Build Coastguard Worker all_dependent_configs = [ ":use_skia_vulkan_headers" ] 2090*c8dee2aaSAndroid Build Coastguard Worker 2091*c8dee2aaSAndroid Build Coastguard Worker defines = [] 2092*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_discrete_gpu) { 2093*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_ENABLE_DISCRETE_GPU" ] 2094*c8dee2aaSAndroid Build Coastguard Worker } 2095*c8dee2aaSAndroid Build Coastguard Worker 2096*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":load_dynamic_library" ] 2097*c8dee2aaSAndroid Build Coastguard Worker public_deps = [] 2098*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2099*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/BackendSurfaceFactory.cpp", 2100*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/BackendSurfaceFactory.h", 2101*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/BackendTextureImageFactory.cpp", 2102*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/BackendTextureImageFactory.h", 2103*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ContextType.cpp", 2104*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ContextType.h", 2105*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/FlushFinishTracker.cpp", 2106*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/FlushFinishTracker.h", 2107*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/GrContextFactory.cpp", 2108*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/GrContextFactory.h", 2109*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/GrTest.cpp", 2110*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ManagedBackendTexture.cpp", 2111*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ManagedBackendTexture.h", 2112*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/MemoryCache.cpp", 2113*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/MemoryCache.h", 2114*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ProtectedUtils.cpp", 2115*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ProtectedUtils.h", 2116*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ProxyUtils.cpp", 2117*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ProxyUtils.h", 2118*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/TestCanvas.cpp", 2119*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/TestCanvas.h", 2120*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/TestContext.cpp", 2121*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/TestOps.cpp", 2122*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/TestOps.h", 2123*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/YUVUtils.cpp", 2124*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/YUVUtils.h", 2125*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/mock/MockTestContext.cpp", 2126*c8dee2aaSAndroid Build Coastguard Worker "tools/text/gpu/TextBlobTools.cpp", 2127*c8dee2aaSAndroid Build Coastguard Worker ] 2128*c8dee2aaSAndroid Build Coastguard Worker 2129*c8dee2aaSAndroid Build Coastguard Worker libs = [] 2130*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 2131*c8dee2aaSAndroid Build Coastguard Worker 2132*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 2133*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/GLTestContext.cpp" ] 2134*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 2135*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm" ] 2136*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "OpenGLES.framework" ] 2137*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 2138*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ] 2139*c8dee2aaSAndroid Build Coastguard Worker } 2140*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_angle) { 2141*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/angle2" ] 2142*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/angle/GLTestContext_angle.cpp" ] 2143*c8dee2aaSAndroid Build Coastguard Worker } 2144*c8dee2aaSAndroid Build Coastguard Worker } 2145*c8dee2aaSAndroid Build Coastguard Worker 2146*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl && target_cpu != "wasm") { 2147*c8dee2aaSAndroid Build Coastguard Worker if (is_android || skia_use_egl) { 2148*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ] 2149*c8dee2aaSAndroid Build Coastguard Worker libs += [ "EGL" ] 2150*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux) { 2151*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ] 2152*c8dee2aaSAndroid Build Coastguard Worker libs += [ 2153*c8dee2aaSAndroid Build Coastguard Worker "GLU", 2154*c8dee2aaSAndroid Build Coastguard Worker "GL", 2155*c8dee2aaSAndroid Build Coastguard Worker "X11", 2156*c8dee2aaSAndroid Build Coastguard Worker ] 2157*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 2158*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2159*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp", 2160*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/gl/win/SkWGL.h", 2161*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/gl/win/SkWGL_win.cpp", 2162*c8dee2aaSAndroid Build Coastguard Worker ] 2163*c8dee2aaSAndroid Build Coastguard Worker libs += [ "Gdi32.lib" ] 2164*c8dee2aaSAndroid Build Coastguard Worker if (target_cpu != "arm64") { 2165*c8dee2aaSAndroid Build Coastguard Worker libs += [ "OpenGL32.lib" ] 2166*c8dee2aaSAndroid Build Coastguard Worker } 2167*c8dee2aaSAndroid Build Coastguard Worker } 2168*c8dee2aaSAndroid Build Coastguard Worker } 2169*c8dee2aaSAndroid Build Coastguard Worker 2170*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 2171*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestContext.h" ] 2172*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestContext.cpp" ] 2173*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestHelper.h" ] 2174*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestHelper.cpp" ] 2175*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestMemoryAllocator.h" ] 2176*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestMemoryAllocator.cpp" ] 2177*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestUtils.h" ] 2178*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestUtils.cpp" ] 2179*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkYcbcrSamplerHelper.h" ] 2180*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkYcbcrSamplerHelper.cpp" ] 2181*c8dee2aaSAndroid Build Coastguard Worker all_dependent_configs += [ ":vulkan_memory_allocator" ] 2182*c8dee2aaSAndroid Build Coastguard Worker } 2183*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 2184*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/mtl/MtlTestContext.mm" ] 2185*c8dee2aaSAndroid Build Coastguard Worker } 2186*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_direct3d) { 2187*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/d3d/D3DTestContext.cpp" ] 2188*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/d3d/D3DTestUtils.cpp" ] 2189*c8dee2aaSAndroid Build Coastguard Worker } 2190*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 2191*c8dee2aaSAndroid Build Coastguard Worker public_deps += [ "//third_party/externals/dawn/include/dawn:headers" ] 2192*c8dee2aaSAndroid Build Coastguard Worker if (is_clang) { 2193*c8dee2aaSAndroid Build Coastguard Worker cflags_cc = [ "-Wno-microsoft-cast" ] 2194*c8dee2aaSAndroid Build Coastguard Worker } 2195*c8dee2aaSAndroid Build Coastguard Worker } 2196*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_ganesh) { 2197*c8dee2aaSAndroid Build Coastguard Worker sources -= [ "tools/gpu/GrTest.cpp" ] 2198*c8dee2aaSAndroid Build Coastguard Worker sources -= [ "tools/gpu/TestOps.cpp" ] 2199*c8dee2aaSAndroid Build Coastguard Worker sources -= [ "tools/gpu/TestOps.h" ] 2200*c8dee2aaSAndroid Build Coastguard Worker } else { 2201*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2202*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ganesh/AtlasTextOpTools.cpp", 2203*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ganesh/AtlasTextOpTools.h", 2204*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ganesh/GrAtlasTools.cpp", 2205*c8dee2aaSAndroid Build Coastguard Worker "tools/gpu/ganesh/GrAtlasTools.h", 2206*c8dee2aaSAndroid Build Coastguard Worker ] 2207*c8dee2aaSAndroid Build Coastguard Worker } 2208*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 2209*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2210*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/ContextFactory.cpp", 2211*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/ContextFactory.h", 2212*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/GraphiteTestContext.cpp", 2213*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/GraphiteTestContext.h", 2214*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/GraphiteToolUtils.cpp", 2215*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/GraphiteToolUtils.h", 2216*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/ProtectedUtils_Graphite.cpp", 2217*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/UniqueKeyUtils.cpp", 2218*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/UniqueKeyUtils.h", 2219*c8dee2aaSAndroid Build Coastguard Worker ] 2220*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 2221*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2222*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/dawn/GraphiteDawnTestContext.cpp", 2223*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/dawn/GraphiteDawnTestContext.h", 2224*c8dee2aaSAndroid Build Coastguard Worker ] 2225*c8dee2aaSAndroid Build Coastguard Worker } 2226*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 2227*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2228*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/mtl/GraphiteMtlTestContext.h", 2229*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/mtl/GraphiteMtlTestContext.mm", 2230*c8dee2aaSAndroid Build Coastguard Worker ] 2231*c8dee2aaSAndroid Build Coastguard Worker } 2232*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 2233*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2234*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/vk/GraphiteVulkanTestContext.cpp", 2235*c8dee2aaSAndroid Build Coastguard Worker "tools/graphite/vk/GraphiteVulkanTestContext.h", 2236*c8dee2aaSAndroid Build Coastguard Worker ] 2237*c8dee2aaSAndroid Build Coastguard Worker } 2238*c8dee2aaSAndroid Build Coastguard Worker } 2239*c8dee2aaSAndroid Build Coastguard Worker 2240*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia && using_fuchsia_sdk) { 2241*c8dee2aaSAndroid Build Coastguard Worker libs += 2242*c8dee2aaSAndroid Build Coastguard Worker [ "${fuchsia_sdk_path}/arch/${target_cpu}/sysroot/lib/libzircon.so" ] 2243*c8dee2aaSAndroid Build Coastguard Worker } 2244*c8dee2aaSAndroid Build Coastguard Worker } # test_lib("gpu_tool_utils") 2245*c8dee2aaSAndroid Build Coastguard Worker 2246*c8dee2aaSAndroid Build Coastguard Worker test_lib("flags") { 2247*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2248*c8dee2aaSAndroid Build Coastguard Worker "tools/flags/CommandLineFlags.cpp", 2249*c8dee2aaSAndroid Build Coastguard Worker "tools/flags/CommandLineFlags.h", 2250*c8dee2aaSAndroid Build Coastguard Worker ] 2251*c8dee2aaSAndroid Build Coastguard Worker } 2252*c8dee2aaSAndroid Build Coastguard Worker 2253*c8dee2aaSAndroid Build Coastguard Worker test_lib("common_flags_config") { 2254*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2255*c8dee2aaSAndroid Build Coastguard Worker "tools/flags/CommonFlags.h", 2256*c8dee2aaSAndroid Build Coastguard Worker "tools/flags/CommonFlagsConfig.cpp", 2257*c8dee2aaSAndroid Build Coastguard Worker "tools/flags/CommonFlagsConfig.h", 2258*c8dee2aaSAndroid Build Coastguard Worker ] 2259*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2260*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":gpu_tool_utils" ] 2261*c8dee2aaSAndroid Build Coastguard Worker } 2262*c8dee2aaSAndroid Build Coastguard Worker test_lib("common_flags_gpu") { 2263*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/flags/CommonFlagsGanesh.cpp" ] 2264*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2265*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":gpu_tool_utils" ] 2266*c8dee2aaSAndroid Build Coastguard Worker } 2267*c8dee2aaSAndroid Build Coastguard Worker test_lib("common_flags_graphite") { 2268*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/flags/CommonFlagsGraphite.cpp" ] 2269*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2270*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":gpu_tool_utils" ] 2271*c8dee2aaSAndroid Build Coastguard Worker } 2272*c8dee2aaSAndroid Build Coastguard Worker test_lib("common_flags_images") { 2273*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/flags/CommonFlagsImages.cpp" ] 2274*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2275*c8dee2aaSAndroid Build Coastguard Worker } 2276*c8dee2aaSAndroid Build Coastguard Worker 2277*c8dee2aaSAndroid Build Coastguard Worker test_lib("trace") { 2278*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2279*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2280*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/ChromeTracingTracer.cpp", 2281*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/ChromeTracingTracer.h", 2282*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/EventTracingPriv.cpp", 2283*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/EventTracingPriv.h", 2284*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/SkDebugfTracer.cpp", 2285*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/SkDebugfTracer.h", 2286*c8dee2aaSAndroid Build Coastguard Worker ] 2287*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_perfetto) { 2288*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/perfetto" ] 2289*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2290*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/SkPerfettoTrace.cpp", 2291*c8dee2aaSAndroid Build Coastguard Worker "tools/trace/SkPerfettoTrace.h", 2292*c8dee2aaSAndroid Build Coastguard Worker ] 2293*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_USE_PERFETTO" ] 2294*c8dee2aaSAndroid Build Coastguard Worker } 2295*c8dee2aaSAndroid Build Coastguard Worker } 2296*c8dee2aaSAndroid Build Coastguard Worker 2297*c8dee2aaSAndroid Build Coastguard Worker test_lib("tool_utils") { 2298*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2299*c8dee2aaSAndroid Build Coastguard Worker "tools/AndroidSkDebugToStdOut.cpp", 2300*c8dee2aaSAndroid Build Coastguard Worker "tools/AutoreleasePool.h", 2301*c8dee2aaSAndroid Build Coastguard Worker "tools/DDLPromiseImageHelper.cpp", 2302*c8dee2aaSAndroid Build Coastguard Worker "tools/DDLPromiseImageHelper.h", 2303*c8dee2aaSAndroid Build Coastguard Worker "tools/DDLTileHelper.cpp", 2304*c8dee2aaSAndroid Build Coastguard Worker "tools/DDLTileHelper.h", 2305*c8dee2aaSAndroid Build Coastguard Worker "tools/DecodeUtils.cpp", 2306*c8dee2aaSAndroid Build Coastguard Worker "tools/DecodeUtils.h", 2307*c8dee2aaSAndroid Build Coastguard Worker "tools/EncodeUtils.cpp", 2308*c8dee2aaSAndroid Build Coastguard Worker "tools/EncodeUtils.h", 2309*c8dee2aaSAndroid Build Coastguard Worker "tools/GpuToolUtils.h", 2310*c8dee2aaSAndroid Build Coastguard Worker "tools/LsanSuppressions.cpp", 2311*c8dee2aaSAndroid Build Coastguard Worker "tools/MSKPPlayer.cpp", 2312*c8dee2aaSAndroid Build Coastguard Worker "tools/MSKPPlayer.h", 2313*c8dee2aaSAndroid Build Coastguard Worker "tools/ProcStats.cpp", 2314*c8dee2aaSAndroid Build Coastguard Worker "tools/ProcStats.h", 2315*c8dee2aaSAndroid Build Coastguard Worker "tools/Resources.cpp", 2316*c8dee2aaSAndroid Build Coastguard Worker "tools/Resources.h", 2317*c8dee2aaSAndroid Build Coastguard Worker "tools/RuntimeBlendUtils.cpp", 2318*c8dee2aaSAndroid Build Coastguard Worker "tools/RuntimeBlendUtils.h", 2319*c8dee2aaSAndroid Build Coastguard Worker "tools/SkMetaData.cpp", 2320*c8dee2aaSAndroid Build Coastguard Worker "tools/SkMetaData.h", 2321*c8dee2aaSAndroid Build Coastguard Worker "tools/SkSharingProc.cpp", 2322*c8dee2aaSAndroid Build Coastguard Worker "tools/SkSharingProc.h", 2323*c8dee2aaSAndroid Build Coastguard Worker "tools/Stats.h", 2324*c8dee2aaSAndroid Build Coastguard Worker "tools/TestFontDataProvider.cpp", 2325*c8dee2aaSAndroid Build Coastguard Worker "tools/TestFontDataProvider.h", 2326*c8dee2aaSAndroid Build Coastguard Worker "tools/ToolUtils.cpp", 2327*c8dee2aaSAndroid Build Coastguard Worker "tools/ToolUtils.h", 2328*c8dee2aaSAndroid Build Coastguard Worker "tools/TsanSuppressions.cpp", 2329*c8dee2aaSAndroid Build Coastguard Worker "tools/UrlDataManager.cpp", 2330*c8dee2aaSAndroid Build Coastguard Worker "tools/UrlDataManager.h", 2331*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugCanvas.cpp", 2332*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugCanvas.h", 2333*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugLayerManager.cpp", 2334*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugLayerManager.h", 2335*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DrawCommand.cpp", 2336*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DrawCommand.h", 2337*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/JsonWriteBuffer.cpp", 2338*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/JsonWriteBuffer.h", 2339*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/FontToolUtils.cpp", 2340*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/FontToolUtils.h", 2341*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/RandomScalerContext.cpp", 2342*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/RandomScalerContext.h", 2343*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestEmptyTypeface.h", 2344*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestFontMgr.cpp", 2345*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestFontMgr.h", 2346*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestSVGTypeface.cpp", 2347*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestSVGTypeface.h", 2348*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestTypeface.cpp", 2349*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/TestTypeface.h", 2350*c8dee2aaSAndroid Build Coastguard Worker "tools/text/SkTextBlobTrace.cpp", 2351*c8dee2aaSAndroid Build Coastguard Worker "tools/text/SkTextBlobTrace.h", 2352*c8dee2aaSAndroid Build Coastguard Worker "tools/timer/TimeUtils.h", 2353*c8dee2aaSAndroid Build Coastguard Worker "tools/timer/Timer.cpp", 2354*c8dee2aaSAndroid Build Coastguard Worker "tools/timer/Timer.h", 2355*c8dee2aaSAndroid Build Coastguard Worker ] 2356*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_svg) { 2357*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2358*c8dee2aaSAndroid Build Coastguard Worker "tools/SvgPathExtractor.cpp", 2359*c8dee2aaSAndroid Build Coastguard Worker "tools/SvgPathExtractor.h", 2360*c8dee2aaSAndroid Build Coastguard Worker ] 2361*c8dee2aaSAndroid Build Coastguard Worker } 2362*c8dee2aaSAndroid Build Coastguard Worker if (target_cpu != "wasm") { 2363*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/CrashHandler.cpp" ] 2364*c8dee2aaSAndroid Build Coastguard Worker } 2365*c8dee2aaSAndroid Build Coastguard Worker libs = [] 2366*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 2367*c8dee2aaSAndroid Build Coastguard Worker if (is_ios) { 2368*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/ios_utils.m" ] 2369*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/ios_utils.h" ] 2370*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/AutoreleasePool.mm" ] 2371*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Foundation.framework" ] 2372*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 2373*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/AutoreleasePool.mm" ] 2374*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "Foundation.framework" ] 2375*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win && !skia_enable_winuwp) { 2376*c8dee2aaSAndroid Build Coastguard Worker libs += [ "DbgHelp.lib" ] 2377*c8dee2aaSAndroid Build Coastguard Worker } 2378*c8dee2aaSAndroid Build Coastguard Worker 2379*c8dee2aaSAndroid Build Coastguard Worker defines = [] 2380*c8dee2aaSAndroid Build Coastguard Worker if (skia_tools_require_resources) { 2381*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_TOOLS_REQUIRE_RESOURCES" ] 2382*c8dee2aaSAndroid Build Coastguard Worker } 2383*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":flags" ] 2384*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_svg) { 2385*c8dee2aaSAndroid Build Coastguard Worker deps += [ "modules/svg" ] 2386*c8dee2aaSAndroid Build Coastguard Worker } 2387*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":gpu_tool_utils" ] 2388*c8dee2aaSAndroid Build Coastguard Worker } 2389*c8dee2aaSAndroid Build Coastguard Worker 2390*c8dee2aaSAndroid Build Coastguard Worker test_lib("etc1") { 2391*c8dee2aaSAndroid Build Coastguard Worker sources = [ "third_party/etc1/etc1.cpp" ] 2392*c8dee2aaSAndroid Build Coastguard Worker } 2393*c8dee2aaSAndroid Build Coastguard Worker 2394*c8dee2aaSAndroid Build Coastguard Worker import("gn/gm.gni") 2395*c8dee2aaSAndroid Build Coastguard Worker test_lib("gm") { 2396*c8dee2aaSAndroid Build Coastguard Worker sources = gm_sources 2397*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 2398*c8dee2aaSAndroid Build Coastguard Worker sources += gl_gm_sources 2399*c8dee2aaSAndroid Build Coastguard Worker } 2400*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_ganesh) { 2401*c8dee2aaSAndroid Build Coastguard Worker sources -= ganesh_gm_sources 2402*c8dee2aaSAndroid Build Coastguard Worker } 2403*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_fontations) { 2404*c8dee2aaSAndroid Build Coastguard Worker sources += fontations_gm_sources 2405*c8dee2aaSAndroid Build Coastguard Worker } 2406*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2407*c8dee2aaSAndroid Build Coastguard Worker ":etc1", 2408*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2409*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2410*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2411*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 2412*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:gm", 2413*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 2414*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph:gm", 2415*c8dee2aaSAndroid Build Coastguard Worker "modules/skresources", 2416*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2417*c8dee2aaSAndroid Build Coastguard Worker ] 2418*c8dee2aaSAndroid Build Coastguard Worker if (is_skia_dev_build) { 2419*c8dee2aaSAndroid Build Coastguard Worker sources += [ "gm/fiddle.cpp" ] 2420*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":skia.h" ] 2421*c8dee2aaSAndroid Build Coastguard Worker } 2422*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":gpu_tool_utils" ] 2423*c8dee2aaSAndroid Build Coastguard Worker 2424*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_ffmpeg) { 2425*c8dee2aaSAndroid Build Coastguard Worker deps += [ "experimental/ffmpeg:video_decoder" ] 2426*c8dee2aaSAndroid Build Coastguard Worker sources += [ "gm/video_decoder.cpp" ] 2427*c8dee2aaSAndroid Build Coastguard Worker } 2428*c8dee2aaSAndroid Build Coastguard Worker } 2429*c8dee2aaSAndroid Build Coastguard Worker 2430*c8dee2aaSAndroid Build Coastguard Worker test_lib("test") { 2431*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2432*c8dee2aaSAndroid Build Coastguard Worker "tests/CtsEnforcement.cpp", 2433*c8dee2aaSAndroid Build Coastguard Worker "tests/Test.cpp", 2434*c8dee2aaSAndroid Build Coastguard Worker "tests/Test.h", 2435*c8dee2aaSAndroid Build Coastguard Worker "tests/TestHarness.cpp", 2436*c8dee2aaSAndroid Build Coastguard Worker "tests/TestHarness.h", 2437*c8dee2aaSAndroid Build Coastguard Worker "tests/TestUtils.cpp", 2438*c8dee2aaSAndroid Build Coastguard Worker "tests/TestUtils.h", 2439*c8dee2aaSAndroid Build Coastguard Worker ] 2440*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2441*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2442*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2443*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2444*c8dee2aaSAndroid Build Coastguard Worker ] 2445*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ 2446*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", # Test.h #includes headers from this target. 2447*c8dee2aaSAndroid Build Coastguard Worker ] 2448*c8dee2aaSAndroid Build Coastguard Worker } 2449*c8dee2aaSAndroid Build Coastguard Worker 2450*c8dee2aaSAndroid Build Coastguard Worker import("gn/tests.gni") 2451*c8dee2aaSAndroid Build Coastguard Worker test_lib("tests") { 2452*c8dee2aaSAndroid Build Coastguard Worker sources = tests_sources + pathops_tests_sources 2453*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 2454*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 2455*c8dee2aaSAndroid Build Coastguard Worker sources += metal_tests_sources 2456*c8dee2aaSAndroid Build Coastguard Worker cflags_objcc = [ "-fobjc-arc" ] 2457*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "MetalKit.framework" ] 2458*c8dee2aaSAndroid Build Coastguard Worker } 2459*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_jpeg_gainmaps) { 2460*c8dee2aaSAndroid Build Coastguard Worker sources += jpeg_gainmap_tests_sources 2461*c8dee2aaSAndroid Build Coastguard Worker } 2462*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 2463*c8dee2aaSAndroid Build Coastguard Worker sources += gl_tests_sources 2464*c8dee2aaSAndroid Build Coastguard Worker } 2465*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 2466*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_vk_chromium_public 2467*c8dee2aaSAndroid Build Coastguard Worker sources += skia_gpu_vk_chromium_private 2468*c8dee2aaSAndroid Build Coastguard Worker } 2469*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 2470*c8dee2aaSAndroid Build Coastguard Worker sources += graphite_tests_sources 2471*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 2472*c8dee2aaSAndroid Build Coastguard Worker sources += graphite_dawn_tests_sources 2473*c8dee2aaSAndroid Build Coastguard Worker } 2474*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 2475*c8dee2aaSAndroid Build Coastguard Worker sources += graphite_metal_tests_sources 2476*c8dee2aaSAndroid Build Coastguard Worker } 2477*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 2478*c8dee2aaSAndroid Build Coastguard Worker sources += graphite_vulkan_tests_sources 2479*c8dee2aaSAndroid Build Coastguard Worker } 2480*c8dee2aaSAndroid Build Coastguard Worker } 2481*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_ganesh) { 2482*c8dee2aaSAndroid Build Coastguard Worker sources -= ganesh_tests_sources 2483*c8dee2aaSAndroid Build Coastguard Worker } 2484*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_precompile) { 2485*c8dee2aaSAndroid Build Coastguard Worker sources += precompile_tests_sources 2486*c8dee2aaSAndroid Build Coastguard Worker } 2487*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2488*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2489*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_android_tests", 2490*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_fontconfig_tests", 2491*c8dee2aaSAndroid Build Coastguard Worker ":fontmgr_mac_ct_tests", 2492*c8dee2aaSAndroid Build Coastguard Worker ":fontscanner_tests", 2493*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_decode_tests", 2494*c8dee2aaSAndroid Build Coastguard Worker ":rust_png_encode_tests", 2495*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2496*c8dee2aaSAndroid Build Coastguard Worker ":test", 2497*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2498*c8dee2aaSAndroid Build Coastguard Worker ":typeface_fontations_tests", 2499*c8dee2aaSAndroid Build Coastguard Worker "modules/bentleyottmann:tests", 2500*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:tests", 2501*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph:tests", 2502*c8dee2aaSAndroid Build Coastguard Worker "modules/sksg:tests", 2503*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2504*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper:tests", 2505*c8dee2aaSAndroid Build Coastguard Worker "modules/skunicode:tests", 2506*c8dee2aaSAndroid Build Coastguard Worker "modules/svg:tests", 2507*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 2508*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libwebp", 2509*c8dee2aaSAndroid Build Coastguard Worker "//third_party/zlib", 2510*c8dee2aaSAndroid Build Coastguard Worker ] 2511*c8dee2aaSAndroid Build Coastguard Worker } 2512*c8dee2aaSAndroid Build Coastguard Worker 2513*c8dee2aaSAndroid Build Coastguard Worker import("gn/bench.gni") 2514*c8dee2aaSAndroid Build Coastguard Worker test_lib("bench") { 2515*c8dee2aaSAndroid Build Coastguard Worker sources = bench_sources 2516*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 2517*c8dee2aaSAndroid Build Coastguard Worker sources += graphite_bench_sources 2518*c8dee2aaSAndroid Build Coastguard Worker } 2519*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_ganesh) { 2520*c8dee2aaSAndroid Build Coastguard Worker sources -= ganesh_bench_sources 2521*c8dee2aaSAndroid Build Coastguard Worker } 2522*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2523*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2524*c8dee2aaSAndroid Build Coastguard Worker ":gm", 2525*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2526*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2527*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2528*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph:bench", 2529*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2530*c8dee2aaSAndroid Build Coastguard Worker ] 2531*c8dee2aaSAndroid Build Coastguard Worker } 2532*c8dee2aaSAndroid Build Coastguard Worker 2533*c8dee2aaSAndroid Build Coastguard Worker if (is_linux || is_mac || skia_enable_optimize_size) { 2534*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_skottie) { 2535*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie_tool") { 2536*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skottie:tool" ] 2537*c8dee2aaSAndroid Build Coastguard Worker } 2538*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie_tool_cpu") { 2539*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skottie:tool_cpu" ] 2540*c8dee2aaSAndroid Build Coastguard Worker } 2541*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie_tool_gpu") { 2542*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skottie:tool_gpu" ] 2543*c8dee2aaSAndroid Build Coastguard Worker } 2544*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie_preshape_tool") { 2545*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skottie:preshape_tool" ] 2546*c8dee2aaSAndroid Build Coastguard Worker } 2547*c8dee2aaSAndroid Build Coastguard Worker } 2548*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_svg && skia_use_expat && defined(is_skia_standalone)) { 2549*c8dee2aaSAndroid Build Coastguard Worker test_app("svg_tool") { 2550*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/svg:tool" ] 2551*c8dee2aaSAndroid Build Coastguard Worker } 2552*c8dee2aaSAndroid Build Coastguard Worker } 2553*c8dee2aaSAndroid Build Coastguard Worker } 2554*c8dee2aaSAndroid Build Coastguard Worker 2555*c8dee2aaSAndroid Build Coastguard Worker test_lib("hash_and_encode") { 2556*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2557*c8dee2aaSAndroid Build Coastguard Worker "tools/HashAndEncode.cpp", 2558*c8dee2aaSAndroid Build Coastguard Worker "tools/HashAndEncode.h", 2559*c8dee2aaSAndroid Build Coastguard Worker ] 2560*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2561*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2562*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2563*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 2564*c8dee2aaSAndroid Build Coastguard Worker ] 2565*c8dee2aaSAndroid Build Coastguard Worker } 2566*c8dee2aaSAndroid Build Coastguard Worker if (target_cpu != "wasm") { 2567*c8dee2aaSAndroid Build Coastguard Worker test_app("convert-to-nia") { 2568*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/convert-to-nia.cpp" ] 2569*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 2570*c8dee2aaSAndroid Build Coastguard Worker } 2571*c8dee2aaSAndroid Build Coastguard Worker test_app("imgcvt") { 2572*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/imgcvt.cpp" ] 2573*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":use_skia_vulkan_headers" ] 2574*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2575*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2576*c8dee2aaSAndroid Build Coastguard Worker "modules/skcms", 2577*c8dee2aaSAndroid Build Coastguard Worker ] 2578*c8dee2aaSAndroid Build Coastguard Worker } 2579*c8dee2aaSAndroid Build Coastguard Worker test_app("dm") { 2580*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2581*c8dee2aaSAndroid Build Coastguard Worker "dm/DM.cpp", 2582*c8dee2aaSAndroid Build Coastguard Worker "dm/DMGpuTestProcs.cpp", 2583*c8dee2aaSAndroid Build Coastguard Worker "dm/DMJsonWriter.cpp", 2584*c8dee2aaSAndroid Build Coastguard Worker "dm/DMJsonWriter.h", 2585*c8dee2aaSAndroid Build Coastguard Worker "dm/DMSrcSink.cpp", 2586*c8dee2aaSAndroid Build Coastguard Worker "dm/DMSrcSink.h", 2587*c8dee2aaSAndroid Build Coastguard Worker ] 2588*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2589*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_config", 2590*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_gpu", 2591*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_graphite", 2592*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_images", 2593*c8dee2aaSAndroid Build Coastguard Worker ":compile_all_sksl_tests", 2594*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2595*c8dee2aaSAndroid Build Coastguard Worker ":gm", 2596*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2597*c8dee2aaSAndroid Build Coastguard Worker ":hash_and_encode", 2598*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2599*c8dee2aaSAndroid Build Coastguard Worker ":tests", 2600*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2601*c8dee2aaSAndroid Build Coastguard Worker ":trace", 2602*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 2603*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:utils", 2604*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2605*c8dee2aaSAndroid Build Coastguard Worker "modules/skunicode", 2606*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 2607*c8dee2aaSAndroid Build Coastguard Worker ] 2608*c8dee2aaSAndroid Build Coastguard Worker } 2609*c8dee2aaSAndroid Build Coastguard Worker test_app("filterfuzz") { 2610*c8dee2aaSAndroid Build Coastguard Worker sources = [ "experimental/filterfuzz/filterfuzz.cpp" ] 2611*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2612*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2613*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2614*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2615*c8dee2aaSAndroid Build Coastguard Worker ] 2616*c8dee2aaSAndroid Build Coastguard Worker } 2617*c8dee2aaSAndroid Build Coastguard Worker 2618*c8dee2aaSAndroid Build Coastguard Worker if (!skia_enable_optimize_size && !skia_use_fontations && 2619*c8dee2aaSAndroid Build Coastguard Worker !skia_enable_vello_shaders) { 2620*c8dee2aaSAndroid Build Coastguard Worker # optional separate library to dlopen when running CanvasStateTests. 2621*c8dee2aaSAndroid Build Coastguard Worker skia_shared_library("canvas_state_lib") { 2622*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2623*c8dee2aaSAndroid Build Coastguard Worker "tests/CanvasStateHelpers.cpp", 2624*c8dee2aaSAndroid Build Coastguard Worker "tests/CanvasStateHelpers.h", 2625*c8dee2aaSAndroid Build Coastguard Worker ] 2626*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 2627*c8dee2aaSAndroid Build Coastguard Worker } 2628*c8dee2aaSAndroid Build Coastguard Worker } 2629*c8dee2aaSAndroid Build Coastguard Worker } 2630*c8dee2aaSAndroid Build Coastguard Worker 2631*c8dee2aaSAndroid Build Coastguard Worker if (!is_win) { 2632*c8dee2aaSAndroid Build Coastguard Worker test_app("blob_cache_sim") { 2633*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/blob_cache_sim.cpp" ] 2634*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2635*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2636*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2637*c8dee2aaSAndroid Build Coastguard Worker ] 2638*c8dee2aaSAndroid Build Coastguard Worker } 2639*c8dee2aaSAndroid Build Coastguard Worker } 2640*c8dee2aaSAndroid Build Coastguard Worker 2641*c8dee2aaSAndroid Build Coastguard Worker test_app("nanobench") { 2642*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2643*c8dee2aaSAndroid Build Coastguard Worker "bench/nanobench.cpp", 2644*c8dee2aaSAndroid Build Coastguard Worker "bench/nanobench.h", 2645*c8dee2aaSAndroid Build Coastguard Worker ] 2646*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2647*c8dee2aaSAndroid Build Coastguard Worker ":bench", 2648*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_config", 2649*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_gpu", 2650*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_graphite", 2651*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_images", 2652*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2653*c8dee2aaSAndroid Build Coastguard Worker ":gm", 2654*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2655*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2656*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2657*c8dee2aaSAndroid Build Coastguard Worker ":trace", 2658*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 2659*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2660*c8dee2aaSAndroid Build Coastguard Worker "modules/skunicode", 2661*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 2662*c8dee2aaSAndroid Build Coastguard Worker ] 2663*c8dee2aaSAndroid Build Coastguard Worker } 2664*c8dee2aaSAndroid Build Coastguard Worker 2665*c8dee2aaSAndroid Build Coastguard Worker test_app("skpinfo") { 2666*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/skpinfo.cpp" ] 2667*c8dee2aaSAndroid Build Coastguard Worker configs = [ ":use_skia_vulkan_headers" ] 2668*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2669*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2670*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2671*c8dee2aaSAndroid Build Coastguard Worker ] 2672*c8dee2aaSAndroid Build Coastguard Worker } 2673*c8dee2aaSAndroid Build Coastguard Worker 2674*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_ffmpeg) { 2675*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie2movie") { 2676*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/skottie2movie.cpp" ] 2677*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2678*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2679*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2680*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2681*c8dee2aaSAndroid Build Coastguard Worker "experimental/ffmpeg:video_encoder", 2682*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 2683*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:utils", 2684*c8dee2aaSAndroid Build Coastguard Worker ] 2685*c8dee2aaSAndroid Build Coastguard Worker } 2686*c8dee2aaSAndroid Build Coastguard Worker } 2687*c8dee2aaSAndroid Build Coastguard Worker 2688*c8dee2aaSAndroid Build Coastguard Worker test_app("skpbench") { 2689*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2690*c8dee2aaSAndroid Build Coastguard Worker "bench/BigPath.cpp", 2691*c8dee2aaSAndroid Build Coastguard Worker "tools/skpbench/skpbench.cpp", 2692*c8dee2aaSAndroid Build Coastguard Worker ] 2693*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2694*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_config", 2695*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_gpu", 2696*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2697*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2698*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2699*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2700*c8dee2aaSAndroid Build Coastguard Worker ] 2701*c8dee2aaSAndroid Build Coastguard Worker } 2702*c8dee2aaSAndroid Build Coastguard Worker 2703*c8dee2aaSAndroid Build Coastguard Worker if (is_linux && skia_use_icu) { 2704*c8dee2aaSAndroid Build Coastguard Worker test_app("sktexttopdf") { 2705*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/using_skia_and_harfbuzz.cpp" ] 2706*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2707*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2708*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2709*c8dee2aaSAndroid Build Coastguard Worker ] 2710*c8dee2aaSAndroid Build Coastguard Worker } 2711*c8dee2aaSAndroid Build Coastguard Worker } 2712*c8dee2aaSAndroid Build Coastguard Worker 2713*c8dee2aaSAndroid Build Coastguard Worker if (is_linux || is_mac) { 2714*c8dee2aaSAndroid Build Coastguard Worker test_app("create_test_font") { 2715*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/fonts/create_test_font.cpp" ] 2716*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 2717*c8dee2aaSAndroid Build Coastguard Worker assert_no_deps = [ 2718*c8dee2aaSAndroid Build Coastguard Worker # tool_utils requires the output of this app. 2719*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2720*c8dee2aaSAndroid Build Coastguard Worker ] 2721*c8dee2aaSAndroid Build Coastguard Worker } 2722*c8dee2aaSAndroid Build Coastguard Worker } 2723*c8dee2aaSAndroid Build Coastguard Worker 2724*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_expat) { 2725*c8dee2aaSAndroid Build Coastguard Worker test_app("create_test_font_color") { 2726*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/fonts/create_test_font_color.cpp" ] 2727*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2728*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2729*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2730*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2731*c8dee2aaSAndroid Build Coastguard Worker "//modules/svg", 2732*c8dee2aaSAndroid Build Coastguard Worker ] 2733*c8dee2aaSAndroid Build Coastguard Worker } 2734*c8dee2aaSAndroid Build Coastguard Worker } 2735*c8dee2aaSAndroid Build Coastguard Worker 2736*c8dee2aaSAndroid Build Coastguard Worker test_app("get_images_from_skps") { 2737*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/get_images_from_skps.cpp" ] 2738*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2739*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2740*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2741*c8dee2aaSAndroid Build Coastguard Worker ] 2742*c8dee2aaSAndroid Build Coastguard Worker } 2743*c8dee2aaSAndroid Build Coastguard Worker 2744*c8dee2aaSAndroid Build Coastguard Worker if (!is_ios && target_cpu != "wasm" && 2745*c8dee2aaSAndroid Build Coastguard Worker !((is_win || is_mac) && target_cpu == "arm64")) { 2746*c8dee2aaSAndroid Build Coastguard Worker test_app("skiaserve") { 2747*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2748*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/Request.cpp", 2749*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/Response.cpp", 2750*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/skiaserve.cpp", 2751*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/BreakHandler.cpp", 2752*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp", 2753*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/CmdHandler.cpp", 2754*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/ColorModeHandler.cpp", 2755*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/DataHandler.cpp", 2756*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/DownloadHandler.cpp", 2757*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/EnableGPUHandler.cpp", 2758*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/ImgHandler.cpp", 2759*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/InfoHandler.cpp", 2760*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/OpBoundsHandler.cpp", 2761*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/OpsHandler.cpp", 2762*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/OverdrawHandler.cpp", 2763*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/PostHandler.cpp", 2764*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/QuitHandler.cpp", 2765*c8dee2aaSAndroid Build Coastguard Worker "tools/skiaserve/urlhandlers/RootHandler.cpp", 2766*c8dee2aaSAndroid Build Coastguard Worker ] 2767*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2768*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2769*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2770*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2771*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2772*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libmicrohttpd", 2773*c8dee2aaSAndroid Build Coastguard Worker ] 2774*c8dee2aaSAndroid Build Coastguard Worker } 2775*c8dee2aaSAndroid Build Coastguard Worker } 2776*c8dee2aaSAndroid Build Coastguard Worker 2777*c8dee2aaSAndroid Build Coastguard Worker test_app("fuzz") { 2778*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2779*c8dee2aaSAndroid Build Coastguard Worker "fuzz/Fuzz.cpp", 2780*c8dee2aaSAndroid Build Coastguard Worker "fuzz/Fuzz.h", 2781*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 2782*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCommon.cpp", 2783*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCommon.h", 2784*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCreateDDL.cpp", 2785*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCubicRoots.cpp", 2786*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzDDLThreading.cpp", 2787*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzDrawFunctions.cpp", 2788*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzEncoders.cpp", 2789*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzGradients.cpp", 2790*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzMain.cpp", 2791*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzParsePath.cpp", 2792*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPathMeasure.cpp", 2793*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPathop.cpp", 2794*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPolyUtils.cpp", 2795*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzQuadRoots.cpp", 2796*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzRegionOp.cpp", 2797*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzSkParagraph.cpp", 2798*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzTriangulation.cpp", 2799*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzAndroidCodec.cpp", 2800*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzAnimatedImage.cpp", 2801*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzCOLRv1.cpp", 2802*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzColorspace.cpp", 2803*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzImage.cpp", 2804*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp", 2805*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzIncrementalImage.cpp", 2806*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzJSON.cpp", 2807*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzParsePath.cpp", 2808*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPathDeserialize.cpp", 2809*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzRegionDeserialize.cpp", 2810*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzRegionSetPath.cpp", 2811*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKP.cpp", 2812*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp", 2813*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKSL2Metal.cpp", 2814*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp", 2815*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp", 2816*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSKSL2WGSL.cpp", 2817*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSVG.cpp", 2818*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkDescriptorDeserialize.cpp", 2819*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkMeshSpecification.cpp", 2820*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkParagraph.cpp", 2821*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkRuntimeBlender.cpp", 2822*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkRuntimeColorFilter.cpp", 2823*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp", 2824*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp", 2825*c8dee2aaSAndroid Build Coastguard Worker "tools/UrlDataManager.cpp", 2826*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugCanvas.cpp", 2827*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DebugLayerManager.cpp", 2828*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/DrawCommand.cpp", 2829*c8dee2aaSAndroid Build Coastguard Worker "tools/debugger/JsonWriteBuffer.cpp", 2830*c8dee2aaSAndroid Build Coastguard Worker "tools/fonts/FontToolUtils.cpp", 2831*c8dee2aaSAndroid Build Coastguard Worker ] 2832*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite && skia_enable_precompile) { 2833*c8dee2aaSAndroid Build Coastguard Worker sources += [ "fuzz/FuzzPrecompile.cpp" ] 2834*c8dee2aaSAndroid Build Coastguard Worker } 2835*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2836*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2837*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2838*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2839*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:fuzz", 2840*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 2841*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 2842*c8dee2aaSAndroid Build Coastguard Worker ] 2843*c8dee2aaSAndroid Build Coastguard Worker } 2844*c8dee2aaSAndroid Build Coastguard Worker 2845*c8dee2aaSAndroid Build Coastguard Worker test_app("dump_record") { 2846*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/dump_record.cpp" ] 2847*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2848*c8dee2aaSAndroid Build Coastguard Worker ":flags", 2849*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2850*c8dee2aaSAndroid Build Coastguard Worker ] 2851*c8dee2aaSAndroid Build Coastguard Worker } 2852*c8dee2aaSAndroid Build Coastguard Worker 2853*c8dee2aaSAndroid Build Coastguard Worker test_app("skdiff") { 2854*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2855*c8dee2aaSAndroid Build Coastguard Worker "tools/skdiff/skdiff.cpp", 2856*c8dee2aaSAndroid Build Coastguard Worker "tools/skdiff/skdiff_html.cpp", 2857*c8dee2aaSAndroid Build Coastguard Worker "tools/skdiff/skdiff_main.cpp", 2858*c8dee2aaSAndroid Build Coastguard Worker "tools/skdiff/skdiff_utils.cpp", 2859*c8dee2aaSAndroid Build Coastguard Worker ] 2860*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 2861*c8dee2aaSAndroid Build Coastguard Worker } 2862*c8dee2aaSAndroid Build Coastguard Worker 2863*c8dee2aaSAndroid Build Coastguard Worker test_app("skp_parser") { 2864*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/skp_parser.cpp" ] 2865*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2866*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2867*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2868*c8dee2aaSAndroid Build Coastguard Worker ] 2869*c8dee2aaSAndroid Build Coastguard Worker } 2870*c8dee2aaSAndroid Build Coastguard Worker 2871*c8dee2aaSAndroid Build Coastguard Worker if (!is_win) { 2872*c8dee2aaSAndroid Build Coastguard Worker source_set("skqp_lib") { # Not a skia_source_set 2873*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 2874*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2875*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":skia_private" ] 2876*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2877*c8dee2aaSAndroid Build Coastguard Worker "tools/skqp/src/skqp.cpp", 2878*c8dee2aaSAndroid Build Coastguard Worker "tools/skqp/src/skqp.h", 2879*c8dee2aaSAndroid Build Coastguard Worker "tools/skqp/src/skqp_GpuTestProcs.cpp", 2880*c8dee2aaSAndroid Build Coastguard Worker ] 2881*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2882*c8dee2aaSAndroid Build Coastguard Worker ":gm", 2883*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2884*c8dee2aaSAndroid Build Coastguard Worker ":tests", 2885*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2886*c8dee2aaSAndroid Build Coastguard Worker ] 2887*c8dee2aaSAndroid Build Coastguard Worker } 2888*c8dee2aaSAndroid Build Coastguard Worker test_app("skqp") { 2889*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/skqp/src/skqp_main.cpp" ] 2890*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "//" ] 2891*c8dee2aaSAndroid Build Coastguard Worker lib_dirs = [] 2892*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skqp_lib" ] 2893*c8dee2aaSAndroid Build Coastguard Worker } 2894*c8dee2aaSAndroid Build Coastguard Worker } 2895*c8dee2aaSAndroid Build Coastguard Worker if (is_fuchsia) { 2896*c8dee2aaSAndroid Build Coastguard Worker # Build a package repository for skqp on Fuchsia. 2897*c8dee2aaSAndroid Build Coastguard Worker group("skqp_repo") { 2898*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2899*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//build/fuchsia/skqp:skqp_repo" ] 2900*c8dee2aaSAndroid Build Coastguard Worker } 2901*c8dee2aaSAndroid Build Coastguard Worker } 2902*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 2903*c8dee2aaSAndroid Build Coastguard Worker shared_library("libskqp_jni") { # Not a skia_shared_library 2904*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":skia_private" ] 2905*c8dee2aaSAndroid Build Coastguard Worker testonly = true 2906*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/skqp/src/jni_skqp.cpp" ] 2907*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2908*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2909*c8dee2aaSAndroid Build Coastguard Worker ":skqp_lib", 2910*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 2911*c8dee2aaSAndroid Build Coastguard Worker ] 2912*c8dee2aaSAndroid Build Coastguard Worker libs = [ "android" ] 2913*c8dee2aaSAndroid Build Coastguard Worker } 2914*c8dee2aaSAndroid Build Coastguard Worker } 2915*c8dee2aaSAndroid Build Coastguard Worker if (is_android && skia_use_gl) { 2916*c8dee2aaSAndroid Build Coastguard Worker test_app("skottie_android") { 2917*c8dee2aaSAndroid Build Coastguard Worker is_shared_library = true 2918*c8dee2aaSAndroid Build Coastguard Worker 2919*c8dee2aaSAndroid Build Coastguard Worker sources = [ "platform_tools/android/apps/skottie/skottielib/src/main/cpp/native-lib.cpp" ] 2920*c8dee2aaSAndroid Build Coastguard Worker libs = [] 2921*c8dee2aaSAndroid Build Coastguard Worker 2922*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2923*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2924*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 2925*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 2926*c8dee2aaSAndroid Build Coastguard Worker "modules/skunicode", 2927*c8dee2aaSAndroid Build Coastguard Worker ] 2928*c8dee2aaSAndroid Build Coastguard Worker } 2929*c8dee2aaSAndroid Build Coastguard Worker 2930*c8dee2aaSAndroid Build Coastguard Worker test_app("jetski") { 2931*c8dee2aaSAndroid Build Coastguard Worker is_shared_library = true 2932*c8dee2aaSAndroid Build Coastguard Worker 2933*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2934*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Canvas.cpp", 2935*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/ColorFilters.cpp", 2936*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Gradients.cpp", 2937*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Image.cpp", 2938*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/ImageFilter.cpp", 2939*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/JetSki.cpp", 2940*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Matrix.cpp", 2941*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Paint.cpp", 2942*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Path.cpp", 2943*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/PathBuilder.cpp", 2944*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/RuntimeShaderBuilder.cpp", 2945*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Shader.cpp", 2946*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/SkottieAnimation.cpp", 2947*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Surface.cpp", 2948*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Surface.h", 2949*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/SurfaceThread.cpp", 2950*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/SurfaceThread.h", 2951*c8dee2aaSAndroid Build Coastguard Worker "modules/jetski/src/Utils.cpp", 2952*c8dee2aaSAndroid Build Coastguard Worker ] 2953*c8dee2aaSAndroid Build Coastguard Worker libs = [ 2954*c8dee2aaSAndroid Build Coastguard Worker "android", 2955*c8dee2aaSAndroid Build Coastguard Worker "jnigraphics", 2956*c8dee2aaSAndroid Build Coastguard Worker ] 2957*c8dee2aaSAndroid Build Coastguard Worker 2958*c8dee2aaSAndroid Build Coastguard Worker deps = [ 2959*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2960*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:skottie", 2961*c8dee2aaSAndroid Build Coastguard Worker "tools/window:window", 2962*c8dee2aaSAndroid Build Coastguard Worker ] 2963*c8dee2aaSAndroid Build Coastguard Worker } 2964*c8dee2aaSAndroid Build Coastguard Worker } 2965*c8dee2aaSAndroid Build Coastguard Worker 2966*c8dee2aaSAndroid Build Coastguard Worker if (is_ios && skia_enable_skottie) { 2967*c8dee2aaSAndroid Build Coastguard Worker group("skottie_ios") { 2968*c8dee2aaSAndroid Build Coastguard Worker deps = [ "tools/skottie_ios_app" ] 2969*c8dee2aaSAndroid Build Coastguard Worker } 2970*c8dee2aaSAndroid Build Coastguard Worker } 2971*c8dee2aaSAndroid Build Coastguard Worker 2972*c8dee2aaSAndroid Build Coastguard Worker test_lib("sk_app") { 2973*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ 2974*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 2975*c8dee2aaSAndroid Build Coastguard Worker ":skia", 2976*c8dee2aaSAndroid Build Coastguard Worker ] 2977*c8dee2aaSAndroid Build Coastguard Worker sources = [ 2978*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/Application.h", 2979*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/CommandSet.cpp", 2980*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/CommandSet.h", 2981*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/Window.cpp", 2982*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/Window.h", 2983*c8dee2aaSAndroid Build Coastguard Worker ] 2984*c8dee2aaSAndroid Build Coastguard Worker libs = [] 2985*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 2986*c8dee2aaSAndroid Build Coastguard Worker 2987*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 2988*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2989*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/android/Window_android.cpp", 2990*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/android/Window_android.h", 2991*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/android/main_android.cpp", 2992*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/android/surface_glue_android.cpp", 2993*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/android/surface_glue_android.h", 2994*c8dee2aaSAndroid Build Coastguard Worker ] 2995*c8dee2aaSAndroid Build Coastguard Worker libs += [ "android" ] 2996*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux) { 2997*c8dee2aaSAndroid Build Coastguard Worker sources += [ 2998*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/unix/Window_unix.cpp", 2999*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/unix/Window_unix.h", 3000*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/unix/keysym2ucs.c", 3001*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/unix/keysym2ucs.h", 3002*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/unix/main_unix.cpp", 3003*c8dee2aaSAndroid Build Coastguard Worker ] 3004*c8dee2aaSAndroid Build Coastguard Worker libs += [ 3005*c8dee2aaSAndroid Build Coastguard Worker "GL", # Used by raster window context, so cannot be behind skia_use_gl. 3006*c8dee2aaSAndroid Build Coastguard Worker "X11", 3007*c8dee2aaSAndroid Build Coastguard Worker ] 3008*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 3009*c8dee2aaSAndroid Build Coastguard Worker sources += [ 3010*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/win/Window_win.cpp", 3011*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/win/Window_win.h", 3012*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/win/main_win.cpp", 3013*c8dee2aaSAndroid Build Coastguard Worker ] 3014*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 3015*c8dee2aaSAndroid Build Coastguard Worker sources += [ 3016*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/mac/Window_mac.h", 3017*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/mac/Window_mac.mm", 3018*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/mac/main_mac.mm", 3019*c8dee2aaSAndroid Build Coastguard Worker ] 3020*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ 3021*c8dee2aaSAndroid Build Coastguard Worker "QuartzCore.framework", 3022*c8dee2aaSAndroid Build Coastguard Worker "Cocoa.framework", 3023*c8dee2aaSAndroid Build Coastguard Worker "Foundation.framework", 3024*c8dee2aaSAndroid Build Coastguard Worker ] 3025*c8dee2aaSAndroid Build Coastguard Worker } else if (is_ios) { 3026*c8dee2aaSAndroid Build Coastguard Worker sources += [ 3027*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/ios/Window_ios.h", 3028*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/ios/Window_ios.mm", 3029*c8dee2aaSAndroid Build Coastguard Worker "tools/sk_app/ios/main_ios.mm", 3030*c8dee2aaSAndroid Build Coastguard Worker ] 3031*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "QuartzCore.framework" ] 3032*c8dee2aaSAndroid Build Coastguard Worker } 3033*c8dee2aaSAndroid Build Coastguard Worker 3034*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3035*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 3036*c8dee2aaSAndroid Build Coastguard Worker "tools/window", 3037*c8dee2aaSAndroid Build Coastguard Worker ] 3038*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 3039*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/native_app_glue" ] 3040*c8dee2aaSAndroid Build Coastguard Worker } 3041*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl && skia_use_angle) { 3042*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/angle2" ] 3043*c8dee2aaSAndroid Build Coastguard Worker } 3044*c8dee2aaSAndroid Build Coastguard Worker } 3045*c8dee2aaSAndroid Build Coastguard Worker 3046*c8dee2aaSAndroid Build Coastguard Worker if (!skia_use_vulkan && (is_mac || is_linux || is_win)) { 3047*c8dee2aaSAndroid Build Coastguard Worker test_app("fiddle_examples") { 3048*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3049*c8dee2aaSAndroid Build Coastguard Worker "tools/fiddle/all_examples.cpp", 3050*c8dee2aaSAndroid Build Coastguard Worker "tools/fiddle/examples.cpp", 3051*c8dee2aaSAndroid Build Coastguard Worker "tools/fiddle/examples.h", 3052*c8dee2aaSAndroid Build Coastguard Worker ] 3053*c8dee2aaSAndroid Build Coastguard Worker if (is_win) { 3054*c8dee2aaSAndroid Build Coastguard Worker cflags = [ 3055*c8dee2aaSAndroid Build Coastguard Worker "/wd4756", # Overflow in constant arithmetic 3056*c8dee2aaSAndroid Build Coastguard Worker "/wd4305", # truncation from 'double' to 'float' 3057*c8dee2aaSAndroid Build Coastguard Worker ] 3058*c8dee2aaSAndroid Build Coastguard Worker } 3059*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3060*c8dee2aaSAndroid Build Coastguard Worker ":skia", 3061*c8dee2aaSAndroid Build Coastguard Worker ":skia.h", 3062*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 3063*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph", 3064*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper", 3065*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3066*c8dee2aaSAndroid Build Coastguard Worker ] 3067*c8dee2aaSAndroid Build Coastguard Worker } 3068*c8dee2aaSAndroid Build Coastguard Worker } 3069*c8dee2aaSAndroid Build Coastguard Worker 3070*c8dee2aaSAndroid Build Coastguard Worker # sk_app can work without GL but viewer always runs raster through a GL window context. 3071*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 3072*c8dee2aaSAndroid Build Coastguard Worker test_app("viewer") { 3073*c8dee2aaSAndroid Build Coastguard Worker is_shared_library = is_android 3074*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3075*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/3DSlide.cpp", 3076*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AndroidShadowsSlide.cpp", 3077*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AnimBlurSlide.cpp", 3078*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AnimTimer.h", 3079*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AnimatedImageSlide.cpp", 3080*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AnimatedRectsSlide.cpp", 3081*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AnimatedTextSlide.cpp", 3082*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ArcSlide.cpp", 3083*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AtlasSlide.cpp", 3084*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/AudioSlide.cpp", 3085*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/BisectSlide.cpp", 3086*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/BisectSlide.h", 3087*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/CameraSlide.cpp", 3088*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ChartSlide.cpp", 3089*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ChineseFlingSlide.cpp", 3090*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ClickHandlerSlide.cpp", 3091*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ClickHandlerSlide.h", 3092*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ClipSlide.cpp", 3093*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ClockSlide.cpp", 3094*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/CowboySlide.cpp", 3095*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/DegenerateQuadsSlide.cpp", 3096*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/DegenerateTwoPtRadialsSlide.cpp", 3097*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/FatBitsSlide.cpp", 3098*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/FilterBoundsSlide.cpp", 3099*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/FitCubicToCircleSlide.cpp", 3100*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/FlutterAnimateSlide.cpp", 3101*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/GMSlide.cpp", 3102*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/GMSlide.h", 3103*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/GlyphTransformSlide.cpp", 3104*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/GradientsSlide.cpp", 3105*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/GraphitePrimitivesSlide.cpp", 3106*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ImGuiLayer.cpp", 3107*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ImGuiLayer.h", 3108*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ImageFilterDAGSlide.cpp", 3109*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ImageSlide.cpp", 3110*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ImageSlide.h", 3111*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/LayersSlide.cpp", 3112*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MSKPSlide.cpp", 3113*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MSKPSlide.h", 3114*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ManyRectsSlide.cpp", 3115*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MaterialShadowsSlide.cpp", 3116*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MegaStrokeSlide.cpp", 3117*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MeshGradientSlide.cpp", 3118*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MeshSlide.cpp", 3119*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MixerSlide.cpp", 3120*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/MotionMarkSlide.cpp", 3121*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PatchSlide.cpp", 3122*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathClipSlide.cpp", 3123*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathEffectsSlide.cpp", 3124*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathLerpSlide.cpp", 3125*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathOverstrokeSlide.cpp", 3126*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathSlide.cpp", 3127*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathTessellatorsSlide.cpp", 3128*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/PathTextSlide.cpp", 3129*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ProtectedSlide.cpp", 3130*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/QuadStrokerSlide.cpp", 3131*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/RectanizerSlide.cpp", 3132*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/RepeatTileSlide.cpp", 3133*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SBIXSlide.cpp", 3134*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SGSlide.cpp", 3135*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SKPSlide.cpp", 3136*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SKPSlide.h", 3137*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SVGFileSlide.cpp", 3138*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ShadowColorSlide.cpp", 3139*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ShadowReferenceSlide.cpp", 3140*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ShadowUtilsSlide.cpp", 3141*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ShipSlide.cpp", 3142*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SimpleStrokerSlide.cpp", 3143*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkSLDebuggerSlide.cpp", 3144*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkSLDebuggerSlide.h", 3145*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkSLSlide.cpp", 3146*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkSLSlide.h", 3147*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkottieSlide.cpp", 3148*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SkottieSlide.h", 3149*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/Slide.h", 3150*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SlideDir.cpp", 3151*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SlideDir.h", 3152*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SlidesSlide.cpp", 3153*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/StatsLayer.cpp", 3154*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/StatsLayer.h", 3155*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/StringArtSlide.cpp", 3156*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/StrokeVerbSlide.cpp", 3157*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SvgSlide.cpp", 3158*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/SvgSlide.h", 3159*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TextBoxSlide.cpp", 3160*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TextureUploadSlide.cpp", 3161*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/ThinAASlide.cpp", 3162*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TimingSlide.cpp", 3163*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TouchGesture.cpp", 3164*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TouchGesture.h", 3165*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/TypefaceSlide.cpp", 3166*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/VariableWidthStrokerSlide.cpp", 3167*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/Viewer.cpp", 3168*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/Viewer.h", 3169*c8dee2aaSAndroid Build Coastguard Worker "tools/viewer/XferSlide.cpp", 3170*c8dee2aaSAndroid Build Coastguard Worker ] 3171*c8dee2aaSAndroid Build Coastguard Worker libs = [] 3172*c8dee2aaSAndroid Build Coastguard Worker 3173*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3174*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_config", 3175*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_gpu", 3176*c8dee2aaSAndroid Build Coastguard Worker ":common_flags_graphite", 3177*c8dee2aaSAndroid Build Coastguard Worker ":flags", 3178*c8dee2aaSAndroid Build Coastguard Worker ":gm", 3179*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 3180*c8dee2aaSAndroid Build Coastguard Worker ":sk_app", 3181*c8dee2aaSAndroid Build Coastguard Worker ":skia", 3182*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 3183*c8dee2aaSAndroid Build Coastguard Worker ":trace", 3184*c8dee2aaSAndroid Build Coastguard Worker ":xml", 3185*c8dee2aaSAndroid Build Coastguard Worker "modules/audioplayer", 3186*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie", 3187*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:utils", 3188*c8dee2aaSAndroid Build Coastguard Worker "modules/skparagraph:slides", 3189*c8dee2aaSAndroid Build Coastguard Worker "modules/sksg:slides", 3190*c8dee2aaSAndroid Build Coastguard Worker "modules/skshaper:skshaper", 3191*c8dee2aaSAndroid Build Coastguard Worker "modules/skunicode", 3192*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3193*c8dee2aaSAndroid Build Coastguard Worker "//third_party/delaunator", 3194*c8dee2aaSAndroid Build Coastguard Worker "//third_party/imgui", 3195*c8dee2aaSAndroid Build Coastguard Worker ] 3196*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 3197*c8dee2aaSAndroid Build Coastguard Worker deps += [ 3198*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/spirv-tools:spvtools", 3199*c8dee2aaSAndroid Build Coastguard Worker 3200*c8dee2aaSAndroid Build Coastguard Worker #spvtools depends on this but doesn't deps it in. 3201*c8dee2aaSAndroid Build Coastguard Worker "//third_party/externals/spirv-tools:spvtools_val", 3202*c8dee2aaSAndroid Build Coastguard Worker ] 3203*c8dee2aaSAndroid Build Coastguard Worker } 3204*c8dee2aaSAndroid Build Coastguard Worker } 3205*c8dee2aaSAndroid Build Coastguard Worker } 3206*c8dee2aaSAndroid Build Coastguard Worker 3207*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 3208*c8dee2aaSAndroid Build Coastguard Worker test_app("VulkanBasic") { 3209*c8dee2aaSAndroid Build Coastguard Worker # Bots and even devs may not have Vulkan headers, so put 3210*c8dee2aaSAndroid Build Coastguard Worker # include/third_party/vulkan on our path so they're always available. 3211*c8dee2aaSAndroid Build Coastguard Worker all_dependent_configs = [ 3212*c8dee2aaSAndroid Build Coastguard Worker ":use_skia_vulkan_headers", 3213*c8dee2aaSAndroid Build Coastguard Worker ":vulkan_memory_allocator", 3214*c8dee2aaSAndroid Build Coastguard Worker ] 3215*c8dee2aaSAndroid Build Coastguard Worker 3216*c8dee2aaSAndroid Build Coastguard Worker sources = [ "example/VulkanBasic.cpp" ] 3217*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestMemoryAllocator.h" ] 3218*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestMemoryAllocator.cpp" ] 3219*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestUtils.h" ] 3220*c8dee2aaSAndroid Build Coastguard Worker sources += [ "tools/gpu/vk/VkTestUtils.cpp" ] 3221*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3222*c8dee2aaSAndroid Build Coastguard Worker ":load_dynamic_library", 3223*c8dee2aaSAndroid Build Coastguard Worker ":skia", 3224*c8dee2aaSAndroid Build Coastguard Worker ] 3225*c8dee2aaSAndroid Build Coastguard Worker } 3226*c8dee2aaSAndroid Build Coastguard Worker } 3227*c8dee2aaSAndroid Build Coastguard Worker 3228*c8dee2aaSAndroid Build Coastguard Worker if (is_ios && skia_use_metal && skia_enable_ganesh) { 3229*c8dee2aaSAndroid Build Coastguard Worker group("minimal_ios_mtl_skia_app") { 3230*c8dee2aaSAndroid Build Coastguard Worker deps = [ "experimental/minimal_ios_mtl_skia_app" ] 3231*c8dee2aaSAndroid Build Coastguard Worker } 3232*c8dee2aaSAndroid Build Coastguard Worker } 3233*c8dee2aaSAndroid Build Coastguard Worker 3234*c8dee2aaSAndroid Build Coastguard Worker if (is_linux || is_win || is_mac) { 3235*c8dee2aaSAndroid Build Coastguard Worker test_app("editor") { 3236*c8dee2aaSAndroid Build Coastguard Worker is_shared_library = is_android 3237*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skplaintexteditor:editor_app" ] 3238*c8dee2aaSAndroid Build Coastguard Worker } 3239*c8dee2aaSAndroid Build Coastguard Worker } 3240*c8dee2aaSAndroid Build Coastguard Worker 3241*c8dee2aaSAndroid Build Coastguard Worker skia_executable("image_diff_metric") { 3242*c8dee2aaSAndroid Build Coastguard Worker sources = [ "tools/image_diff_metric.cpp" ] 3243*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 3244*c8dee2aaSAndroid Build Coastguard Worker } 3245*c8dee2aaSAndroid Build Coastguard Worker 3246*c8dee2aaSAndroid Build Coastguard Worker group("modules_testonly") { 3247*c8dee2aaSAndroid Build Coastguard Worker testonly = true 3248*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3249*c8dee2aaSAndroid Build Coastguard Worker if (is_wasm) { 3250*c8dee2aaSAndroid Build Coastguard Worker deps += [ "modules/canvaskit:viewer_wasm" ] 3251*c8dee2aaSAndroid Build Coastguard Worker } 3252*c8dee2aaSAndroid Build Coastguard Worker } 3253*c8dee2aaSAndroid Build Coastguard Worker 3254*c8dee2aaSAndroid Build Coastguard Worker if (skia_build_fuzzers) { 3255*c8dee2aaSAndroid Build Coastguard Worker template("libfuzzer_app") { 3256*c8dee2aaSAndroid Build Coastguard Worker skia_executable(target_name) { 3257*c8dee2aaSAndroid Build Coastguard Worker output_dir = root_build_dir 3258*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 3259*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, "*", [ "is_shared_library" ]) 3260*c8dee2aaSAndroid Build Coastguard Worker if (!defined(configs)) { 3261*c8dee2aaSAndroid Build Coastguard Worker configs = [] 3262*c8dee2aaSAndroid Build Coastguard Worker } 3263*c8dee2aaSAndroid Build Coastguard Worker configs += [ ":skia_private" ] 3264*c8dee2aaSAndroid Build Coastguard Worker sources += [ 3265*c8dee2aaSAndroid Build Coastguard Worker "fuzz/Fuzz.cpp", 3266*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCommon.cpp", 3267*c8dee2aaSAndroid Build Coastguard Worker ] 3268*c8dee2aaSAndroid Build Coastguard Worker deps += [ 3269*c8dee2aaSAndroid Build Coastguard Worker ":flags", 3270*c8dee2aaSAndroid Build Coastguard Worker ":gpu_tool_utils", 3271*c8dee2aaSAndroid Build Coastguard Worker ":skia", 3272*c8dee2aaSAndroid Build Coastguard Worker ":tool_utils", 3273*c8dee2aaSAndroid Build Coastguard Worker ] 3274*c8dee2aaSAndroid Build Coastguard Worker defines = [ 3275*c8dee2aaSAndroid Build Coastguard Worker "SK_BUILD_FOR_LIBFUZZER", 3276*c8dee2aaSAndroid Build Coastguard Worker "SK_BUILD_FOR_FUZZER", 3277*c8dee2aaSAndroid Build Coastguard Worker ] 3278*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_libfuzzer_defaults) { 3279*c8dee2aaSAndroid Build Coastguard Worker cflags = [ "-fsanitize=fuzzer" ] 3280*c8dee2aaSAndroid Build Coastguard Worker ldflags = [ "-fsanitize=fuzzer" ] 3281*c8dee2aaSAndroid Build Coastguard Worker } 3282*c8dee2aaSAndroid Build Coastguard Worker testonly = true 3283*c8dee2aaSAndroid Build Coastguard Worker } 3284*c8dee2aaSAndroid Build Coastguard Worker } 3285*c8dee2aaSAndroid Build Coastguard Worker 3286*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("region_deserialize") { 3287*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzRegionDeserialize.cpp" ] 3288*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3289*c8dee2aaSAndroid Build Coastguard Worker } 3290*c8dee2aaSAndroid Build Coastguard Worker 3291*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("image_filter_deserialize") { 3292*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp" ] 3293*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/svg" ] 3294*c8dee2aaSAndroid Build Coastguard Worker } 3295*c8dee2aaSAndroid Build Coastguard Worker 3296*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("region_set_path") { 3297*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzRegionSetPath.cpp" ] 3298*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3299*c8dee2aaSAndroid Build Coastguard Worker } 3300*c8dee2aaSAndroid Build Coastguard Worker 3301*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("textblob_deserialize") { 3302*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp" ] 3303*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/svg" ] 3304*c8dee2aaSAndroid Build Coastguard Worker } 3305*c8dee2aaSAndroid Build Coastguard Worker 3306*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("path_deserialize") { 3307*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzPathDeserialize.cpp" ] 3308*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3309*c8dee2aaSAndroid Build Coastguard Worker } 3310*c8dee2aaSAndroid Build Coastguard Worker 3311*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("image_decode") { 3312*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzImage.cpp" ] 3313*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3314*c8dee2aaSAndroid Build Coastguard Worker } 3315*c8dee2aaSAndroid Build Coastguard Worker 3316*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("animated_image_decode") { 3317*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzAnimatedImage.cpp" ] 3318*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3319*c8dee2aaSAndroid Build Coastguard Worker } 3320*c8dee2aaSAndroid Build Coastguard Worker 3321*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_create_ddl") { 3322*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3323*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCreateDDL.cpp", 3324*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzAPICreateDDL.cpp", 3325*c8dee2aaSAndroid Build Coastguard Worker ] 3326*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3327*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3328*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 3329*c8dee2aaSAndroid Build Coastguard Worker ] 3330*c8dee2aaSAndroid Build Coastguard Worker } 3331*c8dee2aaSAndroid Build Coastguard Worker 3332*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_draw_functions") { 3333*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3334*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzDrawFunctions.cpp", 3335*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzDrawFunctions.cpp", 3336*c8dee2aaSAndroid Build Coastguard Worker ] 3337*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3338*c8dee2aaSAndroid Build Coastguard Worker } 3339*c8dee2aaSAndroid Build Coastguard Worker 3340*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_ddl_threading") { 3341*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3342*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzDDLThreading.cpp", 3343*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzDDLThreading.cpp", 3344*c8dee2aaSAndroid Build Coastguard Worker ] 3345*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3346*c8dee2aaSAndroid Build Coastguard Worker } 3347*c8dee2aaSAndroid Build Coastguard Worker 3348*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_gradients") { 3349*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3350*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzGradients.cpp", 3351*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzGradients.cpp", 3352*c8dee2aaSAndroid Build Coastguard Worker ] 3353*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3354*c8dee2aaSAndroid Build Coastguard Worker } 3355*c8dee2aaSAndroid Build Coastguard Worker 3356*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_image_filter") { 3357*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3358*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 3359*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzAPIImageFilter.cpp", 3360*c8dee2aaSAndroid Build Coastguard Worker ] 3361*c8dee2aaSAndroid Build Coastguard Worker deps = [ "//third_party/libpng" ] 3362*c8dee2aaSAndroid Build Coastguard Worker } 3363*c8dee2aaSAndroid Build Coastguard Worker 3364*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_path_measure") { 3365*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3366*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPathMeasure.cpp", 3367*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPathMeasure.cpp", 3368*c8dee2aaSAndroid Build Coastguard Worker ] 3369*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3370*c8dee2aaSAndroid Build Coastguard Worker } 3371*c8dee2aaSAndroid Build Coastguard Worker 3372*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_pathop") { 3373*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3374*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPathop.cpp", 3375*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPathop.cpp", 3376*c8dee2aaSAndroid Build Coastguard Worker ] 3377*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3378*c8dee2aaSAndroid Build Coastguard Worker } 3379*c8dee2aaSAndroid Build Coastguard Worker 3380*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_triangulation") { 3381*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3382*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzTriangulation.cpp", 3383*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzTriangulation.cpp", 3384*c8dee2aaSAndroid Build Coastguard Worker ] 3385*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3386*c8dee2aaSAndroid Build Coastguard Worker } 3387*c8dee2aaSAndroid Build Coastguard Worker 3388*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_raster_n32_canvas") { 3389*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3390*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 3391*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp", 3392*c8dee2aaSAndroid Build Coastguard Worker ] 3393*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3394*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3395*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 3396*c8dee2aaSAndroid Build Coastguard Worker ] 3397*c8dee2aaSAndroid Build Coastguard Worker } 3398*c8dee2aaSAndroid Build Coastguard Worker 3399*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_regionop") { 3400*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3401*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzRegionOp.cpp", 3402*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzRegionOp.cpp", 3403*c8dee2aaSAndroid Build Coastguard Worker ] 3404*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3405*c8dee2aaSAndroid Build Coastguard Worker } 3406*c8dee2aaSAndroid Build Coastguard Worker 3407*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_ganesh) { 3408*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_mock_gpu_canvas") { 3409*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3410*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 3411*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp", 3412*c8dee2aaSAndroid Build Coastguard Worker ] 3413*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3414*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3415*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 3416*c8dee2aaSAndroid Build Coastguard Worker ] 3417*c8dee2aaSAndroid Build Coastguard Worker } 3418*c8dee2aaSAndroid Build Coastguard Worker } 3419*c8dee2aaSAndroid Build Coastguard Worker 3420*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite && skia_enable_precompile) { 3421*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_precompile") { 3422*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3423*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPrecompile.cpp", 3424*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPrecompile.cpp", 3425*c8dee2aaSAndroid Build Coastguard Worker ] 3426*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3427*c8dee2aaSAndroid Build Coastguard Worker } 3428*c8dee2aaSAndroid Build Coastguard Worker } 3429*c8dee2aaSAndroid Build Coastguard Worker 3430*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_null_canvas") { 3431*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3432*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 3433*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzNullCanvas.cpp", 3434*c8dee2aaSAndroid Build Coastguard Worker ] 3435*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3436*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3437*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 3438*c8dee2aaSAndroid Build Coastguard Worker ] 3439*c8dee2aaSAndroid Build Coastguard Worker } 3440*c8dee2aaSAndroid Build Coastguard Worker 3441*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_skparagraph") { 3442*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3443*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzSkParagraph.cpp", 3444*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzSkParagraph.cpp", 3445*c8dee2aaSAndroid Build Coastguard Worker ] 3446*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/skparagraph" ] 3447*c8dee2aaSAndroid Build Coastguard Worker } 3448*c8dee2aaSAndroid Build Coastguard Worker 3449*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_svg_canvas") { 3450*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3451*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCanvas.cpp", 3452*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzAPISVGCanvas.cpp", 3453*c8dee2aaSAndroid Build Coastguard Worker ] 3454*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3455*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3456*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libpng", 3457*c8dee2aaSAndroid Build Coastguard Worker ] 3458*c8dee2aaSAndroid Build Coastguard Worker } 3459*c8dee2aaSAndroid Build Coastguard Worker 3460*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("png_encoder") { 3461*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3462*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzEncoders.cpp", 3463*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPNGEncoder.cpp", 3464*c8dee2aaSAndroid Build Coastguard Worker ] 3465*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3466*c8dee2aaSAndroid Build Coastguard Worker } 3467*c8dee2aaSAndroid Build Coastguard Worker 3468*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("jpeg_encoder") { 3469*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3470*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzEncoders.cpp", 3471*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzJPEGEncoder.cpp", 3472*c8dee2aaSAndroid Build Coastguard Worker ] 3473*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3474*c8dee2aaSAndroid Build Coastguard Worker } 3475*c8dee2aaSAndroid Build Coastguard Worker 3476*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("webp_encoder") { 3477*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3478*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzEncoders.cpp", 3479*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzWEBPEncoder.cpp", 3480*c8dee2aaSAndroid Build Coastguard Worker ] 3481*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3482*c8dee2aaSAndroid Build Coastguard Worker } 3483*c8dee2aaSAndroid Build Coastguard Worker 3484*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skottie_json") { 3485*c8dee2aaSAndroid Build Coastguard Worker sources = [ "modules/skottie/fuzz/FuzzSkottieJSON.cpp" ] 3486*c8dee2aaSAndroid Build Coastguard Worker deps = [ 3487*c8dee2aaSAndroid Build Coastguard Worker "modules/skottie:skottie", 3488*c8dee2aaSAndroid Build Coastguard Worker "modules/svg", 3489*c8dee2aaSAndroid Build Coastguard Worker ] 3490*c8dee2aaSAndroid Build Coastguard Worker } 3491*c8dee2aaSAndroid Build Coastguard Worker 3492*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skjson") { 3493*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzJSON.cpp" ] 3494*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3495*c8dee2aaSAndroid Build Coastguard Worker } 3496*c8dee2aaSAndroid Build Coastguard Worker 3497*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("api_polyutils") { 3498*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3499*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzPolyUtils.cpp", 3500*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzPolyUtils.cpp", 3501*c8dee2aaSAndroid Build Coastguard Worker ] 3502*c8dee2aaSAndroid Build Coastguard Worker deps = [ ":skia" ] 3503*c8dee2aaSAndroid Build Coastguard Worker } 3504*c8dee2aaSAndroid Build Coastguard Worker 3505*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("android_codec") { 3506*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzAndroidCodec.cpp" ] 3507*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3508*c8dee2aaSAndroid Build Coastguard Worker } 3509*c8dee2aaSAndroid Build Coastguard Worker 3510*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("image_decode_incremental") { 3511*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzIncrementalImage.cpp" ] 3512*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3513*c8dee2aaSAndroid Build Coastguard Worker } 3514*c8dee2aaSAndroid Build Coastguard Worker 3515*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("sksl2glsl") { 3516*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp" ] 3517*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3518*c8dee2aaSAndroid Build Coastguard Worker } 3519*c8dee2aaSAndroid Build Coastguard Worker 3520*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("sksl2metal") { 3521*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKSL2Metal.cpp" ] 3522*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3523*c8dee2aaSAndroid Build Coastguard Worker } 3524*c8dee2aaSAndroid Build Coastguard Worker 3525*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("sksl2pipeline") { 3526*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp" ] 3527*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3528*c8dee2aaSAndroid Build Coastguard Worker } 3529*c8dee2aaSAndroid Build Coastguard Worker 3530*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("sksl2spirv") { 3531*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp" ] 3532*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3533*c8dee2aaSAndroid Build Coastguard Worker } 3534*c8dee2aaSAndroid Build Coastguard Worker 3535*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("sksl2wgsl") { 3536*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKSL2WGSL.cpp" ] 3537*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3538*c8dee2aaSAndroid Build Coastguard Worker } 3539*c8dee2aaSAndroid Build Coastguard Worker 3540*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skdescriptor_deserialize") { 3541*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSkDescriptorDeserialize.cpp" ] 3542*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3543*c8dee2aaSAndroid Build Coastguard Worker } 3544*c8dee2aaSAndroid Build Coastguard Worker 3545*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("svg_dom") { 3546*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSVG.cpp" ] 3547*c8dee2aaSAndroid Build Coastguard Worker deps = [ "modules/svg" ] 3548*c8dee2aaSAndroid Build Coastguard Worker } 3549*c8dee2aaSAndroid Build Coastguard Worker 3550*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skruntimeblender") { 3551*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSkRuntimeBlender.cpp" ] 3552*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3553*c8dee2aaSAndroid Build Coastguard Worker } 3554*c8dee2aaSAndroid Build Coastguard Worker 3555*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skruntimecolorfilter") { 3556*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSkRuntimeColorFilter.cpp" ] 3557*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3558*c8dee2aaSAndroid Build Coastguard Worker } 3559*c8dee2aaSAndroid Build Coastguard Worker 3560*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skruntimeeffect") { 3561*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp" ] 3562*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3563*c8dee2aaSAndroid Build Coastguard Worker } 3564*c8dee2aaSAndroid Build Coastguard Worker 3565*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skmeshspecification") { 3566*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSkMeshSpecification.cpp" ] 3567*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3568*c8dee2aaSAndroid Build Coastguard Worker } 3569*c8dee2aaSAndroid Build Coastguard Worker 3570*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skp") { 3571*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzSKP.cpp" ] 3572*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3573*c8dee2aaSAndroid Build Coastguard Worker } 3574*c8dee2aaSAndroid Build Coastguard Worker 3575*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("colrv1") { 3576*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzCOLRv1.cpp" ] 3577*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3578*c8dee2aaSAndroid Build Coastguard Worker } 3579*c8dee2aaSAndroid Build Coastguard Worker 3580*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("quad_roots") { 3581*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3582*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzQuadRoots.cpp", 3583*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzQuadRoots.cpp", 3584*c8dee2aaSAndroid Build Coastguard Worker ] 3585*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3586*c8dee2aaSAndroid Build Coastguard Worker } 3587*c8dee2aaSAndroid Build Coastguard Worker 3588*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("cubic_roots") { 3589*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3590*c8dee2aaSAndroid Build Coastguard Worker "fuzz/FuzzCubicRoots.cpp", 3591*c8dee2aaSAndroid Build Coastguard Worker "fuzz/oss_fuzz/FuzzCubicRoots.cpp", 3592*c8dee2aaSAndroid Build Coastguard Worker ] 3593*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3594*c8dee2aaSAndroid Build Coastguard Worker } 3595*c8dee2aaSAndroid Build Coastguard Worker 3596*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("skcolorspace") { 3597*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzColorspace.cpp" ] 3598*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3599*c8dee2aaSAndroid Build Coastguard Worker } 3600*c8dee2aaSAndroid Build Coastguard Worker 3601*c8dee2aaSAndroid Build Coastguard Worker libfuzzer_app("parse_path") { 3602*c8dee2aaSAndroid Build Coastguard Worker sources = [ "fuzz/oss_fuzz/FuzzParsePath.cpp" ] 3603*c8dee2aaSAndroid Build Coastguard Worker deps = [] 3604*c8dee2aaSAndroid Build Coastguard Worker } 3605*c8dee2aaSAndroid Build Coastguard Worker } 3606*c8dee2aaSAndroid Build Coastguard Worker} 3607*c8dee2aaSAndroid Build Coastguard Worker 3608*c8dee2aaSAndroid Build Coastguard Workerif (skia_build_rust_targets) { 3609*c8dee2aaSAndroid Build Coastguard Worker action("rust_hello_world") { 3610*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 3611*c8dee2aaSAndroid Build Coastguard Worker sources = [ "experimental/rust_cxx/hello-world.rs" ] 3612*c8dee2aaSAndroid Build Coastguard Worker outputs = [ "$root_out_dir/rust_hello_world" ] 3613*c8dee2aaSAndroid Build Coastguard Worker args = [ 3614*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_cxx:rust_hello_world", 3615*c8dee2aaSAndroid Build Coastguard Worker "../../bazel-bin/experimental/rust_cxx/rust_hello_world", 3616*c8dee2aaSAndroid Build Coastguard Worker ] 3617*c8dee2aaSAndroid Build Coastguard Worker } 3618*c8dee2aaSAndroid Build Coastguard Worker 3619*c8dee2aaSAndroid Build Coastguard Worker action("cpp_with_rust") { 3620*c8dee2aaSAndroid Build Coastguard Worker script = "gn/bazel_build.py" 3621*c8dee2aaSAndroid Build Coastguard Worker sources = [ 3622*c8dee2aaSAndroid Build Coastguard Worker "experimental/rust_cxx/hype-bridge.rs", 3623*c8dee2aaSAndroid Build Coastguard Worker "experimental/rust_cxx/main.cpp", 3624*c8dee2aaSAndroid Build Coastguard Worker ] 3625*c8dee2aaSAndroid Build Coastguard Worker outputs = [ "$root_out_dir/cpp_with_rust" ] 3626*c8dee2aaSAndroid Build Coastguard Worker args = [ 3627*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_cxx:cpp_with_rust", 3628*c8dee2aaSAndroid Build Coastguard Worker "../../bazel-bin/experimental/rust_cxx/cpp_with_rust", 3629*c8dee2aaSAndroid Build Coastguard Worker ] 3630*c8dee2aaSAndroid Build Coastguard Worker } 3631*c8dee2aaSAndroid Build Coastguard Worker} 3632