From 122665da0cb657648b5881196dbd02485267908b Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Wed, 20 Aug 2025 08:15:38 -0300 Subject: [PATCH] enhance hvigor plugin --- crates/tauri-cli/src/mobile/mod.rs | 2 +- .../src/mobile/open_harmony/project.rs | 2 +- .../mobile/open-harmony/entry/hvigorfile.ts | 26 +++++++++++++++++-- .../mobile/open-harmony/hvigorfile.ts | 20 +------------- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/crates/tauri-cli/src/mobile/mod.rs b/crates/tauri-cli/src/mobile/mod.rs index b19a44b49..3ef81e4d9 100644 --- a/crates/tauri-cli/src/mobile/mod.rs +++ b/crates/tauri-cli/src/mobile/mod.rs @@ -118,7 +118,7 @@ impl Target { Self::Android => "android", #[cfg(target_os = "macos")] Self::Ios => "ios", - Self::OpenHarmony => "open-harmony", + Self::OpenHarmony => "ohos", } } diff --git a/crates/tauri-cli/src/mobile/open_harmony/project.rs b/crates/tauri-cli/src/mobile/open_harmony/project.rs index 6643bfb52..a6e60be8e 100644 --- a/crates/tauri-cli/src/mobile/open_harmony/project.rs +++ b/crates/tauri-cli/src/mobile/open_harmony/project.rs @@ -23,7 +23,7 @@ pub fn gen( map.insert( "root-dir-rel", Path::new(&os::replace_path_separator( - util::relativize_path(app.root_dir(), &dest).into_os_string(), + util::relativize_path(app.root_dir(), &dest.join("entry")).into_os_string(), )), ); map.insert("root-dir", app.root_dir()); diff --git a/crates/tauri-cli/templates/mobile/open-harmony/entry/hvigorfile.ts b/crates/tauri-cli/templates/mobile/open-harmony/entry/hvigorfile.ts index c6edcd904..1600dc3a8 100644 --- a/crates/tauri-cli/templates/mobile/open-harmony/entry/hvigorfile.ts +++ b/crates/tauri-cli/templates/mobile/open-harmony/entry/hvigorfile.ts @@ -1,6 +1,28 @@ import { hapTasks } from '@ohos/hvigor-ohos-plugin'; +import { hvigor, HvigorPlugin, HvigorNode, HvigorTask } from '@ohos/hvigor'; +import { execFileSync } from 'child_process'; +import { resolve } from 'path'; export default { - system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ - plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[tauriPlugin()] /* Custom plugin to extend the functionality of Hvigor. */ +} + +function tauriPlugin(): HvigorPlugin { + return { + pluginId: 'tauri', + apply(node: HvigorNode) { + const buildRustCode = () => { + const properties = hvigor.getParameter().getProperties(); + const target = properties.target || "aarch64"; + execFileSync(`{{tauri-binary}}`, + [{{quote-and-join tauri-binary-args}}, "--target", target], { + cwd: resolve(__dirname, "{{root-dir-rel}}"), + stdio: "inherit", + }); + } + + node.getTaskByName('default@ConfigureCmake').afterRun(buildRustCode); + } + } } diff --git a/crates/tauri-cli/templates/mobile/open-harmony/hvigorfile.ts b/crates/tauri-cli/templates/mobile/open-harmony/hvigorfile.ts index 780de7e7a..f3cb9f1a8 100644 --- a/crates/tauri-cli/templates/mobile/open-harmony/hvigorfile.ts +++ b/crates/tauri-cli/templates/mobile/open-harmony/hvigorfile.ts @@ -1,24 +1,6 @@ import { appTasks } from '@ohos/hvigor-ohos-plugin'; -import { hvigor, HvigorPlugin, HvigorNode } from '@ohos/hvigor'; -import { execFileSync } from 'child_process'; -import { resolve } from 'path'; export default { system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ - plugins:[tauriPlugin()] /* Custom plugin to extend the functionality of Hvigor. */ -} - -function tauriPlugin(): HvigorPlugin { - return { - pluginId: 'tauri', - apply(node: HvigorNode) { - const properties = hvigor.getParameter().getProperties(); - const target = properties.target || "aarch64"; - execFileSync(`{{tauri-binary}}`, [{{quote-and-join tauri-binary-args}}, "--target", target], { - cwd: resolve(__dirname, "{{root-dir-rel}}"), - stdio: "inherit", - shell: true, - }); - } - } + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ }