• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//bazel:flags.bzl", "bool_flag")
2load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10exports_files_legacy()
11
12CORE_FILES = [
13    "GrGLAssembleGLESInterfaceAutogen.cpp",
14    "GrGLAssembleGLInterfaceAutogen.cpp",
15    "GrGLAssembleHelpers.cpp",
16    "GrGLAssembleInterface.cpp",
17    "GrGLAssembleWebGLInterfaceAutogen.cpp",
18    "GrGLAttachment.cpp",
19    "GrGLAttachment.h",
20    "GrGLBuffer.cpp",
21    "GrGLBuffer.h",
22    "GrGLCaps.cpp",
23    "GrGLCaps.h",
24    "GrGLContext.cpp",
25    "GrGLContext.h",
26    "GrGLCoreFunctions.h",
27    "GrGLDefines.h",
28    "GrGLDirectContext.cpp",
29    "GrGLExtensions.cpp",
30    "GrGLBackendSurface.cpp",
31    "GrGLBackendSurfacePriv.h",
32    "GrGLFinishCallbacks.cpp",
33    "GrGLFinishCallbacks.h",
34    "GrGLGLSL.cpp",
35    "GrGLGLSL.h",
36    "GrGLGpu.cpp",
37    "GrGLGpu.h",
38    "GrGLGpuProgramCache.cpp",
39    "GrGLInterfaceAutogen.cpp",
40    "GrGLOpsRenderPass.cpp",
41    "GrGLOpsRenderPass.h",
42    "GrGLProgram.cpp",
43    "GrGLProgram.h",
44    "GrGLProgramDataManager.cpp",
45    "GrGLProgramDataManager.h",
46    "GrGLRenderTarget.cpp",
47    "GrGLRenderTarget.h",
48    "GrGLSemaphore.cpp",
49    "GrGLSemaphore.h",
50    "GrGLTexture.cpp",
51    "GrGLTexture.h",
52    "GrGLTextureRenderTarget.cpp",
53    "GrGLTextureRenderTarget.h",
54    "GrGLTypesPriv.cpp",
55    "GrGLTypesPriv.h",
56    "GrGLUniformHandler.cpp",
57    "GrGLUniformHandler.h",
58    "GrGLUtil.cpp",
59    "GrGLUtil.h",
60    "GrGLVaryingHandler.h",
61    "GrGLVertexArray.cpp",
62    "GrGLVertexArray.h",
63]
64
65split_srcs_and_hdrs(
66    name = "core",
67    files = CORE_FILES,
68)
69
70bool_flag(
71    name = "enable_native_interface",
72    default = True,
73)
74
75# In own group for mapping to //gn/gpu.gni:skia_null_gpu_sources.
76skia_filegroup(
77    name = "native_interface_none",
78    srcs = ["GrGLMakeNativeInterface_none.cpp"],
79)
80
81skia_filegroup(
82    name = "native_interface",
83    srcs = select({
84        "//bazel/common_config_settings:linux_x64": ["//src/gpu/ganesh/gl/glx:srcs"],
85        "//bazel/common_config_settings:cpu_wasm": ["//src/gpu/ganesh/gl/webgl:srcs"],
86        "@platforms//os:android": ["//src/gpu/ganesh/gl/egl:srcs"],
87        "@platforms//os:ios": ["//src/gpu/ganesh/gl/iOS:srcs"],
88        "@platforms//os:macos": ["//src/gpu/ganesh/gl/mac:srcs"],
89        "@platforms//os:windows": ["//src/gpu/ganesh/gl/win:srcs"],
90        "//conditions:default": [":native_interface_none"],
91    }),
92)
93
94skia_filegroup(
95    name = "android_srcs",
96    srcs = ["AHardwareBufferGL.cpp"],
97)
98
99skia_filegroup(
100    name = "srcs",
101    srcs = [
102        ":android_srcs",
103        ":core_srcs",
104        "//src/gpu/ganesh/gl/builders:srcs",
105    ] + select({
106        ":enable_native_interface_true": [":native_interface"],
107        ":enable_native_interface_false": [":native_interface_none"],
108    }),
109    visibility = ["//src/gpu/ganesh:__pkg__"],
110)
111
112skia_filegroup(
113    name = "private_hdrs",
114    srcs = [
115        ":core_hdrs",
116        "//src/gpu/ganesh/gl/builders:private_hdrs",
117    ],
118    visibility = ["//src/gpu/ganesh:__pkg__"],
119)
120
121skia_cc_deps(
122    name = "deps",
123    linkopts = select({
124        "@platforms//os:android": ["-lGLESv2"],
125        "@platforms//os:linux": ["-lGL"],
126        # TODO(kjlubick) need OpenGL32.lib for non-arm windows
127        "//conditions:default": [],
128    }),
129    visibility = ["//src/gpu/ganesh:__pkg__"],
130)
131
132skia_cc_library(
133    name = "ganesh_gl",
134    srcs = [
135        ":core_hdrs",
136        ":core_srcs",
137        "//src/gpu/ganesh/gl/builders:private_hdrs",
138        "//src/gpu/ganesh/gl/builders:srcs",
139    ],
140    hdrs = [
141        "//include/gpu:ganesh_hdrs",
142        "//include/gpu/ganesh:ganesh_hdrs",
143        "//include/gpu/ganesh/gl:public_hdrs",
144        "//include/gpu/gl:ganesh_gl_hdrs",
145    ],
146    defines = [
147        "SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE",
148        "SK_GL",
149    ],
150    features = ["layering_check"],
151    visibility = ["//:__pkg__"],
152    deps = [
153        "//:core",
154        "//src/base",
155        "//src/core:core_priv",
156        "//src/gpu",
157        "//src/gpu/ganesh",
158        "//src/sksl/codegen:glsl",
159    ],
160)
161
162skia_cc_library(
163    name = "ganesh_gl_TEST_UTIL",
164    testonly = True,
165    srcs = [
166        ":core_hdrs",
167        ":core_srcs",
168        "//src/gpu/ganesh/gl/builders:private_hdrs",
169        "//src/gpu/ganesh/gl/builders:srcs",
170    ],
171    hdrs = [
172        "//include/gpu:ganesh_hdrs",
173        "//include/gpu/ganesh:ganesh_hdrs",
174        "//include/gpu/ganesh/gl:public_hdrs",
175        "//include/gpu/gl:ganesh_gl_hdrs",
176    ],
177    defines = [
178        "SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE",
179        "GR_TEST_UTILS",
180        "SK_GL",
181    ],
182    features = ["layering_check"],
183    visibility = [
184        "//modules/skottie:__pkg__",
185        "//tools:__subpackages__",
186    ],
187    deps = [
188        "//:core",
189        "//src/base",
190        "//src/core:core_priv",
191        "//src/gpu",
192        "//src/gpu/ganesh:ganesh_TEST_UTIL",
193        "//src/sksl/codegen:glsl",
194    ],
195)
196
197generate_cpp_files_for_headers(
198    name = "headers_to_compile",
199    headers = [
200        "GrGLBackendSurfacePriv.h",
201    ],
202)
203