From 8ff831f40d5b416df77624f24798335c49ac3752 Mon Sep 17 00:00:00 2001 From: Korobeinikov Evgeny Date: Fri, 31 Jan 2025 19:35:03 +0300 Subject: [PATCH 1/2] Universal ArkTS Har --- arkoala-arkts/application/package.json | 3 + arkoala-arkts/har/package.json | 1 + .../scripts/build-arkoala-har-universal.mjs | 88 +++++++++++++++++++ arkoala-arkts/package.json | 2 + 4 files changed, 94 insertions(+) create mode 100644 arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs diff --git a/arkoala-arkts/application/package.json b/arkoala-arkts/application/package.json index 6b3653d10..66d0b7702 100644 --- a/arkoala-arkts/application/package.json +++ b/arkoala-arkts/application/package.json @@ -9,15 +9,18 @@ "arkoala:har:arm32": "npm run arkoala:har-arm32 --prefix ../../arkoala-arkts", "arkoala:har:arm64": "npm run arkoala:har-arm64 --prefix ../../arkoala-arkts", + "arkoala:har:universal": "npm run arkoala:har-universal --prefix ../../arkoala-arkts", "shopping:har:arm32": "npm run shopping:har-arm32 --prefix ../../arkoala-arkts", "shopping:har:arm64": "npm run shopping:har-arm64 --prefix ../../arkoala-arkts", "install": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-build --install-ohpm-deps-only", "build": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-build", + "rebuild": "npm run clean && npm run build", "sign": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-sign", "exec": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-exec -i -r", "launch": "npm run install && npm run build && npm run sign && npm run exec", + "relaunch": "npm run clean && npm run launch", "all:arm32": "npm run clean && npm run ets-plugin && npm run arkoala:har:arm32 && npm run shopping:har:arm32 && npm run launch", "all:arm64": "npm run clean && npm run ets-plugin && npm run arkoala:har:arm64 && npm run shopping:har:arm64 && npm run launch" diff --git a/arkoala-arkts/har/package.json b/arkoala-arkts/har/package.json index 61716d278..44a2d72f0 100644 --- a/arkoala-arkts/har/package.json +++ b/arkoala-arkts/har/package.json @@ -21,6 +21,7 @@ "pack": "npm run cli-tools:check && cd app && DEVECO_SDK_HOME=../../../arkoala/ohos-sdk/ohos-sdk ../command-line-tools/hvigor/bin/hvigorw --no-daemon --mode module -p product=default -p module=arkoala@default assembleHar", "har-arm32": "npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-arkoala-har.mjs --arch arm32 && npm run pack", "har-arm64": "npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-arkoala-har.mjs --arch arm64 && npm run pack", + "har-universal": "npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-arkoala-har-universal.mjs && npm run pack", "cli-tools:chmod:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", "cli-tools:chmod:yz": "node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", "cli-tools:download:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs download -p command-line-tools -v 5.0.3502 -f command-line-tools.5.0.3502.zip -d command-line-tools && npm run cli-tools:chmod:bz", diff --git a/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs b/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs new file mode 100644 index 000000000..0e60337f9 --- /dev/null +++ b/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs @@ -0,0 +1,88 @@ +import { execSync } from "child_process" +import { dirname } from "path" +import { fileURLToPath } from "url" + +import fs from "fs" +import path from "path" +import process from "process" +import minimist from "minimist" + +var args = minimist(process.argv.slice(2)) + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +function getHostMachine() { + + var platform = process.platform; + switch(platform) { + case 'darwin': + platform = 'macos' + break; + case 'linux': + platform = 'linux' + break; + case 'win32': + platform = 'windows' + break; + default: + platform = undefined + } + + return { + machine: platform, + arch: process.arch + } +} + +const CWD = process.cwd() +const BUNDLE_PATH = path.join(CWD, "arkoala-har-bundle") +const HAR_PATH = path.join(CWD, "app/arkoala") + +function execCmdSync(cmd, options) { + return execSync(cmd, options).toString().trim().replace("\n", " ") +} + +function rollupLaunch() { + console.log(`> Run rollup`) + execCmdSync(`npx rollup -c`) +} + +function copyFile(from, to) { + if (!fs.existsSync(from)) { + throw new Error(`file ${from} does not exist`) + } + + console.log(`> Copy from: ${from} to ${to}`) + fs.cpSync(from, to, { recursive: true, force: true }) +} + +function main() { + + process.chdir(BUNDLE_PATH) + + rollupLaunch() + + const { machine, arch } = getHostMachine() + + // arm32 + copyFile(path.join(_dirname, `../../../arkoala/framework/build/libc++.so`), path.join(HAR_PATH, `libs/armeabi-v7a/libc++.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-hzvm-ohos-arm32-vmloader/libArkoalaLoader.so`), path.join(HAR_PATH, `libs/armeabi-v7a/libArkoalaLoader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-hzvm-ohos-arm32-vmloader/libvmloader.so`), path.join(HAR_PATH, `libs/armeabi-v7a/libvmloader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-panda-ohos-arm32/libArkoalaNative_ark.so`), path.join(HAR_PATH, `libs/armeabi-v7a/libArkoalaNative_ark.so`)) + copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/armeabi-v7a/arkoala.abc.so`)) + + // arm64 + copyFile(path.join(_dirname, `../../../arkoala/framework/build/libc++.so`), path.join(HAR_PATH, `libs/arm64-v8a/libc++.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-hzvm-ohos-arm64-vmloader/libArkoalaLoader.so`), path.join(HAR_PATH, `libs/arm64-v8a/libArkoalaLoader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-hzvm-ohos-arm64-vmloader/libvmloader.so`), path.join(HAR_PATH, `libs/arm64-v8a/libvmloader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-panda-ohos-arm64/libArkoalaNative_ark.so`), path.join(HAR_PATH, `libs/arm64-v8a/libArkoalaNative_ark.so`)) + copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/arm64-v8a/arkoala.abc.so`)) + + // x64 + copyFile(path.join(_dirname, `../../../arkoala/framework/build/libc++.so`), path.join(HAR_PATH, `libs/x64/libc++.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-node-host-vmloader/libvmloader.so`), path.join(HAR_PATH, `libs/x64/libvmloader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-panda-host/libArkoalaNative_${machine}_${arch}_ark.so`), path.join(HAR_PATH, `libs/x64/libArkoalaNative_${machine}_${arch}_ark.so`)) + copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/x64/arkoala.abc.so`)) +} + +main() diff --git a/arkoala-arkts/package.json b/arkoala-arkts/package.json index cdc4e2c95..090c529d1 100644 --- a/arkoala-arkts/package.json +++ b/arkoala-arkts/package.json @@ -42,6 +42,7 @@ "scripts": { "panda:sdk:install": "npm run panda:sdk:install --prefix ../incremental/tools/panda", "compile:native:node-host": "npm run compile:native-panda-with-node-host --prefix ../arkoala/framework", + "compile:native:panda-host": "npm run compile:native-panda-host --prefix ../arkoala/framework", "compile:native:hzvm-ohos-arm32": "npm run compile:native-panda-with-hzvm-ohos-arm32 --prefix ../arkoala/framework", "compile:native:hzvm-ohos-arm64": "npm run compile:native-panda-with-hzvm-ohos-arm64 --prefix ../arkoala/framework", "build:loader:node": "npm run build:loader:node --prefix loader", @@ -78,6 +79,7 @@ "trivial:all:node:ci": "npm run compile:native:node-host && npm run build:arkoala && npm run build:user && npm run build:loader:node && npm run run:node:ci", "arkoala:har-arm32": "npm run compile:native:hzvm-ohos-arm32 && npm run build:arkoala && npm run har-arm32 --prefix har", "arkoala:har-arm64": "npm run compile:native:hzvm-ohos-arm64 && npm run build:arkoala && npm run har-arm64 --prefix har", + "arkoala:har-universal": "npm run compile:native:node-host && npm run compile:native:panda-host && npm run compile:native:hzvm-ohos-arm32 && npm run compile:native:hzvm-ohos-arm64 && npm run build:arkoala && npm run har-universal --prefix har", "user:har-arm32": "npm run har-arm32 --prefix user", "user:har-arm64": "npm run har-arm64 --prefix user", "shopping:har-arm32": "npm run har-arm32 --prefix shopping", -- Gitee From 7c91746f471516f840cdfa5bb9b1c2d5fbdd116f Mon Sep 17 00:00:00 2001 From: Korobeinikov Evgeny Date: Mon, 3 Feb 2025 10:43:31 +0300 Subject: [PATCH 2/2] Universal ArkTS Har 2 --- arkoala-arkts/application/package.json | 1 + .../scripts/build-arkoala-har-universal.mjs | 8 ++-- arkoala-arkts/package.json | 2 + arkoala-arkts/shopping/package.json | 1 + .../shopping/scripts/build-har-universal.mjs | 40 +++++++++++++++++++ arkoala-arkts/user/package.json | 1 + .../user/scripts/build-har-universal.mjs | 39 ++++++++++++++++++ 7 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 arkoala-arkts/shopping/scripts/build-har-universal.mjs create mode 100644 arkoala-arkts/user/scripts/build-har-universal.mjs diff --git a/arkoala-arkts/application/package.json b/arkoala-arkts/application/package.json index 66d0b7702..68a8a11ed 100644 --- a/arkoala-arkts/application/package.json +++ b/arkoala-arkts/application/package.json @@ -13,6 +13,7 @@ "shopping:har:arm32": "npm run shopping:har-arm32 --prefix ../../arkoala-arkts", "shopping:har:arm64": "npm run shopping:har-arm64 --prefix ../../arkoala-arkts", + "shopping:har:universal": "npm run shopping:har-universal --prefix ../../arkoala-arkts", "install": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-build --install-ohpm-deps-only", "build": "cd shopping && DEVECO_TOOLS_HOME=../../har/command-line-tools node ../../../arkoala/ohos-sdk/scripts/cli.mjs oh-build", diff --git a/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs b/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs index 0e60337f9..684577a88 100644 --- a/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs +++ b/arkoala-arkts/har/scripts/build-arkoala-har-universal.mjs @@ -79,10 +79,10 @@ function main() { copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/arm64-v8a/arkoala.abc.so`)) // x64 - copyFile(path.join(_dirname, `../../../arkoala/framework/build/libc++.so`), path.join(HAR_PATH, `libs/x64/libc++.so`)) - copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-node-host-vmloader/libvmloader.so`), path.join(HAR_PATH, `libs/x64/libvmloader.so`)) - copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-panda-host/libArkoalaNative_${machine}_${arch}_ark.so`), path.join(HAR_PATH, `libs/x64/libArkoalaNative_${machine}_${arch}_ark.so`)) - copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/x64/arkoala.abc.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/build/libc++.so`), path.join(HAR_PATH, `libs/x86-64/libc++.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-node-host-vmloader/libvmloader.so`), path.join(HAR_PATH, `libs/x86-64/libvmloader.so`)) + copyFile(path.join(_dirname, `../../../arkoala/framework/native/build-panda-host/libArkoalaNative_${machine}_${arch}_ark.so`), path.join(HAR_PATH, `libs/x86-64/libArkoalaNative_${machine}_${arch}_ark.so`)) + copyFile(path.join(_dirname, `../../build/arkoala.abc`), path.join(HAR_PATH, `libs/x86-64/arkoala.abc.so`)) } main() diff --git a/arkoala-arkts/package.json b/arkoala-arkts/package.json index 090c529d1..9ef2a739f 100644 --- a/arkoala-arkts/package.json +++ b/arkoala-arkts/package.json @@ -82,8 +82,10 @@ "arkoala:har-universal": "npm run compile:native:node-host && npm run compile:native:panda-host && npm run compile:native:hzvm-ohos-arm32 && npm run compile:native:hzvm-ohos-arm64 && npm run build:arkoala && npm run har-universal --prefix har", "user:har-arm32": "npm run har-arm32 --prefix user", "user:har-arm64": "npm run har-arm64 --prefix user", + "user:har-universal": "npm run har-universal --prefix user", "shopping:har-arm32": "npm run har-arm32 --prefix shopping", "shopping:har-arm64": "npm run har-arm64 --prefix shopping", + "shopping:har-universal": "npm run har-universal --prefix shopping", "clean": "rimraf build", "clean:native": "npm run clean --prefix ../arkoala/framework", "clean:all": "npm run clean && npm run clean:common && npm run clean:incremental && npm run clean:interop && npm run clean:arkui-common && npm run clean:arkui-no-common && npm run clean:native && npm run clean --prefix har && npm run clean --prefix user && npm run clean:shopping", diff --git a/arkoala-arkts/shopping/package.json b/arkoala-arkts/shopping/package.json index 70904a3e9..3c95b0a59 100644 --- a/arkoala-arkts/shopping/package.json +++ b/arkoala-arkts/shopping/package.json @@ -20,6 +20,7 @@ "pack": "npm run cli-tools:check && cd app && DEVECO_SDK_HOME=../../../arkoala/ohos-sdk/ohos-sdk ../command-line-tools/hvigor/bin/hvigorw --no-daemon --mode module -p product=default -p module=shopping@default assembleHar", "har-arm32": "npm run build:shopping && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name shopping --arch arm32 && npm run pack", "har-arm64": "npm run build:shopping && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name shopping --arch arm64 && npm run pack", + "har-universal": "npm run build:shopping && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har-universal.mjs --name shopping && npm run pack", "har-arm64-interop": "npm run build:shopping:interop && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name shopping --arch arm64 && npm run pack", "cli-tools:chmod:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", "cli-tools:chmod:yz": "node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", diff --git a/arkoala-arkts/shopping/scripts/build-har-universal.mjs b/arkoala-arkts/shopping/scripts/build-har-universal.mjs new file mode 100644 index 000000000..1e0b1fa13 --- /dev/null +++ b/arkoala-arkts/shopping/scripts/build-har-universal.mjs @@ -0,0 +1,40 @@ +import { execSync } from "child_process" +import { dirname } from "path" +import { fileURLToPath } from "url" + +import fs from "fs" +import path from "path" +import process from "process" +import minimist from "minimist" + +var args = minimist(process.argv.slice(2)) +const name = args["name"] + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +const CWD = process.cwd() +const HAR_PATH = path.join(CWD, `app/${name}`) + + +function copyFile(from, to) { + if (!fs.existsSync(from)) { + throw new Error(`file ${from} does not exist`) + } + + console.log(`> Copy from: ${from} to ${to}`) + fs.cpSync(from, to, { recursive: true, force: true }) +} + + +function main() { + // arm32 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/armeabi-v7a/${name}.abc.so`)) + + // arm64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/arm64-v8a/${name}.abc.so`)) + + //x64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/x86-64/${name}.abc.so`)) +} + +main() diff --git a/arkoala-arkts/user/package.json b/arkoala-arkts/user/package.json index 8fb7fe817..37fa8e302 100644 --- a/arkoala-arkts/user/package.json +++ b/arkoala-arkts/user/package.json @@ -17,6 +17,7 @@ "pack": "npm run cli-tools:check && cd app && DEVECO_SDK_HOME=../../../arkoala/ohos-sdk/ohos-sdk ../command-line-tools/hvigor/bin/hvigorw --no-daemon --mode module -p product=default -p module=user@default assembleHar", "har-arm32": "npm run build:user && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name user --arch arm32 && npm run pack", "har-arm64": "npm run build:user && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name user --arch arm64 && npm run pack", + "har-universal": "npm run build:user && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har-universal.mjs --name user && npm run pack", "cli-tools:chmod:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", "cli-tools:chmod:yz": "node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../../sdk/scripts/gitlab/gitlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", diff --git a/arkoala-arkts/user/scripts/build-har-universal.mjs b/arkoala-arkts/user/scripts/build-har-universal.mjs new file mode 100644 index 000000000..06a194e3a --- /dev/null +++ b/arkoala-arkts/user/scripts/build-har-universal.mjs @@ -0,0 +1,39 @@ +import { dirname } from "path" +import { fileURLToPath } from "url" + +import fs from "fs" +import path from "path" +import process from "process" +import minimist from "minimist" + +var args = minimist(process.argv.slice(2)) +const name = args["name"] + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +const CWD = process.cwd() +const HAR_PATH = path.join(CWD, `app/${name}`) + + +function copyFile(from, to) { + if (!fs.existsSync(from)) { + throw new Error(`file ${from} does not exist`) + } + + console.log(`> Copy from: ${from} to ${to}`) + fs.cpSync(from, to, { recursive: true, force: true }) +} + + +function main() { + // arm32 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/armeabi-v7a/${name}.abc.so`)) + + // arm64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/arm64-v8a/${name}.abc.so`)) + + //x64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/x86-64/${name}.abc.so`)) +} + +main() -- Gitee