summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-12-16 23:30:38 +0800
committerruki <[email protected]>2025-12-16 23:30:38 +0800
commitb0f05a5196bb5c4b0590895e69c64fd1a2be3f9c (patch)
tree28c428ac7272b96017734de24c449259d34bc3e5
parentc92d42d463b2593c31baa53769ab2951af545329 (diff)
improve check logs
-rw-r--r--xmake/rules/ndk/install.lua5
-rw-r--r--xmake/rules/ndk/package.lua13
-rw-r--r--xmake/rules/ndk/xmake.lua2
3 files changed, 9 insertions, 11 deletions
diff --git a/xmake/rules/ndk/install.lua b/xmake/rules/ndk/install.lua
index 092562ccf..20f213f05 100644
--- a/xmake/rules/ndk/install.lua
+++ b/xmake/rules/ndk/install.lua
@@ -19,6 +19,7 @@
--
-- imports
+import("core.tool.toolchain")
import("run", {alias = "run_app"})
-- main entry
@@ -28,10 +29,10 @@ function main(target)
local adb = path.join(android_sdkdir, "platform-tools", "adb")
local final_apk = path.join(target:targetdir(), target:basename() .. ".apk")
- assert(os.exists(final_apk))
+ assert(os.isfile(final_apk), "apk file %s not found!", final_apk)
cprint("installing %s ...", final_apk)
- os.vrunv(adb, {"install", final_apk})
+ os.vrunv(adb, {"install", "-r", final_apk})
cprint("install ok")
-- run it
diff --git a/xmake/rules/ndk/package.lua b/xmake/rules/ndk/package.lua
index 171d697e5..5b4921ddb 100644
--- a/xmake/rules/ndk/package.lua
+++ b/xmake/rules/ndk/package.lua
@@ -20,9 +20,10 @@
-- imports
import("core.tool.toolchain")
+import("utils.progress")
-- main entry
-function main(target)
+function main(target, opt)
local conf = target:extraconf("rules", "android.native_app")
local android_sdk_version = conf.android_sdk_version
@@ -35,6 +36,9 @@ function main(target)
assert(android_sdk_version, "android sdk version not set")
assert(android_manifest, "android manifest not set")
+ local final_apk = path.join(target:targetdir(), target:basename() .. ".apk")
+ progress.show(opt.progress, "${color.build.target}packing.apk %s", final_apk)
+
local tmp_path = path.join(target:targetdir(), "temp")
os.mkdir(tmp_path)
os.mkdir(path.join(tmp_path, "lib"))
@@ -70,26 +74,19 @@ function main(target)
table.insert(aapt_argv, android_assets)
end
- cprint("packing resources ...")
os.vrunv(aapt, aapt_argv)
-- pack libs
- cprint("packing library ...")
os.vrunv(aapt, {"add", "res_only.apk", "lib/" .. target:arch() .."/libmain.so"}, {curdir = tmp_path})
-- align apk
local aligned_apk = path.join(tmp_path, "unsigned.apk")
local zipalign_argv = {"-f", "4", "res_only.apk", "unsigned.apk"}
- cprint("aligning apk ...")
os.vrunv(zipalign, zipalign_argv, {curdir = tmp_path})
-- sign apk
- local final_apk = path.join(target:targetdir(), target:basename() .. ".apk")
-
local apksigner_argv = {"sign", "--ks", keystore, "--ks-pass", string.format("pass:%s", keystore_pass), "--out",
final_apk, "--in", aligned_apk}
- cprint("packing %s ...", final_apk)
os.vrunv(apksigner, apksigner_argv)
- cprint("pack ok")
end
diff --git a/xmake/rules/ndk/xmake.lua b/xmake/rules/ndk/xmake.lua
index 5de5c8ad9..783abac65 100644
--- a/xmake/rules/ndk/xmake.lua
+++ b/xmake/rules/ndk/xmake.lua
@@ -40,7 +40,7 @@ rule("android.native_app")
on_load("load")
-- generate android apk package
- on_package("package")
+ after_build("package")
-- install android package with adb
on_install("install")