diff --git a/Cargo.lock b/Cargo.lock
index 80d7bb36..c7dc50e5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4960,7 +4960,7 @@ dependencies = [
[[package]]
name = "tauri"
version = "2.0.0-alpha.8"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"anyhow",
"bytes 1.4.0",
@@ -5010,7 +5010,7 @@ dependencies = [
[[package]]
name = "tauri-build"
version = "2.0.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"anyhow",
"cargo_toml",
@@ -5030,7 +5030,7 @@ dependencies = [
[[package]]
name = "tauri-codegen"
version = "2.0.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"base64 0.21.0",
"brotli",
@@ -5055,7 +5055,7 @@ dependencies = [
[[package]]
name = "tauri-macros"
version = "2.0.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"heck 0.4.1",
"proc-macro2",
@@ -5449,7 +5449,7 @@ dependencies = [
[[package]]
name = "tauri-runtime"
version = "0.13.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"gtk",
"http",
@@ -5469,7 +5469,7 @@ dependencies = [
[[package]]
name = "tauri-runtime-wry"
version = "0.13.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"cocoa",
"gtk",
@@ -5489,7 +5489,7 @@ dependencies = [
[[package]]
name = "tauri-utils"
version = "2.0.0-alpha.4"
-source = "git+https://github.com/tauri-apps/tauri?branch=next#6d25c4d07fcf18c2a19ac4faa7d9bedd96d1a75f"
+source = "git+https://github.com/tauri-apps/tauri?branch=next#6fb5734d2fcade539a3c8a5f0a9f29fee1c666c5"
dependencies = [
"aes-gcm 0.10.1",
"brotli",
diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml
index 4bd7ce49..6448c4e0 100644
--- a/examples/api/src-tauri/Cargo.toml
+++ b/examples/api/src-tauri/Cargo.toml
@@ -27,7 +27,6 @@ tauri-plugin-notification = { path = "../../../plugins/notification", features =
tauri-plugin-os = { path = "../../../plugins/os" }
tauri-plugin-process = { path = "../../../plugins/process" }
tauri-plugin-shell = { path = "../../../plugins/shell" }
-tauri-plugin-updater = { path = "../../../plugins/updater" }
tauri-plugin-window = { path = "../../../plugins/window" }
[dependencies.tauri]
@@ -44,6 +43,7 @@ features = [
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
tauri-plugin-cli = { path = "../../../plugins/cli" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut" }
+tauri-plugin-updater = { path = "../../../plugins/updater" }
[target."cfg(target_os = \"windows\")".dependencies]
window-shadows = "0.2"
diff --git a/examples/api/src-tauri/gen/android/api/.editorconfig b/examples/api/src-tauri/gen/android/.editorconfig
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/.editorconfig
rename to examples/api/src-tauri/gen/android/.editorconfig
diff --git a/examples/api/src-tauri/gen/android/api/.gitignore b/examples/api/src-tauri/gen/android/.gitignore
similarity index 86%
rename from examples/api/src-tauri/gen/android/api/.gitignore
rename to examples/api/src-tauri/gen/android/.gitignore
index 6bb2f5ee..b2482031 100644
--- a/examples/api/src-tauri/gen/android/api/.gitignore
+++ b/examples/api/src-tauri/gen/android/.gitignore
@@ -13,6 +13,7 @@ build
.externalNativeBuild
.cxx
local.properties
+key.properties
/.tauri
/tauri.settings.gradle
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/.idea/.gitignore b/examples/api/src-tauri/gen/android/.idea/.gitignore
new file mode 100644
index 00000000..26d33521
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/examples/api/src-tauri/gen/android/.idea/gradle.xml b/examples/api/src-tauri/gen/android/.idea/gradle.xml
new file mode 100644
index 00000000..b898c0af
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/.idea/gradle.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/.idea/misc.xml b/examples/api/src-tauri/gen/android/.idea/misc.xml
new file mode 100644
index 00000000..903c0807
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/.idea/vcs.xml b/examples/api/src-tauri/gen/android/.idea/vcs.xml
new file mode 100644
index 00000000..bc599707
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/api/app/build.gradle.kts b/examples/api/src-tauri/gen/android/api/app/build.gradle.kts
deleted file mode 100644
index 7a18b94b..00000000
--- a/examples/api/src-tauri/gen/android/api/app/build.gradle.kts
+++ /dev/null
@@ -1,113 +0,0 @@
-plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
- id("rustPlugin")
-}
-
-android {
- compileSdk = 33
- defaultConfig {
- manifestPlaceholders["usesCleartextTraffic"] = "false"
- applicationId = "com.tauri.api"
- minSdk = 24
- targetSdk = 33
- versionCode = 1
- versionName = "1.0"
- }
- sourceSets.getByName("main") {
- // Vulkan validation layers
- val ndkHome = System.getenv("NDK_HOME")
- jniLibs.srcDir("${ndkHome}/sources/third_party/vulkan/src/build-android/jniLibs")
- }
- buildTypes {
- getByName("debug") {
- manifestPlaceholders["usesCleartextTraffic"] = "true"
- isDebuggable = true
- isJniDebuggable = true
- isMinifyEnabled = false
- packagingOptions { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
- jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
- jniLibs.keepDebugSymbols.add("*/x86/*.so")
- jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
- }
- }
- getByName("release") {
- isMinifyEnabled = true
- val proguards = fileTree(".") {
- include("*.pro")
- }
- proguardFiles(*proguards.toList().toTypedArray())
- }
- }
- flavorDimensions.add("abi")
- productFlavors {
- create("universal") {
- dimension = "abi"
- ndk {
- abiFilters += (findProperty("abiList") as? String)?.split(",") ?: listOf( "arm64-v8a", "armeabi-v7a", "x86", "x86_64",
- )
- }
- }
- create("arm64") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("arm64-v8a")
- }
- }
-
- create("arm") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("armeabi-v7a")
- }
- }
-
- create("x86") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("x86")
- }
- }
-
- create("x86_64") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("x86_64")
- }
- }
- }
-
- assetPacks += mutableSetOf()
- namespace = "com.tauri.api"
-}
-
-rust {
- rootDirRel = "../../../../"
- targets = (findProperty("targetList") as? String)?.split(",") ?: listOf("aarch64", "armv7", "i686", "x86_64")
- arches = (findProperty("archList") as? String)?.split(",") ?: listOf("arm64", "arm", "x86", "x86_64")
-}
-
-dependencies {
- implementation("androidx.webkit:webkit:1.5.0")
- implementation("androidx.appcompat:appcompat:1.5.1")
- implementation("com.google.android.material:material:1.7.0")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.4")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
- implementation(project(":tauri-android"))
-}
-
-apply(from = "tauri.build.gradle.kts")
-
-afterEvaluate {
- android.applicationVariants.all {
- tasks["mergeUniversalReleaseJniLibFolders"].dependsOn(tasks["rustBuildRelease"])
- tasks["mergeUniversalDebugJniLibFolders"].dependsOn(tasks["rustBuildDebug"])
- if (findProperty("targetList") == null) {
- productFlavors.filter{ it.name != "universal" }.forEach { _ ->
- val archAndBuildType = name.capitalize()
- tasks["merge${archAndBuildType}JniLibFolders"].dependsOn(tasks["rustBuild${archAndBuildType}"])
- }
- }
- }
-}
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/java/com/tauri/api/MainActivity.kt b/examples/api/src-tauri/gen/android/api/app/src/main/java/com/tauri/api/MainActivity.kt
deleted file mode 100644
index 46c4bc6e..00000000
--- a/examples/api/src-tauri/gen/android/api/app/src/main/java/com/tauri/api/MainActivity.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.tauri.api
-
-import app.tauri.plugin.PluginManager
-
-class MainActivity : TauriActivity() {
- var pluginManager: PluginManager = PluginManager(this)
-}
diff --git a/examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt b/examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt
deleted file mode 100644
index 064fc632..00000000
--- a/examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.tauri
-
-import org.gradle.api.DefaultTask
-import org.gradle.api.GradleException
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import java.io.File
-import java.util.*
-
-const val TASK_GROUP = "rust"
-
-open class Config {
- var rootDirRel: String? = null
- var targets: List? = null
- var arches: List? = null
-}
-
-open class RustPlugin : Plugin {
- private lateinit var config: Config
-
- override fun apply(project: Project) {
- config = project.extensions.create("rust", Config::class.java)
- project.afterEvaluate {
- if (config.targets == null) {
- throw GradleException("targets cannot be null")
- }
- if (config.arches == null) {
- throw GradleException("arches cannot be null")
- }
- for (profile in listOf("debug", "release")) {
- val profileCapitalized = profile.capitalize(Locale.ROOT)
- val buildTask = project.tasks.maybeCreate(
- "rustBuild$profileCapitalized",
- DefaultTask::class.java
- ).apply {
- group = TASK_GROUP
- description = "Build dynamic library in $profile mode for all targets"
- }
- for (targetPair in config.targets!!.withIndex()) {
- val targetName = targetPair.value
- val targetArch = config.arches!![targetPair.index]
- val targetArchCapitalized = targetArch.capitalize(Locale.ROOT)
- val targetBuildTask = project.tasks.maybeCreate(
- "rustBuild$targetArchCapitalized$profileCapitalized",
- BuildTask::class.java
- ).apply {
- group = TASK_GROUP
- description = "Build dynamic library in $profile mode for $targetArch"
- rootDirRel = config.rootDirRel?.let { File(it) }
- target = targetName
- release = profile == "release"
- }
- buildTask.dependsOn(targetBuildTask)
- project.tasks.findByName("preBuild")?.mustRunAfter(targetBuildTask)
- }
- }
- }
- }
-}
diff --git a/examples/api/src-tauri/gen/android/api/settings.gradle b/examples/api/src-tauri/gen/android/api/settings.gradle
deleted file mode 100644
index b179eac8..00000000
--- a/examples/api/src-tauri/gen/android/api/settings.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-include ':app'
-
-include ':tauri-android'
-project(':tauri-android').projectDir = new File('./.tauri/tauri-api')
-
-apply from: 'tauri.settings.gradle'
diff --git a/examples/api/src-tauri/gen/android/api/app/.gitignore b/examples/api/src-tauri/gen/android/app/.gitignore
similarity index 63%
rename from examples/api/src-tauri/gen/android/api/app/.gitignore
rename to examples/api/src-tauri/gen/android/app/.gitignore
index 3b9e0a22..ff9cb538 100644
--- a/examples/api/src-tauri/gen/android/api/app/.gitignore
+++ b/examples/api/src-tauri/gen/android/app/.gitignore
@@ -1,4 +1,5 @@
/src/main/java/com/tauri/api/generated
/src/main/jniLibs/**/*.so
+/src/main/assets/tauri.conf.json
/tauri.build.gradle.kts
/proguard-tauri.pro
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/app/build.gradle.kts b/examples/api/src-tauri/gen/android/app/build.gradle.kts
new file mode 100644
index 00000000..e3de36fd
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/app/build.gradle.kts
@@ -0,0 +1,57 @@
+plugins {
+ id("com.android.application")
+ id("org.jetbrains.kotlin.android")
+ id("rust")
+}
+
+android {
+ compileSdk = 33
+ namespace = "com.tauri.api"
+ defaultConfig {
+ manifestPlaceholders["usesCleartextTraffic"] = "false"
+ applicationId = "com.tauri.api"
+ minSdk = 24
+ targetSdk = 33
+ versionCode = 1
+ versionName = "1.0"
+ }
+ buildTypes {
+ getByName("debug") {
+ manifestPlaceholders["usesCleartextTraffic"] = "true"
+ isDebuggable = true
+ isJniDebuggable = true
+ isMinifyEnabled = false
+ packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
+ jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
+ jniLibs.keepDebugSymbols.add("*/x86/*.so")
+ jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
+ }
+ }
+ getByName("release") {
+ isMinifyEnabled = true
+ proguardFiles(
+ *fileTree(".") { include("**/*.pro") }
+ .plus(getDefaultProguardFile("proguard-android-optimize.txt"))
+ .toList().toTypedArray()
+ )
+ }
+ }
+ kotlinOptions {
+ jvmTarget = "1.8"
+ }
+}
+
+rust {
+ rootDirRel = "../../../"
+}
+
+dependencies {
+ implementation("androidx.webkit:webkit:1.6.1")
+ implementation("androidx.appcompat:appcompat:1.6.1")
+ implementation("com.google.android.material:material:1.8.0")
+ testImplementation("junit:junit:4.13.2")
+ androidTestImplementation("androidx.test.ext:junit:1.1.4")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
+}
+
+apply(from = "tauri.build.gradle.kts")
diff --git a/examples/api/src-tauri/gen/android/api/app/proguard-rules.pro b/examples/api/src-tauri/gen/android/app/proguard-rules.pro
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/proguard-rules.pro
rename to examples/api/src-tauri/gen/android/app/proguard-rules.pro
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/AndroidManifest.xml b/examples/api/src-tauri/gen/android/app/src/main/AndroidManifest.xml
similarity index 99%
rename from examples/api/src-tauri/gen/android/api/app/src/main/AndroidManifest.xml
rename to examples/api/src-tauri/gen/android/app/src/main/AndroidManifest.xml
index 13dcbd14..6ad2d210 100644
--- a/examples/api/src-tauri/gen/android/api/app/src/main/AndroidManifest.xml
+++ b/examples/api/src-tauri/gen/android/app/src/main/AndroidManifest.xml
@@ -14,7 +14,6 @@
android:exported="true">
-
diff --git a/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt
new file mode 100644
index 00000000..ad3fa238
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt
@@ -0,0 +1,3 @@
+package com.tauri.api
+
+class MainActivity : TauriActivity()
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/examples/api/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/drawable/ic_launcher_background.xml b/examples/api/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/drawable/ic_launcher_background.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/layout/activity_main.xml b/examples/api/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/layout/activity_main.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to examples/api/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/values-night/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/values-night/themes.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/values/colors.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values/colors.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/values/colors.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/values/colors.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/values/strings.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values/strings.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/values/strings.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/values/strings.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/values/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/values/themes.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml
diff --git a/examples/api/src-tauri/gen/android/api/app/src/main/res/xml/file_paths.xml b/examples/api/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/app/src/main/res/xml/file_paths.xml
rename to examples/api/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml
diff --git a/examples/api/src-tauri/gen/android/api/build.gradle.kts b/examples/api/src-tauri/gen/android/build.gradle.kts
similarity index 51%
rename from examples/api/src-tauri/gen/android/api/build.gradle.kts
rename to examples/api/src-tauri/gen/android/build.gradle.kts
index 8c6fe584..5ce764e3 100644
--- a/examples/api/src-tauri/gen/android/api/build.gradle.kts
+++ b/examples/api/src-tauri/gen/android/build.gradle.kts
@@ -1,14 +1,11 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
- classpath("com.android.tools.build:gradle:7.3.1")
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10")
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
+ classpath("com.android.tools.build:gradle:8.0.0")
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21")
}
}
diff --git a/examples/api/src-tauri/gen/android/api/buildSrc/build.gradle.kts b/examples/api/src-tauri/gen/android/buildSrc/build.gradle.kts
similarity index 59%
rename from examples/api/src-tauri/gen/android/api/buildSrc/build.gradle.kts
rename to examples/api/src-tauri/gen/android/buildSrc/build.gradle.kts
index 73058dd7..099feff7 100644
--- a/examples/api/src-tauri/gen/android/api/buildSrc/build.gradle.kts
+++ b/examples/api/src-tauri/gen/android/buildSrc/build.gradle.kts
@@ -5,8 +5,8 @@ plugins {
gradlePlugin {
plugins {
create("pluginsForCoolKids") {
- id = "rustPlugin"
- implementationClass = "com.tauri.RustPlugin"
+ id = "rust"
+ implementationClass = "RustPlugin"
}
}
}
@@ -18,6 +18,6 @@ repositories {
dependencies {
compileOnly(gradleApi())
- implementation("com.android.tools.build:gradle:7.3.1")
+ implementation("com.android.tools.build:gradle:8.0.0")
}
diff --git a/examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt
similarity index 80%
rename from examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt
rename to examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt
index dfc8507e..13a77f05 100644
--- a/examples/api/src-tauri/gen/android/api/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt
+++ b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt
@@ -1,20 +1,14 @@
-package com.tauri
-
import java.io.File
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.logging.LogLevel
import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.InputDirectory
-import org.gradle.api.tasks.PathSensitive
-import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.TaskAction
open class BuildTask : DefaultTask() {
- @InputDirectory
- @PathSensitive(PathSensitivity.RELATIVE)
- var rootDirRel: File? = null
+ @Input
+ var rootDirRel: String? = null
@Input
var target: String? = null
@Input
@@ -22,7 +16,7 @@ open class BuildTask : DefaultTask() {
@TaskAction
fun build() {
- val executable = """yarn""";
+ val executable = """pnpm""";
try {
runTauriCli(executable)
} catch (e: Exception) {
@@ -41,7 +35,7 @@ open class BuildTask : DefaultTask() {
val args = listOf("tauri", "android", "android-studio-script");
project.exec {
- workingDir(File(project.projectDir, rootDirRel.path))
+ workingDir(File(project.projectDir, rootDirRel))
executable(executable)
args(args)
if (project.logger.isEnabled(LogLevel.DEBUG)) {
diff --git a/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt
new file mode 100644
index 00000000..2ea5ce5c
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt
@@ -0,0 +1,85 @@
+import com.android.build.api.dsl.ApplicationExtension
+import org.gradle.api.DefaultTask
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.kotlin.dsl.configure
+import org.gradle.kotlin.dsl.get
+
+const val TASK_GROUP = "rust"
+
+open class Config {
+ lateinit var rootDirRel: String
+}
+
+open class RustPlugin : Plugin {
+ private lateinit var config: Config
+
+ override fun apply(project: Project) = with(project) {
+ config = extensions.create("rust", Config::class.java)
+
+ val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64");
+ val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList
+
+ val defaultArchList = listOf("arm64", "arm", "x86", "x86_64");
+ val archList = (findProperty("archList") as? String)?.split(',') ?: listOf("arm64", "arm", "x86", "x86_64")
+
+ val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64")
+
+ extensions.configure {
+ @Suppress("UnstableApiUsage")
+ flavorDimensions.add("abi")
+ productFlavors {
+ create("universal") {
+ dimension = "abi"
+ ndk {
+ abiFilters += abiList
+ }
+ }
+ defaultArchList.forEachIndexed { index, arch ->
+ create(arch) {
+ dimension = "abi"
+ ndk {
+ abiFilters.add(defaultAbiList[index])
+ }
+ }
+ }
+ }
+ }
+
+ afterEvaluate {
+ for (profile in listOf("debug", "release")) {
+ val profileCapitalized = profile.replaceFirstChar { it.uppercase() }
+ val buildTask = tasks.maybeCreate(
+ "rustBuildUniversal$profileCapitalized",
+ DefaultTask::class.java
+ ).apply {
+ group = TASK_GROUP
+ description = "Build dynamic library in $profile mode for all targets"
+ }
+
+ tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask)
+
+ for (targetPair in targetsList.withIndex()) {
+ val targetName = targetPair.value
+ val targetArch = archList[targetPair.index]
+ val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() }
+ val targetBuildTask = project.tasks.maybeCreate(
+ "rustBuild$targetArchCapitalized$profileCapitalized",
+ BuildTask::class.java
+ ).apply {
+ group = TASK_GROUP
+ description = "Build dynamic library in $profile mode for $targetArch"
+ rootDirRel = config.rootDirRel
+ target = targetName
+ release = profile == "release"
+ }
+
+ buildTask.dependsOn(targetBuildTask)
+ tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn(
+ targetBuildTask
+ )
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/api/gradle.properties b/examples/api/src-tauri/gen/android/gradle.properties
similarity index 92%
rename from examples/api/src-tauri/gen/android/api/gradle.properties
rename to examples/api/src-tauri/gen/android/gradle.properties
index cd0519bb..022338b7 100644
--- a/examples/api/src-tauri/gen/android/api/gradle.properties
+++ b/examples/api/src-tauri/gen/android/gradle.properties
@@ -20,4 +20,6 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
+android.nonTransitiveRClass=true
+android.defaults.buildfeatures.buildconfig=true
+android.nonFinalResIds=false
\ No newline at end of file
diff --git a/examples/api/src-tauri/gen/android/api/gradle/wrapper/gradle-wrapper.jar b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/gradle/wrapper/gradle-wrapper.jar
rename to examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar
diff --git a/examples/api/src-tauri/gen/android/api/gradle/wrapper/gradle-wrapper.properties b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
similarity index 93%
rename from examples/api/src-tauri/gen/android/api/gradle/wrapper/gradle-wrapper.properties
rename to examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
index de8c362b..40a43506 100644
--- a/examples/api/src-tauri/gen/android/api/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Tue May 10 19:22:52 CST 2022
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/examples/api/src-tauri/gen/android/api/gradlew b/examples/api/src-tauri/gen/android/gradlew
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/gradlew
rename to examples/api/src-tauri/gen/android/gradlew
diff --git a/examples/api/src-tauri/gen/android/api/gradlew.bat b/examples/api/src-tauri/gen/android/gradlew.bat
similarity index 100%
rename from examples/api/src-tauri/gen/android/api/gradlew.bat
rename to examples/api/src-tauri/gen/android/gradlew.bat
diff --git a/examples/api/src-tauri/gen/android/settings.gradle b/examples/api/src-tauri/gen/android/settings.gradle
new file mode 100644
index 00000000..39391166
--- /dev/null
+++ b/examples/api/src-tauri/gen/android/settings.gradle
@@ -0,0 +1,3 @@
+include ':app'
+
+apply from: 'tauri.settings.gradle'
diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs
index d5d77a67..41be8760 100644
--- a/examples/api/src-tauri/src/lib.rs
+++ b/examples/api/src-tauri/src/lib.rs
@@ -40,7 +40,6 @@ pub fn run() {
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init())
.plugin(tauri_plugin_shell::init())
- .plugin(tauri_plugin_updater::Builder::new().build())
.plugin(tauri_plugin_window::init())
.setup(move |app| {
#[cfg(desktop)]
@@ -49,6 +48,8 @@ pub fn run() {
app.handle().plugin(tauri_plugin_cli::init())?;
app.handle()
.plugin(tauri_plugin_global_shortcut::Builder::new().build())?;
+ app.handle()
+ .plugin(tauri_plugin_updater::Builder::new().build())?;
}
let mut window_builder = WindowBuilder::new(app, "main", WindowUrl::default());
diff --git a/plugins/window/build.rs b/plugins/window/build.rs
new file mode 100644
index 00000000..74bf430b
--- /dev/null
+++ b/plugins/window/build.rs
@@ -0,0 +1,14 @@
+fn main() {
+ let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
+ let mobile = target_os == "ios" || target_os == "android";
+ alias("desktop", !mobile);
+ alias("mobile", mobile);
+}
+
+// creates a cfg alias if `has_feature` is true.
+// `alias` must be a snake case string.
+fn alias(alias: &str, has_feature: bool) {
+ if has_feature {
+ println!("cargo:rustc-cfg={alias}");
+ }
+}
diff --git a/plugins/window/src/commands.rs b/plugins/window/src/desktop_commands.rs
similarity index 100%
rename from plugins/window/src/commands.rs
rename to plugins/window/src/desktop_commands.rs
diff --git a/plugins/window/src/lib.rs b/plugins/window/src/lib.rs
index 513a5d32..b97e2d1b 100644
--- a/plugins/window/src/lib.rs
+++ b/plugins/window/src/lib.rs
@@ -3,63 +3,76 @@ use tauri::{
Runtime,
};
-mod commands;
+#[cfg(desktop)]
+mod desktop_commands;
pub fn init() -> TauriPlugin {
Builder::new("window")
- .invoke_handler(tauri::generate_handler![
- commands::create,
- // getters
- commands::scale_factor,
- commands::inner_position,
- commands::outer_position,
- commands::inner_size,
- commands::outer_size,
- commands::is_fullscreen,
- commands::is_minimized,
- commands::is_maximized,
- commands::is_decorated,
- commands::is_resizable,
- commands::is_visible,
- commands::title,
- commands::current_monitor,
- commands::primary_monitor,
- commands::available_monitors,
- commands::theme,
- // setters
- commands::center,
- commands::request_user_attention,
- commands::set_resizable,
- commands::set_title,
- commands::maximize,
- commands::unmaximize,
- commands::minimize,
- commands::unminimize,
- commands::show,
- commands::hide,
- commands::close,
- commands::set_decorations,
- commands::set_shadow,
- commands::set_always_on_top,
- commands::set_content_protected,
- commands::set_size,
- commands::set_min_size,
- commands::set_max_size,
- commands::set_position,
- commands::set_fullscreen,
- commands::set_focus,
- commands::set_skip_taskbar,
- commands::set_cursor_grab,
- commands::set_cursor_visible,
- commands::set_cursor_icon,
- commands::set_cursor_position,
- commands::set_ignore_cursor_events,
- commands::start_dragging,
- commands::print,
- commands::set_icon,
- commands::toggle_maximize,
- commands::internal_toggle_maximize,
- commands::internal_toggle_devtools,
- ])
+ .invoke_handler(|invoke| {
+ #[cfg(desktop)]
+ {
+ let handler: Box) -> bool> =
+ Box::new(tauri::generate_handler![
+ desktop_commands::create,
+ // getters
+ desktop_commands::scale_factor,
+ desktop_commands::inner_position,
+ desktop_commands::outer_position,
+ desktop_commands::inner_size,
+ desktop_commands::outer_size,
+ desktop_commands::is_fullscreen,
+ desktop_commands::is_minimized,
+ desktop_commands::is_maximized,
+ desktop_commands::is_decorated,
+ desktop_commands::is_resizable,
+ desktop_commands::is_visible,
+ desktop_commands::title,
+ desktop_commands::current_monitor,
+ desktop_commands::primary_monitor,
+ desktop_commands::available_monitors,
+ desktop_commands::theme,
+ // setters
+ desktop_commands::center,
+ desktop_commands::request_user_attention,
+ desktop_commands::set_resizable,
+ desktop_commands::set_title,
+ desktop_commands::maximize,
+ desktop_commands::unmaximize,
+ desktop_commands::minimize,
+ desktop_commands::unminimize,
+ desktop_commands::show,
+ desktop_commands::hide,
+ desktop_commands::close,
+ desktop_commands::set_decorations,
+ desktop_commands::set_shadow,
+ desktop_commands::set_always_on_top,
+ desktop_commands::set_content_protected,
+ desktop_commands::set_size,
+ desktop_commands::set_min_size,
+ desktop_commands::set_max_size,
+ desktop_commands::set_position,
+ desktop_commands::set_fullscreen,
+ desktop_commands::set_focus,
+ desktop_commands::set_skip_taskbar,
+ desktop_commands::set_cursor_grab,
+ desktop_commands::set_cursor_visible,
+ desktop_commands::set_cursor_icon,
+ desktop_commands::set_cursor_position,
+ desktop_commands::set_ignore_cursor_events,
+ desktop_commands::start_dragging,
+ desktop_commands::print,
+ desktop_commands::set_icon,
+ desktop_commands::toggle_maximize,
+ desktop_commands::internal_toggle_maximize,
+ desktop_commands::internal_toggle_devtools,
+ ]);
+ return handler(invoke);
+ }
+ #[cfg(mobile)]
+ {
+ invoke.resolver.reject("Window API not available on mobile");
+ return true;
+ }
+ })
.build()
}