mirror of
https://github.com/denoland/rusty_v8.git
synced 2024-11-21 15:04:33 -05:00
chore(build): do not install sysroot if doing native builds
This commit is contained in:
parent
a076d03990
commit
a3daf08d85
1 changed files with 48 additions and 45 deletions
93
build.rs
93
build.rs
|
@ -237,43 +237,45 @@ fn build_v8(is_asan: bool) {
|
||||||
gn_args.push(arg.to_string());
|
gn_args.push(arg.to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// cross-compilation setup
|
|
||||||
if target_arch == "aarch64" {
|
|
||||||
gn_args.push(r#"target_cpu="arm64""#.to_string());
|
|
||||||
gn_args.push("use_sysroot=true".to_string());
|
|
||||||
maybe_install_sysroot("arm64");
|
|
||||||
maybe_install_sysroot("amd64");
|
|
||||||
}
|
|
||||||
if target_arch == "arm" {
|
|
||||||
gn_args.push(r#"target_cpu="arm""#.to_string());
|
|
||||||
gn_args.push(r#"v8_target_cpu="arm""#.to_string());
|
|
||||||
gn_args.push("use_sysroot=true".to_string());
|
|
||||||
maybe_install_sysroot("i386");
|
|
||||||
maybe_install_sysroot("arm");
|
|
||||||
}
|
|
||||||
|
|
||||||
let target_triple = env::var("TARGET").unwrap();
|
let target_triple = env::var("TARGET").unwrap();
|
||||||
|
let host_triple = env::var("HOST").unwrap();
|
||||||
// check if the target triple describes a non-native environment
|
// check if the target triple describes a non-native environment
|
||||||
if target_triple != env::var("HOST").unwrap() && target_os == "android" {
|
if target_triple != host_triple {
|
||||||
let arch = if target_arch == "x86_64" {
|
let arch = match target_arch.as_str() {
|
||||||
"x64"
|
"x86_64" => {
|
||||||
} else if target_arch == "aarch64" {
|
maybe_install_sysroot("amd64");
|
||||||
"arm64"
|
|
||||||
} else {
|
|
||||||
"unknown"
|
|
||||||
};
|
|
||||||
if target_arch == "x86_64" {
|
|
||||||
maybe_install_sysroot("amd64");
|
|
||||||
}
|
|
||||||
gn_args.push(format!(r#"v8_target_cpu="{}""#, arch).to_string());
|
|
||||||
gn_args.push(format!(r#"target_cpu="{}""#, arch).to_string());
|
|
||||||
gn_args.push(r#"target_os="android""#.to_string());
|
|
||||||
gn_args.push("treat_warnings_as_errors=false".to_string());
|
|
||||||
gn_args.push("use_sysroot=true".to_string());
|
|
||||||
|
|
||||||
// NDK 23 and above removes libgcc entirely.
|
"x64"
|
||||||
// https://github.com/rust-lang/rust/pull/85806
|
}
|
||||||
if !Path::new("./third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++").exists() {
|
"aarch64" => {
|
||||||
|
maybe_install_sysroot("arm64");
|
||||||
|
maybe_install_sysroot("amd64");
|
||||||
|
|
||||||
|
"arm64"
|
||||||
|
}
|
||||||
|
"arm" => {
|
||||||
|
maybe_install_sysroot("i386");
|
||||||
|
maybe_install_sysroot("arm");
|
||||||
|
|
||||||
|
"arm"
|
||||||
|
}
|
||||||
|
_ => "unknown", // bring your own sysroot and set target_cpu variables
|
||||||
|
};
|
||||||
|
if arch != "unknown" {
|
||||||
|
gn_args.push(format!(r#"v8_target_cpu="{}""#, arch).to_string());
|
||||||
|
gn_args.push(format!(r#"target_cpu="{}""#, arch).to_string());
|
||||||
|
gn_args.push("use_sysroot=true".to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
if target_os == "android" {
|
||||||
|
// Android cross-build logic
|
||||||
|
gn_args.push(r#"target_os="android""#.to_string());
|
||||||
|
gn_args.push("treat_warnings_as_errors=false".to_string());
|
||||||
|
|
||||||
|
// NDK 23 and above removes libgcc entirely.
|
||||||
|
// https://github.com/rust-lang/rust/pull/85806
|
||||||
|
if !Path::new("./third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++").exists() {
|
||||||
assert!(Command::new("curl")
|
assert!(Command::new("curl")
|
||||||
.arg("-L")
|
.arg("-L")
|
||||||
.arg("-o").arg("./third_party/android-ndk-r26c-linux.zip")
|
.arg("-o").arg("./third_party/android-ndk-r26c-linux.zip")
|
||||||
|
@ -294,18 +296,19 @@ fn build_v8(is_asan: bool) {
|
||||||
fs::rename("./third_party/android-ndk-r26c", "./third_party/android_ndk").unwrap();
|
fs::rename("./third_party/android-ndk-r26c", "./third_party/android_ndk").unwrap();
|
||||||
fs::remove_file("./third_party/android-ndk-r26c-linux.zip").unwrap();
|
fs::remove_file("./third_party/android-ndk-r26c-linux.zip").unwrap();
|
||||||
}
|
}
|
||||||
static CHROMIUM_URI: &str = "https://chromium.googlesource.com";
|
static CHROMIUM_URI: &str = "https://chromium.googlesource.com";
|
||||||
maybe_clone_repo(
|
maybe_clone_repo(
|
||||||
"./third_party/android_platform",
|
"./third_party/android_platform",
|
||||||
&format!(
|
&format!(
|
||||||
"{}/chromium/src/third_party/android_platform.git",
|
"{}/chromium/src/third_party/android_platform.git",
|
||||||
CHROMIUM_URI
|
CHROMIUM_URI
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
maybe_clone_repo(
|
maybe_clone_repo(
|
||||||
"./third_party/catapult",
|
"./third_party/catapult",
|
||||||
&format!("{}/catapult.git", CHROMIUM_URI),
|
&format!("{}/catapult.git", CHROMIUM_URI),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target_triple.starts_with("i686-") {
|
if target_triple.starts_with("i686-") {
|
||||||
|
|
Loading…
Reference in a new issue