From ba7e2caf65caf7b8364fee2a8ee13675938f6542 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 18:13:02 +0200 Subject: [PATCH 1/8] Try to fix gradle build on windows --- crossbundle/cli/src/commands/build/android.rs | 9 +++++++++ .../src/commands/android/generate/gen_gradle_project.rs | 2 +- platform/android/java/app/build.gradle | 2 ++ .../lib/src/com/crossbow/library/plugin/SignalInfo.kt | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crossbundle/cli/src/commands/build/android.rs b/crossbundle/cli/src/commands/build/android.rs index 5585f1ac..cd7e0ebc 100644 --- a/crossbundle/cli/src/commands/build/android.rs +++ b/crossbundle/cli/src/commands/build/android.rs @@ -9,6 +9,7 @@ use crossbundle_tools::{ tools::*, types::*, utils::Config, + error::CommandExt, }; use std::path::{Path, PathBuf}; @@ -112,6 +113,14 @@ impl AndroidBuildCommand { "Gradle project generated", gradle_project_path.to_str().unwrap(), )?; + + config.status("Building Gradle project")?; + let mut gradle = android::gradle_init()?; + gradle + .arg("build") + .arg("-p") + .arg(dunce::simplified(&gradle_project_path)); + gradle.output_err(true)?; Ok((android_manifest, sdk, gradle_project_path)) } diff --git a/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs b/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs index 22bb5b0b..e2f7de2b 100644 --- a/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs +++ b/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs @@ -147,7 +147,7 @@ fn get_settings_gradle(dependencies: &[GradleDependencyProject]) -> Result) { require(!TextUtils.isEmpty(signalName)) { "Invalid signal name: $signalName" } name = signalName paramTypes = arrayOf(*argParamTypes) // ?: arrayOfNulls(0) - paramTypesNames = arrayOfNulls(paramTypes.size).filterNotNull().toTypedArray() + paramTypesNames = arrayOfNulls(paramTypes.size).toTypedArray() for (i in paramTypes.indices) { val tmp = JNIUtil.getJNIClassSignature(paramTypes[i]) if (tmp !== null) { From d38b877cec2a6db8d17037525d448cddf2fd7261 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 18:29:22 +0200 Subject: [PATCH 2/8] Fix windows path issue --- .../src/commands/android/generate/gen_gradle_project.rs | 4 ++-- .../java/lib/src/com/crossbow/library/plugin/SignalInfo.kt | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs b/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs index e2f7de2b..876c8d02 100644 --- a/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs +++ b/crossbundle/tools/src/commands/android/generate/gen_gradle_project.rs @@ -144,10 +144,10 @@ fn get_settings_gradle(dependencies: &[GradleDependencyProject]) -> Result) { require(!TextUtils.isEmpty(signalName)) { "Invalid signal name: $signalName" } name = signalName paramTypes = arrayOf(*argParamTypes) // ?: arrayOfNulls(0) - paramTypesNames = arrayOfNulls(paramTypes.size).toTypedArray() + val tmpArray = arrayOfNulls(paramTypes.size) for (i in paramTypes.indices) { val tmp = JNIUtil.getJNIClassSignature(paramTypes[i]) if (tmp !== null) { - paramTypesNames[i] = tmp + tmpArray[i] = tmp } } + paramTypesNames = tmpArray.filterNotNull().toTypedArray() } override fun toString(): String { From f140ce81025a462af137fbad4ca8abb2bc15137f Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 18:46:49 +0200 Subject: [PATCH 3/8] Try to fix android on windows --- .../lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt | 2 +- .../java/lib/src/com/crossbow/library/plugin/SignalInfo.kt | 2 +- platform/android/src/externs/mod.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt b/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt index c4ce0c0b..cd8ceb85 100644 --- a/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt +++ b/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt @@ -319,7 +319,7 @@ abstract class CrossbowPlugin( * Used to setup a [CrossbowPlugin] instance. * @param p_name Name of the instance. */ - private external fun nativeRegisterSingleton(p_name: String, `object`: Any) + private external fun nativeRegisterSingleton(p_name: String, p_obj: Any) /** * Used to complete registration of the [CrossbowPlugin] instance's methods. diff --git a/platform/android/java/lib/src/com/crossbow/library/plugin/SignalInfo.kt b/platform/android/java/lib/src/com/crossbow/library/plugin/SignalInfo.kt index 7c92107a..08b32bbe 100644 --- a/platform/android/java/lib/src/com/crossbow/library/plugin/SignalInfo.kt +++ b/platform/android/java/lib/src/com/crossbow/library/plugin/SignalInfo.kt @@ -17,7 +17,7 @@ class SignalInfo(signalName: String, vararg argParamTypes: Class<*>) { init { require(!TextUtils.isEmpty(signalName)) { "Invalid signal name: $signalName" } name = signalName - paramTypes = arrayOf(*argParamTypes) // ?: arrayOfNulls(0) + paramTypes = arrayOf(*argParamTypes) val tmpArray = arrayOfNulls(paramTypes.size) for (i in paramTypes.indices) { val tmp = JNIUtil.getJNIClassSignature(paramTypes[i]) diff --git a/platform/android/src/externs/mod.rs b/platform/android/src/externs/mod.rs index 6f167a87..79f59f6d 100644 --- a/platform/android/src/externs/mod.rs +++ b/platform/android/src/externs/mod.rs @@ -1,2 +1,2 @@ -pub(crate) mod crossbow_lib; -pub(crate) mod crossbow_plugin; +pub mod crossbow_lib; +pub mod crossbow_plugin; From 1b0b89ee51924995707cca84644ca0729b296ed5 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 19:08:33 +0200 Subject: [PATCH 4/8] Fix kotlin linking --- crossbundle/cli/src/commands/build/android.rs | 2 +- crossbundle/cli/src/commands/run/android.rs | 18 +++++++++++++++--- .../tools/src/commands/android/start_apk.rs | 4 ++-- .../src/com/crossbow/library/CrossbowLib.kt | 4 ++++ .../crossbow/library/plugin/CrossbowPlugin.kt | 4 ++++ 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/crossbundle/cli/src/commands/build/android.rs b/crossbundle/cli/src/commands/build/android.rs index cd7e0ebc..e19a3fff 100644 --- a/crossbundle/cli/src/commands/build/android.rs +++ b/crossbundle/cli/src/commands/build/android.rs @@ -6,10 +6,10 @@ use android_tools::java_tools::{AabKey, JarSigner}; use clap::Parser; use crossbundle_tools::{ commands::android::{self, rust_compile}, + error::CommandExt, tools::*, types::*, utils::Config, - error::CommandExt, }; use std::path::{Path, PathBuf}; diff --git a/crossbundle/cli/src/commands/run/android.rs b/crossbundle/cli/src/commands/run/android.rs index f5e08d9f..e1d2a30c 100644 --- a/crossbundle/cli/src/commands/run/android.rs +++ b/crossbundle/cli/src/commands/run/android.rs @@ -34,7 +34,11 @@ impl AndroidRunCommand { config.status("Installing APKs file")?; InstallApks::new(&apks_path).run()?; config.status("Starting APK file")?; - android::start_apk(&sdk, &android_manifest.package)?; + android::start_apk( + &sdk, + &android_manifest.package, + "android.app.NativeActivity", + )?; config.status("Run finished successfully")?; } else if self.build_command.lib.is_some() { config.status("Can not run dynamic library")?; @@ -45,7 +49,11 @@ impl AndroidRunCommand { config.status("Installing APK file")?; android::install_apk(&sdk, &apk_path)?; config.status("Starting APK file")?; - android::start_apk(&sdk, &android_manifest.package)?; + android::start_apk( + &sdk, + &android_manifest.package, + "android.app.NativeActivity", + )?; config.status("Run finished successfully")?; } else { let (android_manifest, sdk, gradle_project_path) = self.build_command.build_gradle( @@ -61,7 +69,11 @@ impl AndroidRunCommand { .arg(dunce::simplified(&gradle_project_path)); gradle.output_err(true)?; config.status("Starting APK file")?; - android::start_apk(&sdk, &android_manifest.package)?; + android::start_apk( + &sdk, + &android_manifest.package, + "com.crossbow.game.CrossbowApp", + )?; config.status("Run finished successfully")?; } Ok(()) diff --git a/crossbundle/tools/src/commands/android/start_apk.rs b/crossbundle/tools/src/commands/android/start_apk.rs index b80aeaea..160a225b 100644 --- a/crossbundle/tools/src/commands/android/start_apk.rs +++ b/crossbundle/tools/src/commands/android/start_apk.rs @@ -3,7 +3,7 @@ use crate::tools::AndroidSdk; /// Starts installed APK or AAB on emulator or connected device. /// Runs `adb shell am start ...` command -pub fn start_apk(sdk: &AndroidSdk, package: &str) -> Result<()> { +pub fn start_apk(sdk: &AndroidSdk, package: &str, activity: &str) -> Result<()> { let mut adb = sdk.platform_tool(bin!("adb"))?; adb.arg("shell") .arg("am") @@ -11,7 +11,7 @@ pub fn start_apk(sdk: &AndroidSdk, package: &str) -> Result<()> { .arg("-a") .arg("android.intent.action.MAIN") .arg("-n") - .arg(format!("{}/android.app.NativeActivity", package)); + .arg(format!("{}/activity", package, activity)); adb.output_err(true)?; Ok(()) } diff --git a/platform/android/java/lib/src/com/crossbow/library/CrossbowLib.kt b/platform/android/java/lib/src/com/crossbow/library/CrossbowLib.kt index 2ac57a64..a165e61b 100644 --- a/platform/android/java/lib/src/com/crossbow/library/CrossbowLib.kt +++ b/platform/android/java/lib/src/com/crossbow/library/CrossbowLib.kt @@ -15,6 +15,7 @@ object CrossbowLib { /** * Invoked on the main thread to initialize Godot native layer. */ + @JvmStatic external fun initialize( activity: Activity?, instance: Crossbow?, @@ -25,11 +26,13 @@ object CrossbowLib { // * Invoked on the main thread to clean up Godot native layer. // * @see androidx.fragment.app.Fragment.onDestroy // */ + // @JvmStatic // external fun ondestroy() // /** // * Forward [Activity.onBackPressed] event from the main thread to the GL thread. // */ + // @JvmStatic // external fun back() /** @@ -38,5 +41,6 @@ object CrossbowLib { * @param permission Request permission * @param result True if the permission was granted, false otherwise */ + @JvmStatic external fun requestPermissionResult(permission: String?, result: Boolean) } diff --git a/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt b/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt index cd8ceb85..c8d3a52e 100644 --- a/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt +++ b/platform/android/java/lib/src/com/crossbow/library/plugin/CrossbowPlugin.kt @@ -319,6 +319,7 @@ abstract class CrossbowPlugin( * Used to setup a [CrossbowPlugin] instance. * @param p_name Name of the instance. */ + @JvmStatic private external fun nativeRegisterSingleton(p_name: String, p_obj: Any) /** @@ -327,6 +328,7 @@ abstract class CrossbowPlugin( * @param p_name Name of the method to register * @param p_sig Signature of the registered method */ + @JvmStatic private external fun nativeRegisterMethod(p_sname: String, p_name: String, p_sig: String) /** @@ -335,6 +337,7 @@ abstract class CrossbowPlugin( * @param signalName Name of the signal to register * @param signalParamTypes Signal parameters types */ + @JvmStatic private external fun nativeRegisterSignal( pluginName: String, signalName: String, @@ -347,6 +350,7 @@ abstract class CrossbowPlugin( * @param signalName Name of the signal to emit * @param signalParams Signal parameters */ + @JvmStatic private external fun nativeEmitSignal( pluginName: String, signalName: String, From 5bfde4d1539951af509471f1a8ebe4f70a991e2f Mon Sep 17 00:00:00 2001 From: Adoka3710 Date: Mon, 18 Jul 2022 23:12:41 +0600 Subject: [PATCH 5/8] Fix format activity --- crossbundle/tools/src/commands/android/start_apk.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crossbundle/tools/src/commands/android/start_apk.rs b/crossbundle/tools/src/commands/android/start_apk.rs index 160a225b..50119048 100644 --- a/crossbundle/tools/src/commands/android/start_apk.rs +++ b/crossbundle/tools/src/commands/android/start_apk.rs @@ -11,7 +11,7 @@ pub fn start_apk(sdk: &AndroidSdk, package: &str, activity: &str) -> Result<()> .arg("-a") .arg("android.intent.action.MAIN") .arg("-n") - .arg(format!("{}/activity", package, activity)); + .arg(format!("{}/{}", package, activity)); adb.output_err(true)?; Ok(()) } From 088ecf58cdbbcaf1beb868fcd21a18106ab517b2 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 19:40:23 +0200 Subject: [PATCH 6/8] Bump versions, fix CI --- .github/workflows/ci.yml | 10 ++++++++++ Cargo.toml | 4 ++-- crossbundle/cli/Cargo.toml | 4 ++-- crossbundle/tools/Cargo.toml | 2 +- examples/bevy-2d/Cargo.toml | 4 ++-- examples/bevy-3d/Cargo.toml | 4 ++-- examples/bevy-explorer/Cargo.toml | 2 +- examples/macroquad-3d/Cargo.toml | 4 ++-- examples/macroquad-permissions/Cargo.toml | 8 ++++---- platform/android/Cargo.toml | 2 +- platform/android/java/app/config.gradle | 2 +- plugins/admob/Cargo.toml | 4 ++-- plugins/admob/README.md | 6 +++--- plugins/admob/android/config.gradle | 2 +- 14 files changed, 34 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 73d3764f..2dbf2fea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,6 +102,16 @@ jobs: profile: minimal toolchain: stable override: true + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: adopt + java-version: 11 + - name: Install gradle + uses: gradle/gradle-build-action@v2 + with: + distribution: temurin + gradle-version: 7.4 - name: Install Apple targets run: | rustup upgrade diff --git a/Cargo.toml b/Cargo.toml index 4e862899..02b7d2be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossbow" -version = "0.1.5" +version = "0.1.6" edition = "2021" authors = ["DodoRare Team "] description = "Cross-Platform Rust Toolkit for Games 🏹" @@ -12,7 +12,7 @@ exclude = [".github/**/*"] [dependencies] # Platform-specific dependencies -crossbow-android = { path = "platform/android", version = "0.1.5", optional = true } +crossbow-android = { path = "platform/android", version = "0.1.6", optional = true } [target.'cfg(target_os = "android")'.dependencies] ndk-glue = "0.6.2" diff --git a/crossbundle/cli/Cargo.toml b/crossbundle/cli/Cargo.toml index a026db99..7ec398d9 100644 --- a/crossbundle/cli/Cargo.toml +++ b/crossbundle/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossbundle" -version = "0.1.5" +version = "0.1.6" edition = "2021" authors = ["DodoRare Team "] description = "Build and publish apps for Android/iOS" @@ -18,7 +18,7 @@ name = "crossbundle" path = "src/main.rs" [dependencies] -crossbundle-tools = { path = "../tools", version = "0.1.5" } +crossbundle-tools = { path = "../tools", version = "0.1.6" } android-tools = "0.2.8" clap = { version = "3.2.8", features = ["derive"] } serde = { version = "1.0", features = ["derive"] } diff --git a/crossbundle/tools/Cargo.toml b/crossbundle/tools/Cargo.toml index 5f04418c..a64182e2 100644 --- a/crossbundle/tools/Cargo.toml +++ b/crossbundle/tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossbundle-tools" -version = "0.1.5" +version = "0.1.6" edition = "2021" authors = ["DodoRare Team "] description = "Build and publish apps for Android/iOS" diff --git a/examples/bevy-2d/Cargo.toml b/examples/bevy-2d/Cargo.toml index 8a1b6733..94913bf1 100644 --- a/examples/bevy-2d/Cargo.toml +++ b/examples/bevy-2d/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "bevy-2d" -version = "0.1.5" +version = "0.1.6" authors = ["DodoRare Team "] edition = "2021" [dependencies] -crossbow = { version = "0.1.5", path = "../../" } +crossbow = { version = "0.1.6", path = "../../" } log = "0.4" anyhow = "1.0" bevy = { version = "0.7.0", features = ["mp3"] } diff --git a/examples/bevy-3d/Cargo.toml b/examples/bevy-3d/Cargo.toml index 7e7118df..8d41faba 100644 --- a/examples/bevy-3d/Cargo.toml +++ b/examples/bevy-3d/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "bevy-3d" -version = "0.1.5" +version = "0.1.6" authors = ["DodoRare Team "] edition = "2021" [dependencies] -crossbow = { version = "0.1.5", path = "../../" } +crossbow = { version = "0.1.6", path = "../../" } log = "0.4" anyhow = "1.0" bevy = "0.7.0" diff --git a/examples/bevy-explorer/Cargo.toml b/examples/bevy-explorer/Cargo.toml index 996956d5..36cc4cfd 100644 --- a/examples/bevy-explorer/Cargo.toml +++ b/examples/bevy-explorer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy-explorer" -version = "0.1.5" +version = "0.1.6" authors = ["DodoRare Team "] edition = "2021" diff --git a/examples/macroquad-3d/Cargo.toml b/examples/macroquad-3d/Cargo.toml index acfe657d..0f5b5fb8 100644 --- a/examples/macroquad-3d/Cargo.toml +++ b/examples/macroquad-3d/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "macroquad-3d" -version = "0.1.5" +version = "0.1.6" authors = ["DodoRare Team "] edition = "2021" [dependencies] -crossbow = { version = "0.1.5", path = "../../" } +crossbow = { version = "0.1.6", path = "../../" } log = "0.4" anyhow = "1.0" macroquad = "0.3.7" diff --git a/examples/macroquad-permissions/Cargo.toml b/examples/macroquad-permissions/Cargo.toml index c44ef22d..ee50bee9 100644 --- a/examples/macroquad-permissions/Cargo.toml +++ b/examples/macroquad-permissions/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "macroquad-permissions" -version = "0.1.5" +version = "0.1.6" authors = ["DodoRare Team "] edition = "2021" [dependencies] -crossbow = { version = "0.1.5", path = "../../" } -crossbow-admob = { version = "0.1.5", path = "../../plugins/admob" } +crossbow = { version = "0.1.6", path = "../../" } +crossbow-admob = { version = "0.1.6", path = "../../plugins/admob" } log = "0.4" anyhow = "1.0" macroquad = "0.3.7" @@ -23,7 +23,7 @@ build_targets = ["aarch64-linux-android"] assets = "assets" res = "res/android" -# plugins_remote = ["com.crossbow.admob:admob:0.1.5"] +# plugins_remote = ["com.crossbow.admob:admob:0.1.6"] [[package.metadata.android.plugins_local_projects]] include = ":crossbow" diff --git a/platform/android/Cargo.toml b/platform/android/Cargo.toml index d004db89..333d842e 100644 --- a/platform/android/Cargo.toml +++ b/platform/android/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossbow-android" -version = "0.1.5" +version = "0.1.6" edition = "2021" authors = ["DodoRare Team "] description = "Cross-Platform Rust Toolkit for Games 🏹" diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index 2d22452b..9c6cfa66 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -1,5 +1,5 @@ ext.versions = [ - crossbowLibrary : "0.1.5", + crossbowLibrary : "0.1.6", androidGradlePlugin: "7.0.0", compileSdk : 31, minSdk : 19, diff --git a/plugins/admob/Cargo.toml b/plugins/admob/Cargo.toml index 6d503838..e3ec0da7 100644 --- a/plugins/admob/Cargo.toml +++ b/plugins/admob/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossbow-admob" -version = "0.1.5" +version = "0.1.6" edition = "2021" authors = ["DodoRare Team "] description = "AdMob Plugin for Crossbow" @@ -10,4 +10,4 @@ keywords = ["crossbow", "google", "admob", "android", "ads"] readme = "README.md" [dependencies] -crossbow-android = { path = "../../platform/android", version = "0.1.5" } +crossbow-android = { path = "../../platform/android", version = "0.1.6" } diff --git a/plugins/admob/README.md b/plugins/admob/README.md index 3871d784..a586119a 100644 --- a/plugins/admob/README.md +++ b/plugins/admob/README.md @@ -22,15 +22,15 @@ Just add Rust dependencies like this: ```toml [dependencies] -crossbow = "0.1.5" -crossbow-admob = "0.1.5" +crossbow = "0.1.6" +crossbow-admob = "0.1.6" ``` And finally, add this to your Crossbow Android configuration: ```toml [package.metadata.android] -plugins_remote = ["com.crossbow.admob:admob:0.1.5"] +plugins_remote = ["com.crossbow.admob:admob:0.1.6"] ``` > That's it, now you can start using AdMob ads! diff --git a/plugins/admob/android/config.gradle b/plugins/admob/android/config.gradle index 95980bc2..6e31dd1d 100644 --- a/plugins/admob/android/config.gradle +++ b/plugins/admob/android/config.gradle @@ -1,5 +1,5 @@ ext.versions = [ - crossbowLibrary : "0.1.5", + crossbowLibrary : "0.1.6", androidGradlePlugin: "7.0.0", compileSdk : 31, minSdk : 19, From 6c1c6c4e66f037280e9969a8eb64d93fd48d8791 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 20:32:54 +0200 Subject: [PATCH 7/8] Fix gradle test --- crossbundle/cli/src/types/mod.rs | 2 ++ .../common/gen_minimal_project/consts.rs | 24 +++++++++++++++++++ .../gen_minimal_project/gen_min_project.rs | 2 +- deny.toml | 3 +++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/crossbundle/cli/src/types/mod.rs b/crossbundle/cli/src/types/mod.rs index 74b89c5e..f6d58bd3 100644 --- a/crossbundle/cli/src/types/mod.rs +++ b/crossbundle/cli/src/types/mod.rs @@ -8,6 +8,8 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Deserialize, Serialize, Default)] pub struct Metadata { + #[serde(default)] pub android: AndroidConfig, + #[serde(default)] pub apple: AppleConfig, } diff --git a/crossbundle/tools/src/commands/common/gen_minimal_project/consts.rs b/crossbundle/tools/src/commands/common/gen_minimal_project/consts.rs index 9b4eebec..4e452846 100644 --- a/crossbundle/tools/src/commands/common/gen_minimal_project/consts.rs +++ b/crossbundle/tools/src/commands/common/gen_minimal_project/consts.rs @@ -24,6 +24,30 @@ anyhow = "1.0" macroquad = "0.3.7" "#; +pub const MINIMAL_MQ_GRADLE_CARGO_TOML_VALUE: &str = r#" +[package] +name = "example" +version = "0.1.0" +authors = ["DodoRare Team "] +edition = "2021" + +[dependencies] +crossbow = { git = "https://github.com/dodorare/crossbow" } +anyhow = "1.0" +macroquad = "0.3.7" + +[package.metadata.android] +target_sdk_version = 30 + +[[package.metadata.android.plugins_local_projects]] +include = ":crossbow" +dont_implement = true +project_dir = "../../platform/android/java" + +[[package.metadata.android.plugins_local_projects]] +include = ":crossbow:lib" +"#; + pub const CARGO_TOML_VALUE: &str = r#" [package.metadata.android] app_name = "example" diff --git a/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs b/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs index f5f48acd..8637bccd 100644 --- a/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs +++ b/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs @@ -15,7 +15,7 @@ pub fn gen_minimal_project( let file_path = out_dir.join("Cargo.toml"); let mut file = File::create(file_path)?; if macroquad_project { - file.write_all(MINIMAL_MQ_CARGO_TOML_VALUE.as_bytes())?; + file.write_all(MINIMAL_MQ_GRADLE_CARGO_TOML_VALUE.as_bytes())?; } else { file.write_all(MINIMAL_BEVY_CARGO_TOML_VALUE.as_bytes())?; } diff --git a/deny.toml b/deny.toml index a1d75e62..d4163b15 100644 --- a/deny.toml +++ b/deny.toml @@ -15,6 +15,9 @@ allow = [ "Apache-2.0", "BSD-3-Clause", ] +exceptions = [ + { name = "unicode-ident", allow = ["Unicode-DFS-2016"] }, +] default = "deny" [[licenses.clarify]] From 075329db961e1d27962a6677c77fa0201d0b6137 Mon Sep 17 00:00:00 2001 From: David Ackerman Date: Mon, 18 Jul 2022 21:10:01 +0200 Subject: [PATCH 8/8] Fix cargo metadata test --- crossbundle/cli/tests/cargo_metadata.rs | 8 -------- .../common/gen_minimal_project/gen_min_project.rs | 5 ++--- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/crossbundle/cli/tests/cargo_metadata.rs b/crossbundle/cli/tests/cargo_metadata.rs index 9e30434c..9ca50ae0 100644 --- a/crossbundle/cli/tests/cargo_metadata.rs +++ b/crossbundle/cli/tests/cargo_metadata.rs @@ -78,16 +78,8 @@ fn test_cargo_metadata() { - - - - - - - - "#; let expected_manifest = from_str(expected_manifest).unwrap(); diff --git a/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs b/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs index 8637bccd..f4ce286a 100644 --- a/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs +++ b/crossbundle/tools/src/commands/common/gen_minimal_project/gen_min_project.rs @@ -16,12 +16,11 @@ pub fn gen_minimal_project( let mut file = File::create(file_path)?; if macroquad_project { file.write_all(MINIMAL_MQ_GRADLE_CARGO_TOML_VALUE.as_bytes())?; + } else if !minimal_cargo_toml { + file.write_all(CARGO_TOML_VALUE.as_bytes())?; } else { file.write_all(MINIMAL_BEVY_CARGO_TOML_VALUE.as_bytes())?; } - if !minimal_cargo_toml { - file.write_all(CARGO_TOML_VALUE.as_bytes())?; - } // Create src folder let src_path = out_dir.join("src"); create_dir(&src_path)?;