diff options
| author | ruki <[email protected]> | 2021-10-27 22:45:11 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-10-27 22:45:11 +0800 |
| commit | cc80af774a9426d7775be165adb4aa00d8569ed6 (patch) | |
| tree | 96254ab6f35f35668f9cbefdf386b666e8865aaa | |
| parent | c871e3f603c6022c16659cca61f8995f29b5275e (diff) | |
impl nimble/install_package
| -rw-r--r-- | tests/projects/nim/nimble_package/xmake.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/package/manager/nimble/install_package.lua | 12 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 2 |
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 |
