mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 23:12:21 -04:00
62 lines
1.9 KiB
Rust
62 lines
1.9 KiB
Rust
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
use std::env;
|
|
use std::fs;
|
|
use std::process::Command;
|
|
|
|
use camino::Utf8PathBuf;
|
|
use clap::Args;
|
|
|
|
use crate::run::run_command;
|
|
|
|
#[derive(Args, Debug)]
|
|
pub struct BuildArtifactsArgs {
|
|
bundle_root: Utf8PathBuf,
|
|
pyoxidizer_bin: String,
|
|
}
|
|
|
|
pub fn build_artifacts(args: BuildArtifactsArgs) {
|
|
// build.rs doesn't declare inputs from venv, so we need to force a rebuild to
|
|
// ensure changes to our libs/the venv get included
|
|
let artifacts = args.bundle_root.join("artifacts");
|
|
if artifacts.exists() {
|
|
fs::remove_dir_all(&artifacts).unwrap();
|
|
}
|
|
let bundle_root = args.bundle_root.canonicalize_utf8().unwrap();
|
|
let build_folder = bundle_root.join("build");
|
|
if build_folder.exists() {
|
|
fs::remove_dir_all(&build_folder).unwrap();
|
|
}
|
|
|
|
run_command(
|
|
Command::new(&args.pyoxidizer_bin)
|
|
.args([
|
|
"--system-rust",
|
|
"run-build-script",
|
|
"qt/bundle/build.rs",
|
|
"--var",
|
|
"venv",
|
|
"out/bundle/pyenv",
|
|
"--var",
|
|
"build",
|
|
build_folder.as_str(),
|
|
])
|
|
.env("CARGO_MANIFEST_DIR", "qt/bundle")
|
|
.env("CARGO_TARGET_DIR", "out/bundle/rust")
|
|
.env("PROFILE", "release")
|
|
.env("OUT_DIR", &artifacts)
|
|
.env("TARGET", env!("TARGET"))
|
|
.env("SDKROOT", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk")
|
|
.env("MACOSX_DEPLOYMENT_TARGET", macos_deployment_target())
|
|
.env("CARGO_BUILD_TARGET", env!("TARGET")),
|
|
);
|
|
}
|
|
|
|
pub fn macos_deployment_target() -> &'static str {
|
|
if env!("TARGET") == "x86_64-apple-darwin" {
|
|
"10.13.4"
|
|
} else {
|
|
"11"
|
|
}
|
|
}
|