mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-01-31 00:35:19 +01:00
61 lines
2.1 KiB
Rust
61 lines
2.1 KiB
Rust
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
use std::{fs::write, path::PathBuf};
|
|
|
|
use anyhow::{Context, Result};
|
|
|
|
pub fn generate_gradle_files(project_dir: PathBuf) -> Result<()> {
|
|
let gradle_settings_path = project_dir.join("tauri.settings.gradle");
|
|
let app_build_gradle_path = project_dir.join("app").join("tauri.build.gradle.kts");
|
|
|
|
let mut gradle_settings =
|
|
"// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.\n".to_string();
|
|
let mut app_build_gradle = "// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
val implementation by configurations
|
|
dependencies {"
|
|
.to_string();
|
|
|
|
for (env, value) in std::env::vars_os() {
|
|
let env = env.to_string_lossy();
|
|
if env.starts_with("DEP_") && env.ends_with("_ANDROID_LIBRARY_PATH") {
|
|
let name_len = env.len() - "DEP_".len() - "_ANDROID_LIBRARY_PATH".len();
|
|
let mut plugin_name = env
|
|
.chars()
|
|
.skip("DEP_".len())
|
|
.take(name_len)
|
|
.collect::<String>()
|
|
.to_lowercase()
|
|
.replace('_', "-");
|
|
if plugin_name == "tauri" {
|
|
plugin_name = "tauri-android".into();
|
|
}
|
|
let plugin_path = PathBuf::from(value);
|
|
|
|
gradle_settings.push_str(&format!("include ':{plugin_name}'"));
|
|
gradle_settings.push('\n');
|
|
gradle_settings.push_str(&format!(
|
|
"project(':{plugin_name}').projectDir = new File({:?})",
|
|
tauri_utils::display_path(plugin_path)
|
|
));
|
|
gradle_settings.push('\n');
|
|
|
|
app_build_gradle.push('\n');
|
|
app_build_gradle.push_str(&format!(r#" implementation(project(":{plugin_name}"))"#));
|
|
}
|
|
}
|
|
|
|
app_build_gradle.push_str("\n}");
|
|
|
|
write(&gradle_settings_path, gradle_settings).context("failed to write tauri.settings.gradle")?;
|
|
|
|
write(&app_build_gradle_path, app_build_gradle)
|
|
.context("failed to write tauri.build.gradle.kts")?;
|
|
|
|
println!("cargo:rerun-if-changed={}", gradle_settings_path.display());
|
|
println!("cargo:rerun-if-changed={}", app_build_gradle_path.display());
|
|
|
|
Ok(())
|
|
}
|