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

67 lines
1.6 KiB
Text

load("@io_bazel_rules_rust//rust:rust.bzl", "rust_library", "rust_test")
load("@bazel_skylib//lib:selects.bzl", "selects")
load("@io_bazel_rules_rust//cargo:cargo_build_script.bzl", "cargo_build_script")
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
cargo_build_script(
name = "build_script",
srcs = ["build.rs"],
)
rust_library(
name = "ankirspy_lib",
srcs = glob([
"src/**/*.rs",
]),
crate_type = "cdylib",
data = [
"//:buildinfo.txt",
],
rustc_flags = selects.with_or({
(
"@io_bazel_rules_rust//rust/platform:x86_64-apple-darwin",
): [
"-Clink-arg=-undefined",
"-Clink-arg=dynamic_lookup",
"-Clink-arg=-mmacosx-version-min=10.7",
],
"//conditions:default": [],
}),
deps = [
":build_script",
"//cargo:pyo3",
"//rslib:anki",
],
)
# a binary target so that test //rspy/... runs clippy
rust_test(
name = "rspy_test",
srcs = ["empty.rs"],
deps = [":ankirspy_lib"],
)
# rename lib file for Python
copy_file(
name = "ankirspy_unix",
src = ":ankirspy_lib",
out = "ankirspy.so",
)
copy_file(
name = "ankirspy_win",
src = ":ankirspy_lib",
out = "ankirspy.pyd",
)
alias(
name = "ankirspy",
actual = selects.with_or({
(
"@io_bazel_rules_rust//rust/platform:x86_64-pc-windows-msvc",
"@io_bazel_rules_rust//rust/platform:i686-pc-windows-msvc",
): ":ankirspy_win",
"//conditions:default": ":ankirspy_unix",
}),
visibility = ["//visibility:public"],
)