blob: b0c4f156ccf4b54708f6caec6fb4d4f0f496b02e [file] [log] [blame]
load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_library", "skia_objc_library")
load("//bazel:macros.bzl", "py_binary")
licenses(["notice"])
exports_files_legacy()
skia_cc_library(
name = "tool_utils",
testonly = True,
srcs = [
"Resources.cpp",
"ToolUtils.cpp",
"ResourceFactory.h",
"//tools/flags",
# TODO(kjlubick, bungeman): We should split out the font stuff into its own set of files
"//tools/fonts:test_font_manager_srcs",
"SkMetaData.cpp",
],
hdrs = [
"DecodeFile.h",
"Resources.h",
"SkMetaData.h",
"ToolUtils.h",
],
textual_hdrs = [
"//tools/fonts:test_fonts",
],
visibility = ["//:__subpackages__"],
deps = [
"//:skia_internal",
],
)
skia_cc_library(
name = "registry",
hdrs = ["Registry.h"],
visibility = [
"//gm:__pkg__",
"//tests:__subpackages__",
"//tools/viewer:__pkg__",
],
deps = ["//:skia_internal"],
)
skia_cc_library(
name = "hash_and_encode",
testonly = True,
srcs = [
"HashAndEncode.cpp",
"//tools/flags",
],
hdrs = ["HashAndEncode.h"],
visibility = ["//gm:__pkg__"],
deps = [
"//:skia_internal",
"@libpng",
],
)
py_binary(
name = "embed_resources",
srcs = ["embed_resources.py"],
visibility = ["//:__subpackages__"],
)
skia_cc_library(
name = "autorelease_pool",
hdrs = ["AutoreleasePool.h"],
visibility = ["//tools/gpu:__pkg__"],
)
skia_objc_library(
name = "autorelease_pool_objc",
srcs = ["AutoreleasePool.mm"],
hdrs = ["AutoreleasePool.h"],
visibility = ["//tools/gpu:__pkg__"],
)
skia_cc_library(
name = "url_data_manager",
srcs = ["UrlDataManager.cpp"],
hdrs = ["UrlDataManager.h"],
visibility = ["//tools/debugger:__pkg__"],
deps = ["//:skia_internal"],
)
skia_cc_library(
name = "sk_sharing_proc",
srcs = ["SkSharingProc.cpp"],
hdrs = ["SkSharingProc.h"],
visibility = ["//tools/debugger:__pkg__"],
deps = ["//:skia_internal"],
)
skia_cc_library(
name = "mskp_player",
srcs = ["MSKPPlayer.cpp"],
hdrs = ["MSKPPlayer.h"],
visibility = ["//tools/viewer:__pkg__"],
deps = [
":sk_sharing_proc",
"//:skia_internal",
],
)
skia_cc_library(
name = "runtime_blend_utils",
srcs = ["RuntimeBlendUtils.cpp"],
hdrs = ["RuntimeBlendUtils.h"],
visibility = [
"//tests:__pkg__",
"//tools/viewer:__pkg__",
],
deps = ["//:skia_internal"],
)
skia_cc_library(
name = "get_executable_path",
srcs = select({
"@platforms//os:windows": ["SkGetExecutablePath_win.cpp"],
"@platforms//os:macos": ["SkGetExecutablePath_mac.cpp"],
"@platforms//os:linux": ["SkGetExecutablePath_linux.cpp"],
}),
hdrs = ["SkGetExecutablePath.h"],
visibility = [
"//src/sksl:__pkg__",
"//tools/sksl-minify:__pkg__",
],
)
# Regenerate workarounds with `bazel run //tools:generate_workarounds`
py_binary(
name = "generate_workarounds",
srcs = [":generate_workarounds.py"],
args = [
"--output-file",
"include/gpu/GrDriverBugWorkaroundsAutogen.h",
"src/gpu/gpu_workaround_list.txt",
],
data = [
":build_workaround_header",
],
tags = ["no-remote"],
)
py_binary(
name = "build_workaround_header",
srcs = ["build_workaround_header.py"],
)
_GENERATE_WORKAROUNDS = """
import os
import subprocess
import sys
# https://bazel.build/docs/user-manual#running-executables
# Note: Bazel eats single quotes, so we must use double quotes.
os.chdir(os.environ["BUILD_WORKSPACE_DIRECTORY"])
# execpath returns the path to the given label relative to the Skia root.
# This will be something like:
# bazel-out/k8-opt-exec-81C6BA4F/bin/tools/build_workaround_header
# https://bazel.build/reference/be/make-variables#predefined_label_variables
generate_script = os.path.abspath("$(execpath :build_workaround_header)")
result = subprocess.run(
[generate_script] + sys.argv[1:], capture_output=True, encoding="utf-8")
if result.returncode != 0:
print(result.stdout)
print(result.stderr)
sys.exit(result.returncode)
"""
genrule(
name = "create_generate_workarounds_script",
outs = ["generate_workarounds.py"],
cmd = "echo '%s' > $@" % _GENERATE_WORKAROUNDS,
exec_tools = [":build_workaround_header"],
)