load("//bazel:flags.bzl", "bool_flag") load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs") package( default_applicable_licenses = ["//:license"], ) licenses(["notice"]) exports_files_legacy() CORE_FILES = [ "GrGLAssembleGLESInterfaceAutogen.cpp", "GrGLAssembleGLInterfaceAutogen.cpp", "GrGLAssembleHelpers.cpp", "GrGLAssembleInterface.cpp", "GrGLAssembleWebGLInterfaceAutogen.cpp", "GrGLAttachment.cpp", "GrGLAttachment.h", "GrGLBuffer.cpp", "GrGLBuffer.h", "GrGLCaps.cpp", "GrGLCaps.h", "GrGLContext.cpp", "GrGLContext.h", "GrGLCoreFunctions.h", "GrGLDefines.h", "GrGLDirectContext.cpp", "GrGLExtensions.cpp", "GrGLBackendSurface.cpp", "GrGLBackendSurfacePriv.h", "GrGLFinishCallbacks.cpp", "GrGLFinishCallbacks.h", "GrGLGLSL.cpp", "GrGLGLSL.h", "GrGLGpu.cpp", "GrGLGpu.h", "GrGLGpuProgramCache.cpp", "GrGLInterfaceAutogen.cpp", "GrGLOpsRenderPass.cpp", "GrGLOpsRenderPass.h", "GrGLProgram.cpp", "GrGLProgram.h", "GrGLProgramDataManager.cpp", "GrGLProgramDataManager.h", "GrGLRenderTarget.cpp", "GrGLRenderTarget.h", "GrGLSemaphore.cpp", "GrGLSemaphore.h", "GrGLTexture.cpp", "GrGLTexture.h", "GrGLTextureRenderTarget.cpp", "GrGLTextureRenderTarget.h", "GrGLTypesPriv.cpp", "GrGLTypesPriv.h", "GrGLUniformHandler.cpp", "GrGLUniformHandler.h", "GrGLUtil.cpp", "GrGLUtil.h", "GrGLVaryingHandler.h", "GrGLVertexArray.cpp", "GrGLVertexArray.h", ] split_srcs_and_hdrs( name = "core", files = CORE_FILES, ) bool_flag( name = "enable_native_interface", default = True, ) # In own group for mapping to //gn/gpu.gni:skia_null_gpu_sources. skia_filegroup( name = "native_interface_none", srcs = ["GrGLMakeNativeInterface_none.cpp"], ) skia_filegroup( name = "native_interface", srcs = select({ "//bazel/common_config_settings:linux_x64": ["//src/gpu/ganesh/gl/glx:srcs"], "//bazel/common_config_settings:cpu_wasm": ["//src/gpu/ganesh/gl/webgl:srcs"], "@platforms//os:android": ["//src/gpu/ganesh/gl/egl:srcs"], "@platforms//os:ios": ["//src/gpu/ganesh/gl/iOS:srcs"], "@platforms//os:macos": ["//src/gpu/ganesh/gl/mac:srcs"], "@platforms//os:windows": ["//src/gpu/ganesh/gl/win:srcs"], "//conditions:default": [":native_interface_none"], }), ) skia_filegroup( name = "android_srcs", srcs = ["AHardwareBufferGL.cpp"], ) skia_filegroup( name = "srcs", srcs = [ ":android_srcs", ":core_srcs", "//src/gpu/ganesh/gl/builders:srcs", ] + select({ ":enable_native_interface_true": [":native_interface"], ":enable_native_interface_false": [":native_interface_none"], }), visibility = ["//src/gpu/ganesh:__pkg__"], ) skia_filegroup( name = "private_hdrs", srcs = [ ":core_hdrs", "//src/gpu/ganesh/gl/builders:private_hdrs", ], visibility = ["//src/gpu/ganesh:__pkg__"], ) skia_cc_deps( name = "deps", linkopts = select({ "@platforms//os:android": ["-lGLESv2"], "@platforms//os:linux": ["-lGL"], # TODO(kjlubick) need OpenGL32.lib for non-arm windows "//conditions:default": [], }), visibility = ["//src/gpu/ganesh:__pkg__"], ) skia_cc_library( name = "ganesh_gl", srcs = [ ":core_hdrs", ":core_srcs", "//src/gpu/ganesh/gl/builders:private_hdrs", "//src/gpu/ganesh/gl/builders:srcs", ], hdrs = [ "//include/gpu:ganesh_hdrs", "//include/gpu/ganesh:ganesh_hdrs", "//include/gpu/ganesh/gl:public_hdrs", "//include/gpu/gl:ganesh_gl_hdrs", ], defines = [ "SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE", "SK_GL", ], features = ["layering_check"], visibility = ["//:__pkg__"], deps = [ "//:core", "//src/base", "//src/core:core_priv", "//src/gpu", "//src/gpu/ganesh", "//src/sksl/codegen:glsl", ], ) skia_cc_library( name = "ganesh_gl_TEST_UTIL", testonly = True, srcs = [ ":core_hdrs", ":core_srcs", "//src/gpu/ganesh/gl/builders:private_hdrs", "//src/gpu/ganesh/gl/builders:srcs", ], hdrs = [ "//include/gpu:ganesh_hdrs", "//include/gpu/ganesh:ganesh_hdrs", "//include/gpu/ganesh/gl:public_hdrs", "//include/gpu/gl:ganesh_gl_hdrs", ], defines = [ "SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE", "GR_TEST_UTILS", "SK_GL", ], features = ["layering_check"], visibility = [ "//modules/skottie:__pkg__", "//tools:__subpackages__", ], deps = [ "//:core", "//src/base", "//src/core:core_priv", "//src/gpu", "//src/gpu/ganesh:ganesh_TEST_UTIL", "//src/sksl/codegen:glsl", ], ) generate_cpp_files_for_headers( name = "headers_to_compile", headers = [ "GrGLBackendSurfacePriv.h", ], )