aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Melnichenko <mpeterval@gmail.com>2016-06-11 15:10:56 +0400
committerGitHub <noreply@github.com>2016-06-11 15:10:56 +0400
commitdb8e6734a1347cde53dfa586b11ffb75fab60752 (patch)
tree83a88e1a7a1763c24f0ec4e57f3d9b03efa73ceb
parent305cc93b7194ca0bc546ebd520ab907043334647 (diff)
parent11b65a6c324359134bd75bad37f102ea98337d3e (diff)
downloadluarocks-db8e6734a1347cde53dfa586b11ffb75fab60752.tar.gz
luarocks-db8e6734a1347cde53dfa586b11ffb75fab60752.tar.bz2
luarocks-db8e6734a1347cde53dfa586b11ffb75fab60752.zip
Merge pull request #548 from xpol/msvc-cross-compiling
Add cross compiling support for MSVC.
-rw-r--r--install.bat31
1 files changed, 22 insertions, 9 deletions
diff --git a/install.bat b/install.bat
index df058585..dcd132ff 100644
--- a/install.bat
+++ b/install.bat
@@ -508,17 +508,30 @@ local function get_msvc_env_setup_cmd()
508 -- 1. try visual studio command line tools 508 -- 1. try visual studio command line tools
509 local vcdir = get_visual_studio_directory() 509 local vcdir = get_visual_studio_directory()
510 if vcdir then 510 if vcdir then
511 -- 1.1. try vcvarsall.bat 511 local vcvars_bats = {
512 local vcvarsall = vcdir .. 'vcvarsall.bat' 512 x86 = {
513 if exists(vcvarsall) then 513 "bin\\vcvars32.bat", -- prefers native compiler
514 return ('call "%s"%s'):format(vcvarsall, x64 and ' amd64' or '') 514 "bin\\amd64_x86\\vcvarsamd64_x86.bat"-- then cross compiler
515 },
516 x86_64 = {
517 "bin\\amd64\\vcvars64.bat", -- prefers native compiler
518 "bin\\x86_amd64\\vcvarsx86_amd64.bat" -- then cross compiler
519 }
520 }
521 assert(vcvars_bats[vars.UNAME_M], "vars.UNAME_M: only x86 and x86_64 are supported")
522 for _, bat in ipairs(vcvars_bats[vars.UNAME_M]) do
523 local full_path = vcdir .. bat
524 if exists(full_path) then
525 return ('call "%s"'):format(full_path)
526 end
515 end 527 end
516 528
517 -- 1.2. try vcvars32.bat / vcvars64.bat 529 -- try vcvarsall.bat in case MS changes the undocumented bat files above.
518 local relative_path = x64 and "bin\\amd64\\vcvars64.bat" or "bin\\vcvars32.bat" 530 -- but this way we don't konw if specified compiler is installed...
519 local full_path = vcdir .. relative_path 531 local vcvarsall = vcdir .. 'vcvarsall.bat'
520 if exists(full_path) then 532 if exists(vcvarsall) then
521 return ('call "%s"'):format(full_path) 533 local vcvarsall_args = { x86 = "", x86_64 = " amd64" }
534 return ('call "%s"%s'):format(vcvarsall, vcvarsall_args[vars.UNAME_M])
522 end 535 end
523 end 536 end
524 537