mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04: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.
67 lines
1.6 KiB
Text
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"],
|
|
)
|