mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 20:57:13 -05:00
Running and testing should be working on the three platforms, but there's still a fair bit that needs to be done: - Wheel building + testing in a venv still needs to be implemented. - Python requirements still need to be compiled with piptool and pinned; need to compile on all platforms then merge - Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally unified into one place - Currently using rustls to work around openssl compilation issues on Linux, but this will break corporate proxies with custom SSL authorities; need to conditionally use openssl or use https://github.com/seanmonstar/reqwest/pull/1058 - Makefiles and docs still need cleaning up - It may make sense to reparent ts/* to the top level, as we don't nest the other modules under a specific language. - rspy and pylib must always be updated in lock-step, so merging rspy into pylib as a private module would simplify things. - Merging desktop-ftl and mobile-ftl into the core ftl would make managing and updating translations easier. - Obsolete scripts need removing. - And probably more.
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
load("@bazel_skylib//lib:paths.bzl", "paths")
|
|
|
|
def _py_proto_library_impl(ctx):
|
|
basename = ctx.file.src.basename
|
|
outs = [
|
|
ctx.actions.declare_file(paths.replace_extension(basename, "_pb2.py")),
|
|
ctx.actions.declare_file(paths.replace_extension(basename, "_pb2.pyi")),
|
|
]
|
|
ctx.actions.run(
|
|
outputs = outs,
|
|
inputs = [ctx.file.src],
|
|
executable = ctx.executable.protoc_wrapper,
|
|
arguments = [
|
|
ctx.executable.protoc.path,
|
|
ctx.executable.mypy_protobuf.path,
|
|
ctx.file.src.path,
|
|
paths.dirname(outs[0].path),
|
|
],
|
|
tools = [
|
|
ctx.executable.protoc,
|
|
ctx.executable.mypy_protobuf,
|
|
],
|
|
use_default_shell_env = True,
|
|
)
|
|
return [
|
|
DefaultInfo(files = depset(direct = outs), data_runfiles = ctx.runfiles(files = outs)),
|
|
]
|
|
|
|
py_proto_library_typed = rule(
|
|
implementation = _py_proto_library_impl,
|
|
attrs = {
|
|
"src": attr.label(allow_single_file = [".proto"]),
|
|
"protoc_wrapper": attr.label(
|
|
executable = True,
|
|
cfg = "exec",
|
|
default = Label("//proto:protoc_wrapper"),
|
|
),
|
|
"protoc": attr.label(
|
|
executable = True,
|
|
cfg = "host",
|
|
allow_files = True,
|
|
default = Label("@com_google_protobuf//:protoc"),
|
|
),
|
|
"mypy_protobuf": attr.label(
|
|
executable = True,
|
|
cfg = "exec",
|
|
default = Label("//proto:mypy_protobuf"),
|
|
),
|
|
},
|
|
)
|