summaryrefslogtreecommitdiff
path: root/xmake/rules/xcode/application
diff options
context:
space:
mode:
authorruki <[email protected]>2020-04-10 22:58:21 +0800
committerruki <[email protected]>2020-04-10 11:50:12 +0800
commit1307e332023cd31e061e0bd954201c5f41a44026 (patch)
treea5e4f9f8854f3d1c8dab7c44ceae09e1fbbc4ce7 /xmake/rules/xcode/application
parent25121b2721dbcee151eaad958c55a54617eea60a (diff)
improve install and uninstall app
Diffstat (limited to 'xmake/rules/xcode/application')
-rw-r--r--xmake/rules/xcode/application/install.lua13
-rw-r--r--xmake/rules/xcode/application/load.lua5
-rw-r--r--xmake/rules/xcode/application/uninstall.lua23
3 files changed, 39 insertions, 2 deletions
diff --git a/xmake/rules/xcode/application/install.lua b/xmake/rules/xcode/application/install.lua
index ffb34230c..fd90694f6 100644
--- a/xmake/rules/xcode/application/install.lua
+++ b/xmake/rules/xcode/application/install.lua
@@ -36,14 +36,23 @@ function _install_for_ios(target)
-- do install
os.vrunv(ideviceinstaller.program, {"-i", ipafile})
+end
+
+-- install for macosx
+function _install_for_macosx(target)
+
+ -- get app directory
+ local appdir = target:data("xcode.bundle.rootdir")
- -- trace
- cprint("${color.success}install ok!")
+ -- do install
+ os.vcp(appdir, target:installdir() or "/Applications/")
end
-- main entry
function main (target)
if is_plat("iphoneos") then
_install_for_ios(target)
+ elseif is_plat("macosx") then
+ _install_for_macosx(target)
end
end
diff --git a/xmake/rules/xcode/application/load.lua b/xmake/rules/xcode/application/load.lua
index 071b94901..ddac69126 100644
--- a/xmake/rules/xcode/application/load.lua
+++ b/xmake/rules/xcode/application/load.lua
@@ -45,6 +45,11 @@ function main (target)
target:set("targetdir", bundledir)
end
+ -- set install directory
+ if is_plat("macosx") and not target:get("installdir") then
+ target:set("installdir", "/Applications")
+ end
+
-- add frameworks
if is_plat("macosx") then
target:add("frameworks", "AppKit")
diff --git a/xmake/rules/xcode/application/uninstall.lua b/xmake/rules/xcode/application/uninstall.lua
index 9f190bf60..31d0c899c 100644
--- a/xmake/rules/xcode/application/uninstall.lua
+++ b/xmake/rules/xcode/application/uninstall.lua
@@ -18,6 +18,29 @@
-- @file uninstall.lua
--
+-- imports
+import("lib.detect.find_tool")
+
+-- uninstall for ios
+function _uninstall_for_ios(target)
+ -- TODO
+end
+
+-- uninstall for macosx
+function _uninstall_for_macosx(target)
+
+ -- get app directory
+ local appdir = target:data("xcode.bundle.rootdir")
+
+ -- do uninstall
+ os.rm(path.join(target:installdir() or "/Applications", path.filename(appdir)))
+end
+
-- main entry
function main (target)
+ if is_plat("iphoneos") then
+ _uninstall_for_ios(target)
+ elseif is_plat("macosx") then
+ _uninstall_for_macosx(target)
+ end
end