diff options
| author | ruki <[email protected]> | 2015-06-30 17:37:10 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-30 17:37:10 +0800 |
| commit | 739a215a2ef11cfe1c8363e965ee19f82d41987d (patch) | |
| tree | ee55311040c4e98b5e7462510b9f8886fc530f93 /xmake/scripts/base/project.lua | |
| parent | a9da9dee9f83abfe04ffbbd865156494c135161e (diff) | |
add packages and directories api
Diffstat (limited to 'xmake/scripts/base/project.lua')
| -rw-r--r-- | xmake/scripts/base/project.lua | 26 |
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" |
