| 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", |
| "Resources.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.h", |
| "SkMetaData.cpp", |
| ], |
| hdrs = [ |
| "ToolUtils.h", |
| ], |
| textual_hdrs = [ |
| "//tools/fonts:test_fonts", |
| ], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| "//:skia_internal", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "registry", |
| hdrs = ["Registry.h"], |
| visibility = ["//tests:__subpackages__"], |
| deps = ["//:skia_internal"], |
| ) |
| |
| 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 = "runtime_blend_utils", |
| srcs = ["RuntimeBlendUtils.cpp"], |
| hdrs = ["RuntimeBlendUtils.h"], |
| visibility = ["//tests:__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"], |
| ) |