summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-09-28 00:11:40 +0800
committerruki <[email protected]>2018-09-27 19:10:01 +0800
commit7046c69101bf6d6d17ba9ba744526d1ef6aaa524 (patch)
tree8e8ee7342830a5dbd3244bd49f9bd9350371bf6e
parent8607468bbf60fd6deb6da8f984b7a3135979adeb (diff)
excludes files for package
-rw-r--r--xmake/actions/require/action/download.lua9
-rw-r--r--xmake/core/package/package.lua11
2 files changed, 17 insertions, 3 deletions
diff --git a/xmake/actions/require/action/download.lua b/xmake/actions/require/action/download.lua
index 61d64d124..bb5017e5f 100644
--- a/xmake/actions/require/action/download.lua
+++ b/xmake/actions/require/action/download.lua
@@ -85,7 +85,7 @@ function _checkout(package, url, sourcedir)
end
-- download codes from ftp/http/https
-function _download(package, url, sourcedir, url_alias)
+function _download(package, url, sourcedir, url_alias, url_excludes)
-- get package file
local packagefile = path.filename(url)
@@ -111,7 +111,7 @@ function _download(package, url, sourcedir, url_alias)
-- extract package file
os.rm(sourcedir .. ".tmp")
- if archive.extract(packagefile, sourcedir .. ".tmp") then
+ if archive.extract(packagefile, sourcedir .. ".tmp", {excludes = url_excludes}) then
-- move to source directory
os.rm(sourcedir)
os.mv(sourcedir .. ".tmp", sourcedir)
@@ -166,6 +166,9 @@ function main(package)
-- get url alias
local url_alias = package:url_alias(url)
+ -- get url excludes
+ local url_excludes = package:url_excludes(url)
+
-- filter url
url = filter.handle(url, package)
@@ -179,7 +182,7 @@ function main(package)
if git.checkurl(url) then
_checkout(package, url, sourcedir)
else
- _download(package, url, sourcedir, url_alias)
+ _download(package, url, sourcedir, url_alias, url_excludes)
end
-- ok
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 3d0996eb8..39d356127 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -127,6 +127,17 @@ function _instance:url_version(url)
end
end
+-- get the excludes list of url for the archive extractor, @note need raw url
+function _instance:url_excludes(url)
+ local urls_extra = self:get("__extra_urls")
+ if urls_extra then
+ local urlextra = urls_extra[url]
+ if urlextra then
+ return urlextra.excludes
+ end
+ end
+end
+
-- get deps
function _instance:deps()
return self._DEPS