mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
146 lines
3.2 KiB
Text
146 lines
3.2 KiB
Text
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
|
load("@rules_python//python:defs.bzl", "py_library")
|
|
load("@py_deps//:requirements.bzl", "requirement")
|
|
load("//pylib:protobuf.bzl", "py_proto_library_typed")
|
|
load("@rules_python//experimental/python:wheel.bzl", "py_package", "py_wheel")
|
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
load("//:defs.bzl", "anki_version")
|
|
|
|
copy_file(
|
|
name = "buildinfo",
|
|
src = "//:buildinfo.txt",
|
|
out = "buildinfo.txt",
|
|
)
|
|
|
|
genrule(
|
|
name = "rsbackend_gen",
|
|
outs = ["rsbackend_gen.py"],
|
|
cmd = "$(location //pylib/tools:genbackend) > $@",
|
|
tools = ["//pylib/tools:genbackend"],
|
|
)
|
|
|
|
genrule(
|
|
name = "hooks_gen",
|
|
outs = ["hooks_gen.py"],
|
|
cmd = "$(location //pylib/tools:genhooks) $@",
|
|
tools = ["//pylib/tools:genhooks"],
|
|
)
|
|
|
|
py_proto_library_typed(
|
|
name = "backend_pb2",
|
|
src = "//rslib:backend.proto",
|
|
visibility = [
|
|
"//visibility:public",
|
|
],
|
|
)
|
|
|
|
py_proto_library_typed(
|
|
name = "fluent_pb2",
|
|
src = "//rslib:fluent.proto",
|
|
visibility = [
|
|
"//visibility:public",
|
|
],
|
|
)
|
|
|
|
copy_file(
|
|
name = "rsbridge_unix",
|
|
src = "//pylib/rsbridge",
|
|
out = "_rsbridge.so",
|
|
)
|
|
|
|
copy_file(
|
|
name = "rsbridge_win",
|
|
src = "//pylib/rsbridge",
|
|
out = "_rsbridge.pyd",
|
|
)
|
|
|
|
alias(
|
|
name = "rsbridge",
|
|
actual = selects.with_or({
|
|
(
|
|
"@io_bazel_rules_rust//rust/platform:x86_64-pc-windows-msvc",
|
|
): ":rsbridge_win",
|
|
"//conditions:default": ":rsbridge_unix",
|
|
}),
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
_py_srcs = glob(
|
|
["**/*.py"],
|
|
exclude = [
|
|
"rsbackend_gen.py",
|
|
"hooks_gen.py",
|
|
],
|
|
)
|
|
|
|
py_library(
|
|
name = "anki",
|
|
srcs = _py_srcs,
|
|
data = [
|
|
"py.typed",
|
|
":backend_pb2",
|
|
":buildinfo",
|
|
":fluent_pb2",
|
|
":hooks_gen",
|
|
":rsbackend_gen",
|
|
":rsbridge",
|
|
],
|
|
imports = [
|
|
"..",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
requirement("beautifulsoup4"),
|
|
requirement("decorator"),
|
|
requirement("distro"),
|
|
requirement("orjson"),
|
|
requirement("protobuf"),
|
|
requirement("requests"),
|
|
],
|
|
)
|
|
|
|
py_package(
|
|
name = "anki_pkg",
|
|
packages = ["pylib.anki"],
|
|
deps = [":anki"],
|
|
)
|
|
|
|
py_wheel(
|
|
name = "wheel",
|
|
abi = "abi3",
|
|
description_file = "wheel_description.txt",
|
|
distribution = "anki",
|
|
platform = select({
|
|
"//platforms:windows_x86_64": "win_amd64",
|
|
"//platforms:macos_x86_64": "macosx_10_7_x86_64",
|
|
"//platforms:linux_x86_64": "manylinux2014_x86_64",
|
|
"//platforms:linux_arm64": "manylinux2014_aarch64",
|
|
}),
|
|
python_tag = "cp38",
|
|
python_version = ">=3.8",
|
|
requires = [
|
|
"beautifulsoup4",
|
|
"requests[socks]",
|
|
"decorator",
|
|
"protobuf",
|
|
"orjson",
|
|
'psutil; sys_platform == "win32"',
|
|
'distro; sys_platform != "darwin" and sys_platform != "win32"',
|
|
],
|
|
strip_path_prefixes = [
|
|
"pylib/",
|
|
],
|
|
tags = ["manual"],
|
|
version = anki_version,
|
|
visibility = ["//visibility:public"],
|
|
deps = [":anki_pkg"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "py_source_files",
|
|
srcs = _py_srcs,
|
|
visibility = [
|
|
"//pylib:__subpackages__",
|
|
"//qt/po:__pkg__",
|
|
],
|
|
)
|