aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXpol Wan <xpolife@gmail.com>2015-10-23 16:14:18 +0800
committerXpol Wan <xpolife@gmail.com>2015-10-23 16:14:18 +0800
commit7235ad9f40fbbf27b9fd1097817587e892690556 (patch)
tree0afe4806078fc09dc5f1254dc240829f58204e75
parent9c99043149e7578fbbfedbbdc7950a3c1f61ba6e (diff)
downloadluarocks-7235ad9f40fbbf27b9fd1097817587e892690556.tar.gz
luarocks-7235ad9f40fbbf27b9fd1097817587e892690556.tar.bz2
luarocks-7235ad9f40fbbf27b9fd1097817587e892690556.zip
Automatically setup MSVC command line tools for VC2008 or above.
-rw-r--r--install.bat21
1 files changed, 21 insertions, 0 deletions
diff --git a/install.bat b/install.bat
index 57e3611c..90e9b8d4 100644
--- a/install.bat
+++ b/install.bat
@@ -409,6 +409,25 @@ local function get_architecture()
409 return proc 409 return proc
410end 410end
411 411
412-- uses vars.LUA_RUNTIME and vars.UNAME_M
413local function get_compiler_env_cmd()
414 local major, minor = vars.LUA_RUNTIME:match('^MSVCR(%d+)(%d)$')
415 if not major then return "" end
416 local key = "HKEY_LOCAL_MACHINE\\SOFTWARE%s\\Microsoft\\VisualStudio\\%d.%d"
417 local hostarch64 = os.getenv("ProgramFiles(x86)")~=nil -- 'PROCESSOR_ARCHITECTURE' will always return 'x86' if interpreter is 32 bit.
418 key = key:format(hostarch64 and "\\Wow6432Node" or "", major, minor)
419
420 local h = io.popen('reg query "'..key..'" /v InstallDir 2>NUL')
421 local output = h:read('*a')
422 h:close()
423
424 local msvcdir = output:match("REG_SZ%s+(.+)\\Common7\\IDE")
425 if not msvcdir then return "" end
426 local msvcarch = vars.UNAME_M=="x86_64" and " x86_amd64" or ""
427
428 return ('call "%s\\VC\\vcvarsall.bat"%s'):format(msvcdir, msvcarch)
429end
430
412local function look_for_lua_install () 431local function look_for_lua_install ()
413 print("Looking for Lua interpreter") 432 print("Looking for Lua interpreter")
414 local directories 433 local directories
@@ -627,6 +646,7 @@ if SELFCONTAINED then
627 vars.TREE_ROOT = vars.PREFIX..[[\systree]] 646 vars.TREE_ROOT = vars.PREFIX..[[\systree]]
628 REGISTRY = false 647 REGISTRY = false
629end 648end
649vars.COMPILER_ENV_CMD = get_compiler_env_cmd(vars.LUA_RUNTIME, vars.UNAME_M)
630 650
631print(S[[ 651print(S[[
632 652
@@ -731,6 +751,7 @@ for _, c in ipairs{"luarocks", "luarocks-admin"} do
731 f:write(S[[ 751 f:write(S[[
732@ECHO OFF 752@ECHO OFF
733SETLOCAL 753SETLOCAL
754$COMPILER_ENV_CMD
734SET "LUA_PATH=$LUADIR\?.lua;$LUADIR\?\init.lua;%LUA_PATH%" 755SET "LUA_PATH=$LUADIR\?.lua;$LUADIR\?\init.lua;%LUA_PATH%"
735IF NOT "%LUA_PATH_5_2%"=="" ( 756IF NOT "%LUA_PATH_5_2%"=="" (
736 SET "LUA_PATH_5_2=$LUADIR\?.lua;$LUADIR\?\init.lua;%LUA_PATH_5_2%" 757 SET "LUA_PATH_5_2=$LUADIR\?.lua;$LUADIR\?\init.lua;%LUA_PATH_5_2%"