summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-10-27 22:45:11 +0800
committerruki <[email protected]>2021-10-27 22:45:11 +0800
commitcc80af774a9426d7775be165adb4aa00d8569ed6 (patch)
tree96254ab6f35f35668f9cbefdf386b666e8865aaa
parentc871e3f603c6022c16659cca61f8995f29b5275e (diff)
impl nimble/install_package
-rw-r--r--tests/projects/nim/nimble_package/xmake.lua2
-rw-r--r--xmake/modules/package/manager/nimble/install_package.lua12
-rw-r--r--xmake/modules/private/action/require/impl/package.lua2
3 files changed, 14 insertions, 2 deletions
diff --git a/tests/projects/nim/nimble_package/xmake.lua b/tests/projects/nim/nimble_package/xmake.lua
index af3e0f0f5..45e6f3132 100644
--- a/tests/projects/nim/nimble_package/xmake.lua
+++ b/tests/projects/nim/nimble_package/xmake.lua
@@ -1,6 +1,6 @@
add_rules("mode.debug", "mode.release")
-add_requires("nimble::zip")
+add_requires("nimble::zip >0.3")
target("test")
set_kind("binary")
diff --git a/xmake/modules/package/manager/nimble/install_package.lua b/xmake/modules/package/manager/nimble/install_package.lua
index 57addc15a..b5ba21438 100644
--- a/xmake/modules/package/manager/nimble/install_package.lua
+++ b/xmake/modules/package/manager/nimble/install_package.lua
@@ -38,4 +38,16 @@ function main(name, opt)
raise("nimble not found!")
end
+ -- install the given package
+ local argv = {"install", "-y"}
+ if option.get("verbose") then
+ table.insert(argv, "--verbose")
+ end
+ local require_str = name
+ if opt.require_version and opt.require_version ~= "latest" and opt.require_version ~= "master" then
+ name = name .. "@"
+ name = name .. opt.require_version
+ end
+ table.insert(argv, name)
+ os.vrunv(nimble.program, argv)
end
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 5a43de562..77c20648b 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -339,7 +339,7 @@ function _select_package_version(package, requireinfo, locked_requireinfo)
version = "latest"
source = "version"
end
- if not version then
+ if not version and not package:is_thirdparty() then
raise("package(%s): version(%s) not found!", package:name(), require_version)
end
return version, source