summaryrefslogtreecommitdiff
path: root/xmake/scripts/base/project.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-30 17:37:10 +0800
committerruki <[email protected]>2015-06-30 17:37:10 +0800
commit739a215a2ef11cfe1c8363e965ee19f82d41987d (patch)
treeee55311040c4e98b5e7462510b9f8886fc530f93 /xmake/scripts/base/project.lua
parenta9da9dee9f83abfe04ffbbd865156494c135161e (diff)
add packages and directories api
Diffstat (limited to 'xmake/scripts/base/project.lua')
-rw-r--r--xmake/scripts/base/project.lua26
1 files changed, 24 insertions, 2 deletions
diff --git a/xmake/scripts/base/project.lua b/xmake/scripts/base/project.lua
index b424c8988..85f652f2f 100644
--- a/xmake/scripts/base/project.lua
+++ b/xmake/scripts/base/project.lua
@@ -331,6 +331,20 @@ function project._api_add_subfiles(env, ...)
project._CURDIR = curdir
end
+-- load all packages from the given directories
+function project._api_add_pkgdirs(env, ...)
+
+ -- get all directories
+ local pkgdirs = {}
+ local dirs = table.join(...)
+ for _, dir in ipairs(dirs) do
+ table.insert(pkgdirs, dir .. "/*.pkg")
+ end
+
+ -- add all packages
+ project._api_add_subdirs(env, pkgdirs)
+end
+
-- set configure values
function project._api_set_values(scope, name, ...)
@@ -954,7 +968,11 @@ function project._load_options(file)
-- register interfaces for the functions
newenv.add_cfuncs = function (...) return project._api_add_cfuncs(newenv, ...) end
newenv.add_cxxfuncs = function (...) return project._api_add_cxxfuncs(newenv, ...) end
-
+
+ -- register interfaces for the package files
+ newenv.add_pkgdirs = function (...) return project._api_add_pkgdirs(newenv, ...) end
+ newenv.add_pkgs = function (...) return project._api_add_subdirs(newenv, ...) end
+
-- register interfaces for setting option values
local interfaces = { "enable"
, "showmenu"
@@ -1051,7 +1069,11 @@ function project._load_targets(file)
-- register interfaces for the functions
newenv.add_cfuncs = function (...) return project._api_add_cfuncs(newenv, ...) end
newenv.add_cxxfuncs = function (...) return project._api_add_cxxfuncs(newenv, ...) end
-
+
+ -- register interfaces for the package files
+ newenv.add_pkgdirs = function (...) return project._api_add_pkgdirs(newenv, ...) end
+ newenv.add_pkgs = function (...) return project._api_add_subdirs(newenv, ...) end
+
-- register interfaces for setting values
local interfaces = { "kind"
, "config_h_prefix"