diff options
| author | ruki <[email protected]> | 2017-09-12 22:30:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-09-12 09:03:02 +0800 |
| commit | fba4a811113f6603f17c2d801903f6875e70b7d9 (patch) | |
| tree | f8326f588d2893f6b33104b34784a219a2fcccf6 | |
| parent | 023d79398652864324adcd8be0bde1acc196a8d6 (diff) | |
remove the phony kind of package
| -rw-r--r-- | xmake/actions/require/install.lua | 4 | ||||
| -rw-r--r-- | xmake/actions/require/list.lua | 4 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 56 |
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 |
