summaryrefslogtreecommitdiff
path: root/xmake/core/project/requireinfo.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-02-12 22:47:46 +0800
committerruki <[email protected]>2021-02-12 22:47:46 +0800
commitb29d4891a97dda8bc7a8b805651a77c0bb7698c0 (patch)
treea4bc530c7c7376bee9d44ae0d84351c0ad6360e2 /xmake/core/project/requireinfo.lua
parentc470ec0850309c75e089c3722376316bbe20bbd8 (diff)
rename project.requireinfo to package
Diffstat (limited to 'xmake/core/project/requireinfo.lua')
-rw-r--r--xmake/core/project/requireinfo.lua190
1 files changed, 0 insertions, 190 deletions
diff --git a/xmake/core/project/requireinfo.lua b/xmake/core/project/requireinfo.lua
deleted file mode 100644
index 218f346ff..000000000
--- a/xmake/core/project/requireinfo.lua
+++ /dev/null
@@ -1,190 +0,0 @@
---!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 requireinfo.lua
---
-
--- define module
-local requireinfo = requireinfo or {}
-
--- load modules
-local io = require("base/io")
-local os = require("base/os")
-local path = require("base/path")
-local table = require("base/table")
-local utils = require("base/utils")
-local config = require("project/config")
-local semver = require("base/semver")
-local sandbox = require("sandbox/sandbox")
-local localcache = require("cache/localcache")
-
--- get cache
-function requireinfo._cache()
- return localcache.cache("package")
-end
-
--- save the requires info to the cache
-function requireinfo:save()
- requireinfo._cache():set(self:name(), self._INFO)
- requireinfo._cache():save()
-end
-
--- clear the requireinfo
-function requireinfo:clear()
- local info = self._INFO
- if info then
- for k, v in pairs(info) do
- if not k:startswith("__") then
- info[k] = nil
- end
- end
- end
-end
-
--- dump this requireinfo
-function requireinfo:dump()
- utils.dump(self._INFO)
-end
-
--- get the require info
-function requireinfo:get(infoname)
- return self._INFO[infoname]
-end
-
--- get the require name
-function requireinfo:name()
- return self._NAME
-end
-
--- get the package version
-function requireinfo:version()
-
- -- get it from cache first
- if self._VERSION ~= nil then
- return self._VERSION
- end
-
- -- get version
- local version = nil
- local verstr = self:get("version")
- if verstr then
- version = semver.new(verstr)
- end
- self._VERSION = version or false
- return version
-end
-
--- get the package license
-function requireinfo:license()
- return self:get("license")
-end
-
--- has static libraries?
-function requireinfo:has_static()
- return self:get("static")
-end
-
--- has shared libraries?
-function requireinfo:has_shared()
- return self:get("shared")
-end
-
--- get the require string
-function requireinfo:requirestr()
- return self:get("__requirestr")
-end
-
--- get the install directory
-function requireinfo:installdir()
- return self:get("__installdir")
-end
-
--- get the extra info from the given name
-function requireinfo:extra(name)
- local extrainfo = self:extrainfo()
- if extrainfo then
- return extrainfo[name]
- end
-end
-
--- get the extra info
-function requireinfo:extrainfo()
- return self:get("__extrainfo")
-end
-
--- set the value to the requires info
-function requireinfo:set(name_or_info, ...)
- if type(name_or_info) == "string" then
- local args = ...
- if args ~= nil then
- self._INFO[name_or_info] = table.unwrap(table.unique(table.join(...)))
- else
- self._INFO[name_or_info] = nil
- end
- elseif table.is_dictionary(name_or_info) then
- for name, info in pairs(table.join(name_or_info, ...)) do
- self:set(name, info)
- end
- end
-end
-
--- add the value to the requires info
-function requireinfo:add(name_or_info, ...)
- if type(name_or_info) == "string" then
- local info = table.wrap(self._INFO[name_or_info])
- self._INFO[name_or_info] = table.unwrap(table.unique(table.join(info, ...)))
- elseif table.is_dictionary(name_or_info) then
- for name, info in pairs(table.join(name_or_info, ...)) do
- self:add(name, info)
- end
- end
-end
-
--- this require info is enabled?
-function requireinfo:enabled()
- return self:get("__enabled")
-end
-
--- enable or disable this require info
---
--- @param enabled enable it?
---
-function requireinfo:enable(enabled)
- self:set("__enabled", enabled)
-end
-
--- load the requires info from the cache
-function requireinfo.load(name)
-
- -- check
- assert(name)
-
- -- get info
- local info = requireinfo._cache():get(name)
- if info == nil then
- return
- end
-
- -- init requireinfo instance
- local instance = table.inherit(requireinfo)
- instance._INFO = info
- instance._NAME = name
- return instance
-end
-
--- return module
-return requireinfo