diff options
| -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 |
