Anki/qt/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

136 lines
2.5 KiB
Text

load("@rules_python//python:defs.bzl", "py_binary", "py_test")
load("@py_deps//:requirements.bzl", "requirement")
py_binary(
name = "genhooks_gui",
srcs = [
"tools/genhooks_gui.py",
],
imports = ["."],
visibility = [":__subpackages__"],
deps = [
"//pylib:hookslib",
requirement("black"),
requirement("stringcase"),
],
)
py_binary(
name = "extract_sass_colors",
srcs = [
"tools/extract_sass_colors.py",
],
imports = ["."],
visibility = [":__subpackages__"],
)
py_test(
name = "pytest",
srcs = glob(["tests/*.py"]),
data = [
"//qt/aqt_data",
"//rspy:ankirspy",
],
main = "tests/run_pytest.py",
deps = [
"//pylib/anki",
"//qt/aqt",
requirement("pytest"),
requirement("mock"),
],
)
py_test(
name = "mypy",
srcs = [
"tests/run_mypy.py",
],
args = [
"aqt",
"$(location mypy.ini)",
"$(location @pyqt5//:__init__.py)",
],
data = [
"mypy.ini",
"@pyqt5//:__init__.py",
],
main = "tests/run_mypy.py",
deps = [
"//pylib/anki",
"//qt/aqt",
"@pyqt5//:pkg",
requirement("mypy"),
],
)
py_test(
name = "pylint",
srcs = [
"tests/run_pylint.py",
],
args = [
"aqt",
"$(location .pylintrc)",
"foo", #$(location PyQt5/__init__.py)",
],
data = [
".pylintrc",
# "PyQt5-stubs",
#"PyQt5/__init__.py",
],
main = "tests/run_pylint.py",
deps = [
"//pylib/anki",
"//qt/aqt",
requirement("pylint"),
"@pyqt5//:pkg",
],
)
py_test(
name = "format",
srcs = glob([
"**/*.py",
]),
args = [
"$(location .isort.cfg)",
],
data = [".isort.cfg"],
main = "tests/run_format.py",
deps = [
"//qt/aqt",
requirement("black"),
requirement("isort"),
],
)
py_binary(
name = "format_fix",
srcs = [
"tests/run_format.py",
],
args = [
"$(location .isort.cfg)",
"fix",
],
data = [".isort.cfg"],
main = "tests/run_format.py",
tags = ["manual"],
deps = [
requirement("black"),
requirement("isort"),
],
)
py_binary(
name = "runanki",
srcs = ["runanki.py"],
data = [
"//qt/aqt_data",
],
imports = ["."],
deps = [
"//pylib/anki",
"//qt/aqt",
],
)