anki/qt/aqt/BUILD.bazel
Damien Elmes aea0a6fcc6 initial Bazel conversion
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.
2020-11-01 14:26:58 +10:00

96 lines
2.2 KiB
Python

load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("@rules_python//python:defs.bzl", "py_library")
load("@py_deps//:requirements.bzl", "requirement")
copy_file(
name = "buildinfo",
src = "//:buildinfo.txt",
out = "buildinfo.txt",
)
genrule(
name = "hooks_gen",
outs = ["hooks_gen.py"],
cmd = "$(location //qt:genhooks_gui) $@",
tools = ["//qt:genhooks_gui"],
)
genrule(
name = "extract_sass_colors",
srcs = [
"//ts/sass:_vars.scss",
],
outs = ["colors.py"],
cmd = "$(location //qt:extract_sass_colors) $< $@",
tools = [
"//qt:extract_sass_colors",
],
)
py_library(
name = "aqt",
srcs = glob([
"**/*.py",
]) + [
"//qt/aqt/forms:forms",
"//qt/aqt/forms:icons",
],
data = [
"buildinfo.txt",
"colors.py",
"py.typed",
":hooks_gen",
],
imports = [
# "..",
"../../rspy",
],
visibility = ["//visibility:public"],
deps = [
requirement("protobuf"),
requirement("decorator"),
requirement("requests"),
requirement("beautifulsoup4"),
requirement("flask"),
requirement("flask-cors"),
requirement("waitress"),
requirement("send2trash"),
requirement("markdown"),
requirement("jsonschema"),
"@pyqt5//:pkg",
] + select({
"@bazel_tools//src/conditions:host_windows": [
requirement("psutil"),
requirement("pywin32"),
],
"//conditions:default": [],
}),
# requirement("pyaudio"),
# ... this is making pytest very slow..
# requirement("pyqt5"),
)
# py_package(
# name = "anki_pkg",
# # Only include these Python packages.
# # packages = ["anki"],
# deps = [":anki"],
# )
# py_wheel(
# name = "anki_whl",
# # Package data. We're building "example_minimal_package-0.0.1-py3-none-any.whl"
# distribution = "anki",
# python_tag = "py3",
# requires = [
# "ankirspy (==2.1.35)",
# "distro ; sys_platform != \"darwin\" and sys_platform != \"win32\"",
# ],
# strip_path_prefixes = [
# "pylib",
# # "foo3",
# ],
# version = "0.0.1",
# deps = [":anki_pkg"],
# )