mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00

I noticed it when I looked at some files now used in AnkiDroid, wanting to be sure we clearly indicate that we have AGPLv3 code linked in the app
76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
# Copyright: Ankitects Pty Ltd and contributors
|
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
"""
|
|
Exposes a clang-format binary for formatting protobuf.
|
|
"""
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
|
load("@rules_python//python:defs.bzl", "py_test")
|
|
|
|
def _impl(rctx):
|
|
rctx.file("BUILD.bazel", """
|
|
alias(
|
|
name = "clang_format",
|
|
actual = select({
|
|
"@net_ankiweb_anki//platforms:windows_x86_64": "@clang_format_windows_x86_64//:clang-format.exe",
|
|
"@net_ankiweb_anki//platforms:macos_x86_64": "@clang_format_macos_x86_64//:clang-format",
|
|
"@net_ankiweb_anki//platforms:linux_x86_64": "@clang_format_linux_x86_64//:clang-format",
|
|
}),
|
|
visibility = ["//visibility:public"]
|
|
)
|
|
""")
|
|
|
|
_setup_clang_format = repository_rule(
|
|
attrs = {},
|
|
local = True,
|
|
implementation = _impl,
|
|
)
|
|
|
|
def setup_clang_format(name):
|
|
maybe(
|
|
http_archive,
|
|
name = "clang_format_macos_x86_64",
|
|
build_file_content = """exports_files(["clang-format"])""",
|
|
sha256 = "238be68d9478163a945754f06a213483473044f5a004c4125d3d9d8d3556466e",
|
|
urls = [
|
|
"https://github.com/ankitects/clang-format-binaries/releases/download/anki-2021-01-09/clang-format_macos_x86_64.zip",
|
|
],
|
|
)
|
|
|
|
maybe(
|
|
http_archive,
|
|
name = "clang_format_linux_x86_64",
|
|
build_file_content = """exports_files(["clang-format"])""",
|
|
sha256 = "64060bc4dbca30d0d96aab9344e2783008b16e1cae019a2532f1126ca5ec5449",
|
|
urls = [
|
|
"https://github.com/ankitects/clang-format-binaries/releases/download/anki-2021-01-09/clang-format_linux_x86_64.zip",
|
|
],
|
|
)
|
|
|
|
maybe(
|
|
http_archive,
|
|
name = "clang_format_windows_x86_64",
|
|
build_file_content = """exports_files(["clang-format.exe"])""",
|
|
sha256 = "7d9f6915e3f0fb72407830f0fc37141308d2e6915daba72987a52f309fbeaccc",
|
|
urls = [
|
|
"https://github.com/ankitects/clang-format-binaries/releases/download/anki-2021-01-09/clang-format_windows_x86_64.zip",
|
|
],
|
|
)
|
|
|
|
if not native.existing_rule(name):
|
|
_setup_clang_format(
|
|
name = name,
|
|
)
|
|
|
|
def proto_format(name, srcs, **kwargs):
|
|
py_test(
|
|
name = name,
|
|
srcs = [
|
|
"proto_format.py",
|
|
],
|
|
data = ["@clang_format//:clang_format"] + srcs,
|
|
args = ["$(location @clang_format//:clang_format)"] + [native.package_name() + "/" + f for f in srcs],
|
|
**kwargs
|
|
)
|