summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-14 22:39:29 +0800
committerruki <[email protected]>2020-12-14 22:39:29 +0800
commit4030bf655cd5bbf3af26b682078f4354eb2cb86c (patch)
tree5e860e3c4abd5769489de9d6dcae6d514d29e03c
parent007b2200be5b2a8e5d784829782b56793e93e572 (diff)
remove __vcvarsall
-rw-r--r--xmake/modules/detect/sdks/find_dotnet.lua17
-rw-r--r--xmake/modules/detect/sdks/find_wdk.lua22
-rw-r--r--xmake/modules/detect/tools/find_devenv.lua12
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua10
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua6
-rw-r--r--xmake/toolchains/msvc/load.lua1
6 files changed, 33 insertions, 35 deletions
diff --git a/xmake/modules/detect/sdks/find_dotnet.lua b/xmake/modules/detect/sdks/find_dotnet.lua
index bb8180f57..284925f04 100644
--- a/xmake/modules/detect/sdks/find_dotnet.lua
+++ b/xmake/modules/detect/sdks/find_dotnet.lua
@@ -21,6 +21,7 @@
-- imports
import("lib.detect.cache")
import("lib.detect.find_file")
+import("core.tool.toolchain")
import("core.base.option")
import("core.base.global")
import("core.project.config")
@@ -28,14 +29,16 @@ import("core.project.config")
-- find dotnet directory
function _find_sdkdir(sdkdir)
- -- get sdk directory from vsvars
+ -- get sdk directory from vcvars
if not sdkdir then
- local arch = config.arch()
- local vcvarsall = config.get("__vcvarsall")
- if vcvarsall then
- sdkdir = (vcvarsall[arch] or {}).WindowsSdkDir
- if sdkdir then
- sdkdir = path.join(path.directory(path.translate(sdkdir)), "NETFXSDK")
+ local msvc = toolchain.load("msvc")
+ if msvc and msvc:check() then
+ local vcvars = msvc:config("vcvars")
+ if vcvars then
+ sdkdir = vcvars.WindowsSdkDir
+ if sdkdir then
+ sdkdir = path.join(path.directory(path.translate(sdkdir)), "NETFXSDK")
+ end
end
end
end
diff --git a/xmake/modules/detect/sdks/find_wdk.lua b/xmake/modules/detect/sdks/find_wdk.lua
index f91e9a1b7..d9844146a 100644
--- a/xmake/modules/detect/sdks/find_wdk.lua
+++ b/xmake/modules/detect/sdks/find_wdk.lua
@@ -24,6 +24,7 @@ import("lib.detect.find_file")
import("core.base.option")
import("core.base.global")
import("core.project.config")
+import("core.tool.toolchain")
import("detect.sdks.find_vstudio")
-- find WDK directory
@@ -34,24 +35,15 @@ function _find_sdkdir(sdkdir)
sdkdir = os.getenv("WindowsSdkDir")
end
- -- get sdk directory from vsvars
+ -- get sdk directory from vcvars
if not sdkdir then
- local arch = config.arch() or os.arch()
- local vcvarsall = config.get("__vcvarsall")
- if not vcvarsall then
- local vstudio = find_vstudio()
- if vstudio then
- for _, vsinfo in pairs(vstudio) do
- if vsinfo.vcvarsall then
- vcvarsall = vsinfo.vcvarsall
- break
- end
- end
+ local msvc = toolchain.load("msvc")
+ if msvc and msvc:check() then
+ local vcvars = msvc:config("vcvars")
+ if vcvars then
+ sdkdir = vcvars.WindowsSdkDir
end
end
- if vcvarsall then
- sdkdir = (vcvarsall[arch] or {}).WindowsSdkDir
- end
end
return sdkdir
end
diff --git a/xmake/modules/detect/tools/find_devenv.lua b/xmake/modules/detect/tools/find_devenv.lua
index 745c26099..1111c92a3 100644
--- a/xmake/modules/detect/tools/find_devenv.lua
+++ b/xmake/modules/detect/tools/find_devenv.lua
@@ -20,6 +20,7 @@
-- imports
import("core.project.config")
+import("core.tool.toolchain")
-- find devenv
--
@@ -48,11 +49,12 @@ function main(opt)
-- e.g. C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
--
local program = nil
- local vcvarsall = config.get("__vcvarsall")
- if vcvarsall then
- for _, vsvars in pairs(vcvarsall) do
- if vsvars.DevEnvdir and os.isexec(path.join(vsvars.DevEnvdir, "devenv.exe")) then
- program = path.join(vsvars.DevEnvdir, "devenv.exe")
+ local msvc = toolchain.load("msvc")
+ if msvc then
+ local vcvars = msvc:config("vcvars")
+ if vcvars then
+ if vcvars.DevEnvdir and os.isexec(path.join(vcvars.DevEnvdir, "devenv.exe")) then
+ program = path.join(vcvars.DevEnvdir, "devenv.exe")
end
end
end
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index b19ebadc6..f29f77124 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -25,6 +25,7 @@ import("core.project.project")
import("core.platform.platform")
import("core.tool.compiler")
import("core.tool.linker")
+import("core.tool.toolchain")
import("vs201x_solution")
import("vs201x_vcxproj")
import("vs201x_vcxproj_filters")
@@ -37,9 +38,12 @@ function _make_targetinfo(mode, arch, target)
local targetinfo = { mode = mode, arch = (arch == "x86" and "Win32" or "x64") }
-- get sdk version
- local vcvarsall = config.get("__vcvarsall")
- if vcvarsall then
- targetinfo.sdkver = (vcvarsall[arch] or {}).WindowsSDKVersion
+ local msvc = toolchain.load("msvc")
+ if msvc then
+ local vcvars = msvc:config("vcvars")
+ if vcvars then
+ targetinfo.sdkver = vcvars.WindowsSDKVersion
+ end
end
-- save c/c++ precompiled output file (.pch)
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
index 3a66a31d2..adfc52757 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
@@ -39,10 +39,8 @@ function _get_toolset_ver(targetinfo, vsinfo)
return toolset_ver
end
--- get platform sdk version
+-- get platform sdk version from vcvars.WindowsSDKVersion
function _get_platform_sdkver(target, vsinfo)
-
- -- get sdk version for vcvarsall[arch].WindowsSDKVersion
local sdkver = nil
for _, targetinfo in ipairs(target.info) do
sdkver = targetinfo.sdkver
@@ -50,8 +48,6 @@ function _get_platform_sdkver(target, vsinfo)
break
end
end
-
- -- done
return sdkver or vsinfo.sdk_version
end
diff --git a/xmake/toolchains/msvc/load.lua b/xmake/toolchains/msvc/load.lua
index b112e2c80..a1d7c754d 100644
--- a/xmake/toolchains/msvc/load.lua
+++ b/xmake/toolchains/msvc/load.lua
@@ -61,6 +61,7 @@ function main(toolchain)
_add_vsenv(toolchain, "LIB")
_add_vsenv(toolchain, "INCLUDE")
_add_vsenv(toolchain, "LIBPATH")
+ -- find_rc.lua need them
_add_vsenv(toolchain, "WindowsSdkDir")
_add_vsenv(toolchain, "WindowsSDKVersion")