summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-09-12 22:30:30 +0800
committerruki <[email protected]>2017-09-12 09:03:02 +0800
commitfba4a811113f6603f17c2d801903f6875e70b7d9 (patch)
treef8326f588d2893f6b33104b34784a219a2fcccf6
parent023d79398652864324adcd8be0bde1acc196a8d6 (diff)
remove the phony kind of package
-rw-r--r--xmake/actions/require/install.lua4
-rw-r--r--xmake/actions/require/list.lua4
-rw-r--r--xmake/core/package/package.lua56
3 files changed, 39 insertions, 25 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua
index 37218ed67..baa5b5315 100644
--- a/xmake/actions/require/install.lua
+++ b/xmake/actions/require/install.lua
@@ -94,14 +94,14 @@ function main(requires)
local packages_remote = {}
if option.get("force") then
for _, instance in ipairs(packages) do
- if instance and not instance:phony() then
+ if instance and #instance:urls() > 0 then
table.insert(packages_remote, instance)
end
end
else
process.runjobs(function (index)
local instance = packages[index]
- if instance and not instance:phony() and not instance:fetch() then
+ if instance and #instance:urls() > 0 and not instance:fetch() then
table.insert(packages_remote, instance)
end
end, #packages)
diff --git a/xmake/actions/require/list.lua b/xmake/actions/require/list.lua
index 73f367bfa..3268ee2d6 100644
--- a/xmake/actions/require/list.lua
+++ b/xmake/actions/require/list.lua
@@ -54,10 +54,10 @@ function main()
local requireinfo = instance:requireinfo() or {}
local packageopt = project.option(instance:fullname())
if packageopt then
- cprint(" ${magenta}require${clear}(${bright}%s${clear}): %s%s%s", requireinfo.originstr, ifelse(instance:version_str(), instance:version_str(), "group"), ifelse(instance:fetch(), ", ${green}local${clear}", ", ${yellow}remote${clear}"), ifelse(requireinfo.optional, ", optional", ""))
+ cprint(" ${magenta}require${clear}(${bright}%s${clear}): %s%s%s", requireinfo.originstr, ifelse(instance:version_str(), instance:version_str(), "no version"), ifelse(instance:fetch(), ", ${green}local${clear}", ", ${yellow}remote${clear}"), ifelse(requireinfo.optional, ", optional", ""))
for _, dep in ipairs(instance:orderdeps()) do
requireinfo = dep:requireinfo() or {}
- cprint(" -> ${magenta}dep${clear}(${bright}%s${clear}): %s%s%s", requireinfo.originstr, ifelse(dep:version_str(), dep:version_str(), "group"), ifelse(dep:fetch(), ", ${green}local${clear}", ", ${yellow}remote${clear}"), ifelse(requireinfo.optional, ", ${yellow}optional${clear}", ""))
+ cprint(" -> ${magenta}dep${clear}(${bright}%s${clear}): %s%s%s", requireinfo.originstr, ifelse(dep:version_str(), dep:version_str(), "no version"), ifelse(dep:fetch(), ", ${green}local${clear}", ", ${yellow}remote${clear}"), ifelse(requireinfo.optional, ", ${yellow}optional${clear}", ""))
end
end
end
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 3e5f6eddf..d3c23a82a 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -128,11 +128,6 @@ function _instance:orderdeps()
return self._ORDERDEPS
end
--- phony package?
-function _instance:phony()
- return #self:urls() == 0
-end
-
-- get sha256
function _instance:sha256()
@@ -158,9 +153,16 @@ function _instance:sha256()
return self._SHA256
end
--- is global package?
-function _instance:global()
- return self._ISGLOBAL
+-- this package is from system/local/global?
+--
+-- @param kind the from kind
+--
+-- system: from the system directories (.e.g /usr/local)
+-- local: from the local project package directories (.e.g projectdir/.xmake/packages)
+-- global: from the global package directories (.e.g ~/.xmake/packages)
+--
+function _instance:from(kind)
+ return self._FROMKIND == kind
end
-- is optional package?
@@ -170,12 +172,24 @@ end
-- get the cached directory of this package
function _instance:cachedir()
- return path.join(package.cachedir(), self:fullname() .. "-" .. (self:version_str() or "group"))
+ local version_str = self:version_str()
+ if version_str then
+ version_str = "-" .. version_str
+ else
+ version_str = ""
+ end
+ return path.join(package.cachedir(), self:fullname() .. version_str)
end
-- get the installed directory of this package
function _instance:installdir()
- return path.join(package.installdir(self:global()), self:fullname() .. "-" .. (self:version_str() or "group"))
+ local version_str = self:version_str()
+ if version_str then
+ version_str = "-" .. version_str
+ else
+ version_str = ""
+ end
+ return path.join(package.installdir(self:from("global")), self:fullname() .. version_str)
end
-- get the version
@@ -257,12 +271,12 @@ end
-- fetch package info from the local packages
function _instance:fetch()
- -- find package
- if not self:phony() then
- self._find_package = self._find_package or import("lib.detect.find_package", {anonymous = true})
- self._FETCHINFO = self._FETCHINFO or self._find_package(self:name(), {packagedirs = self:installdir()})
- return self._FETCHINFO
- end
+ -- import find_package
+ self._find_package = self._find_package or import("lib.detect.find_package", {anonymous = true})
+
+ -- fetch the package info in local
+ self._FETCHINFO = self._FETCHINFO or self._find_package(self:name(), {packagedirs = self:installdir()})
+ return self._FETCHINFO
end
-- exists this package in local
@@ -387,8 +401,8 @@ function package.load_from_system(packagename)
return nil, errors
end
- -- mark as local package
- instance._ISGLOBAL = false
+ -- mark as system package
+ instance._FROMKIND = "system"
-- save instance to the cache
package._PACKAGES[packagename] = instance
@@ -427,7 +441,7 @@ function package.load_from_project(packagename)
end
-- mark as local package
- instance._ISGLOBAL = false
+ instance._FROMKIND = "local"
-- save instance to the cache
package._PACKAGES[packagename] = instance
@@ -471,8 +485,8 @@ function package.load_from_repository(packagename, is_global, packagedir, packag
return nil, errors
end
- -- mark as global package?
- instance._ISGLOBAL = is_global
+ -- mark as global/project package?
+ instance._FROMKIND = utils.ifelse(is_global, "global", "local")
-- save instance to the cache
package._PACKAGES[packagename] = instance