summaryrefslogtreecommitdiff
path: root/xmake/rules/xmake_cli/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-04-23 22:48:24 +0800
committerruki <[email protected]>2020-04-23 10:50:25 +0800
commitc6c35ff6929f6e49d300b0b586588347a5a97e2c (patch)
tree9b1bbb239394f2e10f6df3c1eefbee5eea915dce /xmake/rules/xmake_cli/xmake.lua
parenta8598427d2d0253083b5413df333631d0b3a02c5 (diff)
improve xmake/cli
Diffstat (limited to 'xmake/rules/xmake_cli/xmake.lua')
-rw-r--r--xmake/rules/xmake_cli/xmake.lua31
1 files changed, 23 insertions, 8 deletions
diff --git a/xmake/rules/xmake_cli/xmake.lua b/xmake/rules/xmake_cli/xmake.lua
index a3aad786b..19d7242a3 100644
--- a/xmake/rules/xmake_cli/xmake.lua
+++ b/xmake/rules/xmake_cli/xmake.lua
@@ -26,6 +26,13 @@ rule("xmake.cli")
end)
after_install(function (target)
+ -- get lua script directory
+ local scriptdir = path.join(target:scriptdir(), "src")
+ if not os.isfile(path.join(scriptdir, "lua", "main.lua")) then
+ import("lib.detect.find_path")
+ scriptdir = find_path("lua/main.lua", path.join(target:scriptdir(), "**"))
+ end
+
-- install xmake-core lua scripts first
local libxmake = target:pkg("libxmake")
local programdir = path.join(path.directory(libxmake:get("linkdirs")), "share", "xmake")
@@ -34,7 +41,16 @@ rule("xmake.cli")
if not os.isdir(installdir) then
os.mkdir(installdir)
end
- os.vcp(path.join(programdir, "*"), installdir)
+ if scriptdir then
+ os.mkdir(path.join(installdir, "plugins"))
+ os.vcp(path.join(programdir, "core"), installdir)
+ os.vcp(path.join(programdir, "modules"), installdir)
+ os.vcp(path.join(programdir, "themes"), installdir)
+ os.vcp(path.join(programdir, "plugins", "lua"), path.join(installdir, "plugins"))
+ os.vcp(path.join(programdir, "actions", "build", "xmake.lua"), path.join(installdir, "actions", "build", "xmake.lua"))
+ else
+ os.vcp(path.join(programdir, "*"), installdir)
+ end
-- install xmake/cli lua scripts
--
@@ -47,22 +63,21 @@ rule("xmake.cli")
-- - main.lua
--
- local scriptdir = path.join(target:scriptdir(), "src")
- if not os.isfile(path.join(scriptdir, "lua", "main.lua")) then
- import("lib.detect.find_path")
- scriptdir = assert(find_path("lua/main.lua", path.join(target:scriptdir(), "**")), "lua/main.lua not found!")
+ if scriptdir then
+ os.vcp(path.join(scriptdir, "lua"), path.join(installdir, "modules"))
end
- os.vcp(path.join(scriptdir, "lua"), path.join(installdir, "modules"))
end)
before_run(function (target)
local scriptdir = path.join(target:scriptdir(), "src")
if not os.isfile(path.join(scriptdir, "lua", "main.lua")) then
import("lib.detect.find_path")
- scriptdir = assert(find_path("lua/main.lua", path.join(target:scriptdir(), "**")), "lua/main.lua not found!")
+ scriptdir = find_path("lua/main.lua", path.join(target:scriptdir(), "**"))
+ end
+ if scriptdir then
+ os.setenv("XMAKE_MODULES_DIR", scriptdir)
end
local libxmake = target:pkg("libxmake")
local programdir = path.join(path.directory(libxmake:get("linkdirs")), "share", "xmake")
assert(os.isdir(programdir), "%s not found!", programdir)
os.setenv("XMAKE_PROGRAM_DIR", programdir)
- os.setenv("XMAKE_MODULES_DIR", scriptdir)
end)