summaryrefslogtreecommitdiff
path: root/xmake/plugins/project
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-23 23:49:51 +0800
committerruki <[email protected]>2020-12-23 23:49:51 +0800
commit414e6f39860680b693263fd97daa77c48dc5e143 (patch)
tree9b99a62fcf5f0f30ad18beb8e1ba56cad320bb82 /xmake/plugins/project
parent50f826bb2df51dd80eb67054e446a496f2b6d15a (diff)
improve project
Diffstat (limited to 'xmake/plugins/project')
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua14
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua11
2 files changed, 17 insertions, 8 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index cdb18a828..f0a98ac53 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -233,17 +233,19 @@ function make(outputdir, vsinfo)
-- reload config, project and platform
if mode ~= config.mode() or arch ~= config.arch() then
- -- clear cache
- memcache.clear()
- localcache.clear()
-
-- modify config
config.set("as", nil, {force = true}) -- force to re-check as for ml/ml64
config.set("mode", mode, {readonly = true, force = true})
config.set("arch", arch, {readonly = true, force = true})
- -- clear project to reload and recheck it
- project.clear()
+ -- clear all options
+ for _, opt in ipairs(project.options()) do
+ opt:clear()
+ end
+
+ -- clear cache
+ memcache.clear()
+ localcache.clear()
-- check platform
platform.load(config.plat(), arch):check()
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua
index e7b7cc556..a3a978111 100644
--- a/xmake/plugins/project/vsxmake/getinfo.lua
+++ b/xmake/plugins/project/vsxmake/getinfo.lua
@@ -27,6 +27,7 @@ import("core.project.project")
import("core.platform.platform")
import("core.tool.compiler")
import("core.tool.linker")
+import("core.cache.memcache")
import("core.cache.localcache")
import("lib.detect.find_tool")
import("private.action.run.make_runenvs")
@@ -292,8 +293,14 @@ function main(outputdir, vsinfo)
config.set("mode", mode, {readonly = true, force = true})
config.set("arch", arch, {readonly = true, force = true})
- -- clear project to reload and recheck it
- project.clear()
+ -- clear all options
+ for _, opt in ipairs(project.options()) do
+ opt:clear()
+ end
+
+ -- clear cache
+ memcache.clear()
+ localcache.clear()
-- check platform
platform.load(config.plat(), arch):check()