summaryrefslogtreecommitdiff
path: root/xmake/scripts/base/project.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/scripts/base/project.lua')
-rw-r--r--xmake/scripts/base/project.lua19
1 files changed, 18 insertions, 1 deletions
diff --git a/xmake/scripts/base/project.lua b/xmake/scripts/base/project.lua
index 53691e6a5..9e4d9e979 100644
--- a/xmake/scripts/base/project.lua
+++ b/xmake/scripts/base/project.lua
@@ -241,6 +241,17 @@ function project._api_add_values(scope, name, ...)
table.join2(scope[name], ...)
end
+-- del configure values
+function project._api_del_values(scope, name, ...)
+
+ -- check
+ assert(scope and name)
+
+ -- append values
+ scope[name] = scope[name] or {}
+ table.join2(scope[name], ...)
+end
+
-- filter the configure value
function project._filter(values)
@@ -821,7 +832,7 @@ function project._load_targets(file)
-- register interfaces for the subproject files
newenv.add_subdirs = function (...) return project._api_add_subdirs(newenv, ...) end
newenv.add_subfiles = function (...) return project._api_add_subfiles(newenv, ...) end
-
+
-- register interfaces for setting values
local interfaces = { "kind"
, "headerdir"
@@ -867,6 +878,12 @@ function project._load_targets(file)
newenv["add_" .. interface] = function (...) return project._api_add_values(newenv._TARGET or newenv._CONFIGS._ADD, interface, ...) end
end
+ -- register interfaces for deleting values
+ interfaces = { "files" }
+ for _, interface in ipairs(interfaces) do
+ newenv["del_" .. interface] = function (...) return project._api_del_values(newenv._TARGET or newenv._CONFIGS._ADD, interface, ...) end
+ end
+
-- done the project script
local ok, errors = pcall(script)
if not ok then