#![cfg(feature = "android")]
use crossbundle_tools::{
commands::{android::*, gen_minimal_project},
types::*,
};
#[test]
fn add_bevy_libs() {
let tempdir = tempfile::tempdir().unwrap();
let project_path = tempdir.path();
let bevy_package_name = gen_minimal_project(project_path, false).unwrap();
let sdk = AndroidSdk::from_env().unwrap();
let ndk = AndroidNdk::from_env(sdk.sdk_path()).unwrap();
let build_target = AndroidTarget::Aarch64;
let profile = Profile::Release;
let target_sdk_version = 31;
let bevy_lib_name = format!("lib{}.so", bevy_package_name.replace('-', "_"));
let app_wrapper_for_bevy = AppWrapper::NdkGlue;
rust_compile(
&ndk,
build_target,
project_path,
profile,
vec![],
false,
false,
target_sdk_version,
&bevy_lib_name,
app_wrapper_for_bevy,
)
.unwrap();
println!("rust was compiled for bevy example");
let mut libs = Vec::new();
let out_dir = project_path
.join("target")
.join(build_target.rust_triple())
.join(profile.as_ref());
let bevy_compiled_lib = out_dir.join(bevy_lib_name);
assert!(bevy_compiled_lib.exists());
libs.push((bevy_compiled_lib, build_target));
for (compiled_lib, build_target) in libs {
let lib = add_libs_into_aapt2(
&ndk,
&compiled_lib,
build_target,
profile,
target_sdk_version,
&out_dir,
&project_path.join("target"),
&bevy_package_name,
)
.unwrap();
assert!(lib.exists());
println!("library saved in {:?}", lib);
for entry in std::fs::read_dir(&lib).unwrap() {
let library = entry.unwrap().path();
let size = std::fs::metadata(&library).unwrap().len();
println!("library size is {:?}", size);
}
}
}
#[test]
fn add_quad_libs() {
let tempdir = tempfile::tempdir().unwrap();
let project_path = tempdir.path();
let quad_package_name = gen_minimal_project(project_path, true).unwrap();
let sdk = AndroidSdk::from_env().unwrap();
let ndk = AndroidNdk::from_env(sdk.sdk_path()).unwrap();
let build_target = AndroidTarget::Aarch64;
let profile = Profile::Release;
let target_sdk_version = 31;
let quad_lib_name = format!("lib{}.so", quad_package_name.replace('-', "_"));
let app_wrapper_for_quad = AppWrapper::Quad;
rust_compile(
&ndk,
build_target,
project_path,
profile,
vec![],
false,
false,
target_sdk_version,
&quad_lib_name,
app_wrapper_for_quad,
)
.unwrap();
println!("rust was compiled for quad example");
let mut libs = Vec::new();
let out_dir = project_path
.join("target")
.join(build_target.rust_triple())
.join(profile.as_ref());
let quad_compiled_lib = out_dir.join(quad_lib_name);
assert!(quad_compiled_lib.exists());
libs.push((quad_compiled_lib, build_target));
for (compiled_lib, build_target) in libs {
let lib = add_libs_into_aapt2(
&ndk,
&compiled_lib,
build_target,
profile,
target_sdk_version,
&out_dir,
&project_path.join("target"),
&quad_package_name,
)
.unwrap();
assert!(lib.exists());
println!("library saved in {:?}", lib);
for entry in std::fs::read_dir(&lib).unwrap() {
let library = entry.unwrap().path();
let size = std::fs::metadata(&library).unwrap().len();
println!("library size is {:?}", size);
}
}
}