1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2023 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/skia.gni") 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerif (skia_use_dawn) { 9*c8dee2aaSAndroid Build Coastguard Worker import("//third_party/externals/dawn/scripts/dawn_features.gni") 10*c8dee2aaSAndroid Build Coastguard Worker} 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerconfig("public_config") { 13*c8dee2aaSAndroid Build Coastguard Worker defines = [] 14*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "." ] 15*c8dee2aaSAndroid Build Coastguard Worker} 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Workerskia_component("window") { 18*c8dee2aaSAndroid Build Coastguard Worker check_includes = false 19*c8dee2aaSAndroid Build Coastguard Worker testonly = true # For access to gpu_tool_utils. TODO: clean up 20*c8dee2aaSAndroid Build Coastguard Worker public_configs = [ ":public_config" ] 21*c8dee2aaSAndroid Build Coastguard Worker public = [ 22*c8dee2aaSAndroid Build Coastguard Worker "DisplayParams.h", 23*c8dee2aaSAndroid Build Coastguard Worker "WindowContext.h", 24*c8dee2aaSAndroid Build Coastguard Worker ] 25*c8dee2aaSAndroid Build Coastguard Worker sources = [ 26*c8dee2aaSAndroid Build Coastguard Worker "DisplayParams.h", 27*c8dee2aaSAndroid Build Coastguard Worker "RasterWindowContext.h", 28*c8dee2aaSAndroid Build Coastguard Worker "WindowContext.cpp", 29*c8dee2aaSAndroid Build Coastguard Worker "WindowContext.h", 30*c8dee2aaSAndroid Build Coastguard Worker ] 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Worker libs = [] 33*c8dee2aaSAndroid Build Coastguard Worker frameworks = [] 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 36*c8dee2aaSAndroid Build Coastguard Worker sources += [ 37*c8dee2aaSAndroid Build Coastguard Worker "android/RasterWindowContext_android.cpp", 38*c8dee2aaSAndroid Build Coastguard Worker "android/WindowContextFactory_android.h", 39*c8dee2aaSAndroid Build Coastguard Worker ] 40*c8dee2aaSAndroid Build Coastguard Worker libs += [ "android" ] 41*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux) { 42*c8dee2aaSAndroid Build Coastguard Worker sources += [ 43*c8dee2aaSAndroid Build Coastguard Worker "unix/RasterWindowContext_unix.cpp", 44*c8dee2aaSAndroid Build Coastguard Worker "unix/RasterWindowContext_unix.h", 45*c8dee2aaSAndroid Build Coastguard Worker "unix/XlibWindowInfo.h", 46*c8dee2aaSAndroid Build Coastguard Worker ] 47*c8dee2aaSAndroid Build Coastguard Worker libs += [ "X11" ] 48*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 49*c8dee2aaSAndroid Build Coastguard Worker sources += [ 50*c8dee2aaSAndroid Build Coastguard Worker "win/RasterWindowContext_win.cpp", 51*c8dee2aaSAndroid Build Coastguard Worker "win/WindowContextFactory_win.h", 52*c8dee2aaSAndroid Build Coastguard Worker ] 53*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 54*c8dee2aaSAndroid Build Coastguard Worker sources += [ "mac/MacWindowInfo.h" ] 55*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ 56*c8dee2aaSAndroid Build Coastguard Worker "QuartzCore.framework", 57*c8dee2aaSAndroid Build Coastguard Worker "Cocoa.framework", 58*c8dee2aaSAndroid Build Coastguard Worker "Foundation.framework", 59*c8dee2aaSAndroid Build Coastguard Worker ] 60*c8dee2aaSAndroid Build Coastguard Worker } else if (is_ios) { 61*c8dee2aaSAndroid Build Coastguard Worker sources += [ "ios/WindowContextFactory_ios.h" ] 62*c8dee2aaSAndroid Build Coastguard Worker frameworks += [ "QuartzCore.framework" ] 63*c8dee2aaSAndroid Build Coastguard Worker } 64*c8dee2aaSAndroid Build Coastguard Worker 65*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl) { 66*c8dee2aaSAndroid Build Coastguard Worker sources += [ 67*c8dee2aaSAndroid Build Coastguard Worker "GLWindowContext.cpp", 68*c8dee2aaSAndroid Build Coastguard Worker "GLWindowContext.h", 69*c8dee2aaSAndroid Build Coastguard Worker ] 70*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_angle) { 71*c8dee2aaSAndroid Build Coastguard Worker sources += [ "ANGLEWindowContext.cpp" ] 72*c8dee2aaSAndroid Build Coastguard Worker } 73*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 74*c8dee2aaSAndroid Build Coastguard Worker sources += [ "android/GLWindowContext_android.cpp" ] 75*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux) { 76*c8dee2aaSAndroid Build Coastguard Worker sources += [ 77*c8dee2aaSAndroid Build Coastguard Worker "unix/GaneshGLWindowContext_unix.cpp", 78*c8dee2aaSAndroid Build Coastguard Worker "unix/GaneshGLWindowContext_unix.h", 79*c8dee2aaSAndroid Build Coastguard Worker ] 80*c8dee2aaSAndroid Build Coastguard Worker libs += [ "GL" ] 81*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 82*c8dee2aaSAndroid Build Coastguard Worker sources += [ "win/GLWindowContext_win.cpp" ] 83*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_angle) { 84*c8dee2aaSAndroid Build Coastguard Worker sources += [ "win/ANGLEWindowContext_win.cpp" ] 85*c8dee2aaSAndroid Build Coastguard Worker } 86*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 87*c8dee2aaSAndroid Build Coastguard Worker sources += [ 88*c8dee2aaSAndroid Build Coastguard Worker # The Mac Raster implementation has a GL dependency 89*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshGLWindowContext_mac.h", 90*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshGLWindowContext_mac.mm", 91*c8dee2aaSAndroid Build Coastguard Worker "mac/MacWindowGLUtils.h", 92*c8dee2aaSAndroid Build Coastguard Worker "mac/RasterWindowContext_mac.h", 93*c8dee2aaSAndroid Build Coastguard Worker "mac/RasterWindowContext_mac.mm", 94*c8dee2aaSAndroid Build Coastguard Worker ] 95*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_angle) { 96*c8dee2aaSAndroid Build Coastguard Worker sources += [ 97*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshANGLEWindowContext_mac.h", 98*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshANGLEWindowContext_mac.mm", 99*c8dee2aaSAndroid Build Coastguard Worker "mac/MacWindowGLUtils.h", 100*c8dee2aaSAndroid Build Coastguard Worker ] 101*c8dee2aaSAndroid Build Coastguard Worker } 102*c8dee2aaSAndroid Build Coastguard Worker } else if (is_ios) { 103*c8dee2aaSAndroid Build Coastguard Worker sources += [ 104*c8dee2aaSAndroid Build Coastguard Worker "ios/GLWindowContext_ios.mm", 105*c8dee2aaSAndroid Build Coastguard Worker "ios/RasterWindowContext_ios.mm", 106*c8dee2aaSAndroid Build Coastguard Worker ] 107*c8dee2aaSAndroid Build Coastguard Worker } 108*c8dee2aaSAndroid Build Coastguard Worker } 109*c8dee2aaSAndroid Build Coastguard Worker 110*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_vulkan) { 111*c8dee2aaSAndroid Build Coastguard Worker sources += [ 112*c8dee2aaSAndroid Build Coastguard Worker "VulkanWindowContext.cpp", 113*c8dee2aaSAndroid Build Coastguard Worker "VulkanWindowContext.h", 114*c8dee2aaSAndroid Build Coastguard Worker ] 115*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 116*c8dee2aaSAndroid Build Coastguard Worker sources += [ 117*c8dee2aaSAndroid Build Coastguard Worker "GraphiteNativeVulkanWindowContext.cpp", 118*c8dee2aaSAndroid Build Coastguard Worker "GraphiteNativeVulkanWindowContext.h", 119*c8dee2aaSAndroid Build Coastguard Worker ] 120*c8dee2aaSAndroid Build Coastguard Worker } 121*c8dee2aaSAndroid Build Coastguard Worker if (is_android) { 122*c8dee2aaSAndroid Build Coastguard Worker sources += [ "android/VulkanWindowContext_android.cpp" ] 123*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 124*c8dee2aaSAndroid Build Coastguard Worker sources += [ "android/GraphiteVulkanWindowContext_android.cpp" ] 125*c8dee2aaSAndroid Build Coastguard Worker } 126*c8dee2aaSAndroid Build Coastguard Worker } else if (is_linux) { 127*c8dee2aaSAndroid Build Coastguard Worker sources += [ 128*c8dee2aaSAndroid Build Coastguard Worker "unix/GaneshVulkanWindowContext_unix.cpp", 129*c8dee2aaSAndroid Build Coastguard Worker "unix/GaneshVulkanWindowContext_unix.h", 130*c8dee2aaSAndroid Build Coastguard Worker ] 131*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 132*c8dee2aaSAndroid Build Coastguard Worker sources += [ 133*c8dee2aaSAndroid Build Coastguard Worker "unix/GraphiteNativeVulkanWindowContext_unix.cpp", 134*c8dee2aaSAndroid Build Coastguard Worker "unix/GraphiteNativeVulkanWindowContext_unix.h", 135*c8dee2aaSAndroid Build Coastguard Worker ] 136*c8dee2aaSAndroid Build Coastguard Worker } 137*c8dee2aaSAndroid Build Coastguard Worker libs += [ "X11-xcb" ] 138*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 139*c8dee2aaSAndroid Build Coastguard Worker sources += [ "win/VulkanWindowContext_win.cpp" ] 140*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 141*c8dee2aaSAndroid Build Coastguard Worker sources += [ "win/GraphiteVulkanWindowContext_win.cpp" ] 142*c8dee2aaSAndroid Build Coastguard Worker } 143*c8dee2aaSAndroid Build Coastguard Worker } 144*c8dee2aaSAndroid Build Coastguard Worker } 145*c8dee2aaSAndroid Build Coastguard Worker 146*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_metal) { 147*c8dee2aaSAndroid Build Coastguard Worker sources += [ 148*c8dee2aaSAndroid Build Coastguard Worker "MetalWindowContext.h", 149*c8dee2aaSAndroid Build Coastguard Worker "MetalWindowContext.mm", 150*c8dee2aaSAndroid Build Coastguard Worker ] 151*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 152*c8dee2aaSAndroid Build Coastguard Worker sources += [ 153*c8dee2aaSAndroid Build Coastguard Worker "GraphiteNativeMetalWindowContext.h", 154*c8dee2aaSAndroid Build Coastguard Worker "GraphiteNativeMetalWindowContext.mm", 155*c8dee2aaSAndroid Build Coastguard Worker ] 156*c8dee2aaSAndroid Build Coastguard Worker } 157*c8dee2aaSAndroid Build Coastguard Worker if (is_mac) { 158*c8dee2aaSAndroid Build Coastguard Worker sources += [ 159*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshMetalWindowContext_mac.h", 160*c8dee2aaSAndroid Build Coastguard Worker "mac/GaneshMetalWindowContext_mac.mm", 161*c8dee2aaSAndroid Build Coastguard Worker ] 162*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 163*c8dee2aaSAndroid Build Coastguard Worker sources += [ 164*c8dee2aaSAndroid Build Coastguard Worker "mac/GraphiteNativeMetalWindowContext_mac.h", 165*c8dee2aaSAndroid Build Coastguard Worker "mac/GraphiteNativeMetalWindowContext_mac.mm", 166*c8dee2aaSAndroid Build Coastguard Worker ] 167*c8dee2aaSAndroid Build Coastguard Worker } 168*c8dee2aaSAndroid Build Coastguard Worker } else if (is_ios) { 169*c8dee2aaSAndroid Build Coastguard Worker sources += [ "ios/MetalWindowContext_ios.mm" ] 170*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 171*c8dee2aaSAndroid Build Coastguard Worker sources += [ "ios/GraphiteMetalWindowContext_ios.mm" ] 172*c8dee2aaSAndroid Build Coastguard Worker } 173*c8dee2aaSAndroid Build Coastguard Worker } 174*c8dee2aaSAndroid Build Coastguard Worker } 175*c8dee2aaSAndroid Build Coastguard Worker 176*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_direct3d) { 177*c8dee2aaSAndroid Build Coastguard Worker sources += [ "win/D3D12WindowContext_win.cpp" ] 178*c8dee2aaSAndroid Build Coastguard Worker } 179*c8dee2aaSAndroid Build Coastguard Worker 180*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_dawn) { 181*c8dee2aaSAndroid Build Coastguard Worker if (is_linux) { 182*c8dee2aaSAndroid Build Coastguard Worker if (dawn_enable_vulkan) { 183*c8dee2aaSAndroid Build Coastguard Worker defines = [ "VK_USE_PLATFORM_XCB_KHR" ] 184*c8dee2aaSAndroid Build Coastguard Worker libs += [ "X11-xcb" ] 185*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 186*c8dee2aaSAndroid Build Coastguard Worker sources += [ 187*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.cpp", 188*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.h", 189*c8dee2aaSAndroid Build Coastguard Worker "unix/GraphiteDawnVulkanWindowContext_unix.cpp", 190*c8dee2aaSAndroid Build Coastguard Worker "unix/GraphiteDawnVulkanWindowContext_unix.h", 191*c8dee2aaSAndroid Build Coastguard Worker ] 192*c8dee2aaSAndroid Build Coastguard Worker } 193*c8dee2aaSAndroid Build Coastguard Worker } 194*c8dee2aaSAndroid Build Coastguard Worker } else if (is_win) { 195*c8dee2aaSAndroid Build Coastguard Worker if (dawn_enable_d3d12 || dawn_enable_d3d11 || dawn_enable_vulkan) { 196*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 197*c8dee2aaSAndroid Build Coastguard Worker sources += [ 198*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.cpp", 199*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.h", 200*c8dee2aaSAndroid Build Coastguard Worker "win/GraphiteDawnD3D12WindowContext_win.cpp", 201*c8dee2aaSAndroid Build Coastguard Worker ] 202*c8dee2aaSAndroid Build Coastguard Worker } 203*c8dee2aaSAndroid Build Coastguard Worker } 204*c8dee2aaSAndroid Build Coastguard Worker } else if (is_mac) { 205*c8dee2aaSAndroid Build Coastguard Worker if (dawn_enable_metal) { 206*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_graphite) { 207*c8dee2aaSAndroid Build Coastguard Worker sources += [ 208*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.cpp", 209*c8dee2aaSAndroid Build Coastguard Worker "GraphiteDawnWindowContext.h", 210*c8dee2aaSAndroid Build Coastguard Worker "mac/GraphiteDawnMetalWindowContext_mac.h", 211*c8dee2aaSAndroid Build Coastguard Worker "mac/GraphiteDawnMetalWindowContext_mac.mm", 212*c8dee2aaSAndroid Build Coastguard Worker ] 213*c8dee2aaSAndroid Build Coastguard Worker } 214*c8dee2aaSAndroid Build Coastguard Worker } 215*c8dee2aaSAndroid Build Coastguard Worker } 216*c8dee2aaSAndroid Build Coastguard Worker } 217*c8dee2aaSAndroid Build Coastguard Worker 218*c8dee2aaSAndroid Build Coastguard Worker configs = [ "../../:skia_private" ] 219*c8dee2aaSAndroid Build Coastguard Worker deps = [ 220*c8dee2aaSAndroid Build Coastguard Worker "../..:gpu_tool_utils", 221*c8dee2aaSAndroid Build Coastguard Worker "../..:skia", 222*c8dee2aaSAndroid Build Coastguard Worker ] 223*c8dee2aaSAndroid Build Coastguard Worker 224*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_gl && skia_use_angle) { 225*c8dee2aaSAndroid Build Coastguard Worker deps += [ "//third_party/angle2" ] 226*c8dee2aaSAndroid Build Coastguard Worker } 227*c8dee2aaSAndroid Build Coastguard Worker} 228