Files
wehub-resource-sync 8a852e4b4e
cffconvert / validate (push) Has been skipped
License Check / license-check (push) Failing after 2s
chore: import upstream snapshot with attribution
2026-07-13 12:14:16 +08:00

143 lines
4.2 KiB
Python

# Copyright 2024 The OpenXLA Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
# copybara:comment_begin(oss-only)
load("@llvm_linux_x86_64//:version.bzl", _llvm_version = "VERSION")
load("@rules_shell//shell:sh_binary.bzl", "sh_binary")
load("@xla//third_party/rules_python/python:py_test.bzl", "py_test")
load("//xla:pytype.bzl", "pytype_strict_binary", "pytype_strict_library")
load("//xla/tsl:tsl.bzl", "if_oss")
_LLVM_REPO_NAME = "llvm{}_linux_x86_64".format(_llvm_version)
# copybara:comment_end_and_uncomment_begin
# _LLVM_REPO_NAME = ""
# copybara:uncomment_end
package(
# copybara:uncomment default_applicable_licenses = ["//tensorflow:license"],
licenses = ["notice"],
)
pytype_strict_binary(
name = "build",
srcs = ["build.py"],
)
pytype_strict_library(
name = "clang_tidy_diff_lib",
srcs = ["clang_tidy_diff.py"],
deps = [
"//build_tools/lint:diff_parser",
],
)
pytype_strict_binary(
name = "clang_tidy_diff",
srcs = ["clang_tidy_diff.py"],
data = if_oss([
":clang_apply_replacements_bin",
]),
main = "clang_tidy_diff.py",
deps = [
":clang_tidy_diff_lib",
],
)
py_test(
name = "clang_tidy_diff_test",
srcs = ["clang_tidy_diff_test.py"],
deps = [
":clang_tidy_diff_lib",
"@absl_py//absl/testing:absltest",
"@absl_py//absl/testing:parameterized",
],
)
genrule(
name = "generated_build_commands",
outs = ["generated_commands.txt"],
cmd = "$(location //build_tools/ci:build) --dump_commands > $(OUTS)",
tags = ["not_run:arm"],
tools = [":build"],
)
diff_test(
name = "build_command_golden_test",
failure_message = """Regenerate with `PYTHONDONTWRITEBYTECODE=1 python3 build.py --dump_commands > golden_commands.txt`.""",
file1 = "golden_commands.txt",
file2 = ":generated_build_commands",
tags = ["not_run:arm"],
)
sh_binary(
name = "parallel_gpu_execute",
srcs = ["parallel_gpu_execute.sh"],
)
# TODO: When upstream rules expose clang-tidy use that instead of explicitly creating one.
expand_template(
name = "generate_wrapper_script",
out = "clang_tidy_wrapper.sh",
substitutions = {
"%LLVM_REPO_NAME%": _LLVM_REPO_NAME,
},
template = "clang_tidy_wrapper.sh.tpl",
)
sh_binary(
name = "clang_tidy_bin",
srcs = [":generate_wrapper_script"],
data = [
# This not for g3. Only for running clang-tidy on CI/locally for OSS workflows.
"@{}//:all".format(_LLVM_REPO_NAME), # buildifier: disable=platform-specific-binaries
],
tags = [
"manual", # This binary only runs via explicit targeting.
"notap", # Not for g3.
],
visibility = ["//visibility:public"],
)
expand_template(
name = "generate_apply_replacements_wrapper_script",
out = "clang_apply_replacements_wrapper.sh",
substitutions = {
"%LLVM_REPO_NAME%": _LLVM_REPO_NAME,
},
template = "clang_apply_replacements_wrapper.sh.tpl",
)
sh_binary(
name = "clang_apply_replacements_bin",
srcs = [":generate_apply_replacements_wrapper_script"],
data = [
# This not for g3. Only for running clang-tidy on CI/locally for OSS workflows.
"@{}//:all".format(_LLVM_REPO_NAME), # buildifier: disable=platform-specific-binaries
],
tags = [
"manual", # This binary only runs via explicit targeting.
"notap", # Not for g3.
],
visibility = ["//visibility:public"],
)
sh_binary(
name = "run_clang_tidy",
srcs = ["run_clang_tidy.sh"],
)