diff options
| author | ruki <[email protected]> | 2024-12-17 00:33:05 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-12-17 00:33:05 +0800 |
| commit | 02879d82807aa8812a7e4967b1dd3597996ab23b (patch) | |
| tree | 1e10bdb60d665039633d92eb19710131849d2120 | |
| parent | bd09a63c94cde6fc2e385c83277c52ad355965c1 (diff) | |
install nuget package
| -rw-r--r-- | xmake/modules/package/manager/nuget/find_package.lua | 35 | ||||
| -rw-r--r-- | xmake/modules/package/manager/nuget/install_package.lua | 70 |
2 files changed, 105 insertions, 0 deletions
diff --git a/xmake/modules/package/manager/nuget/find_package.lua b/xmake/modules/package/manager/nuget/find_package.lua new file mode 100644 index 000000000..f766139e0 --- /dev/null +++ b/xmake/modules/package/manager/nuget/find_package.lua @@ -0,0 +1,35 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015-present, TBOOX Open Source Group. +-- +-- @author ruki +-- @file find_package.lua +-- + +-- imports +import("lib.detect.find_file") +import("lib.detect.find_tool") +import("core.base.option") +import("core.project.config") +import("core.project.target") + +-- find package from the nuget package manager +-- +-- @param name the package name, e.g. zlib, pcre +-- @param opt the options, e.g. {verbose = true) +-- +function main(name, opt) + opt = opt or {} +end diff --git a/xmake/modules/package/manager/nuget/install_package.lua b/xmake/modules/package/manager/nuget/install_package.lua new file mode 100644 index 000000000..281fa2f16 --- /dev/null +++ b/xmake/modules/package/manager/nuget/install_package.lua @@ -0,0 +1,70 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015-present, TBOOX Open Source Group. +-- +-- @author ruki +-- @file install_package.lua +-- + +-- imports +import("core.base.option") +import("core.base.json") +import("core.base.semver") +import("lib.detect.find_tool") + +-- dotnet add package libpapki --version 1.0.147 +function _install(dotnet, name, opt) + + -- init argv + local argv = {"add", "package", name} + local require_version = opt.require_version + if require_version == "latest" then + require_version = nil + end + if require_version then + table.insert(argv, "--version") + table.insert(argv, require_version) + end + + local installdir = assert(opt.installdir, "installdir not found!") + if not os.isdir(installdir) then + os.mkdir(installdir) + end + local stubdir = path.join(installdir, "stub") + if not os.isdir(stubdir) then + os.vrunv(dotnet, {"new", "console", "-n", "stub"}, {curdir = installdir}) + end + + -- install package + os.vrunv(dotnet, argv, {curdir = stubdir}) + + local manifestfile = path.join(stubdir, "obj", "project.assets.json") + io.cat(manifestfile) +end + +-- install package +-- +-- @param name the package name, e.g. pcre2 +-- @param opt the options, e.g. {verbose = true} +-- +-- @return true or false +-- +function main(name, opt) + local dotnet = find_tool("dotnet") + if not dotnet then + raise("dotnet not found!") + end + _install(dotnet.program, name, opt or {}) +end |
