diff options
| author | ruki <[email protected]> | 2015-06-02 17:49:51 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-02 17:49:51 +0800 |
| commit | 03f445c175b2f8e4768bbff28065f935b9fe3201 (patch) | |
| tree | ca3455d28372f952ed68d3ed9c831010408545e2 /xmake/scripts | |
| parent | ebebee003da8aa7092a69d0efef7f69a7635d59b (diff) | |
add msvc compiler and linker
Diffstat (limited to 'xmake/scripts')
| -rw-r--r-- | xmake/scripts/compiler/_msvc.lua | 22 | ||||
| -rw-r--r-- | xmake/scripts/linker/_msvc.lua | 19 |
2 files changed, 14 insertions, 27 deletions
diff --git a/xmake/scripts/compiler/_msvc.lua b/xmake/scripts/compiler/_msvc.lua index 0ebb3743e..aa1968f7e 100644 --- a/xmake/scripts/compiler/_msvc.lua +++ b/xmake/scripts/compiler/_msvc.lua @@ -35,27 +35,11 @@ function _msvc._init(configs) local arch = config.get("arch") assert(arch) - -- init flags for architecture - local flags_arch = "" - if arch == "x86" then flags_arch = "-m32" - elseif arch == "x64" then flags_arch = "-m64" - else flags_arch = "-arch " .. arch - end - -- init cflags - configs.cflags = flags_arch + configs.cflags = "-nologo" -- init cxxflags - configs.cxxflags = flags_arch - - -- init mflags - configs.mflags = flags_arch - - -- init mxxflags - configs.mxxflags = flags_arch - - -- init asflags - configs.asflags = flags_arch + configs.cxxflags = "-nologo" end @@ -63,7 +47,7 @@ end function _msvc._make(configs, srcfile, objfile, flags) -- make it - return string.format("%s -c %s -o%s %s", configs.name, flags, objfile, srcfile) + return string.format("%s -c %s -Fo%s %s", configs.name, flags, objfile, srcfile) end -- make the define flag diff --git a/xmake/scripts/linker/_msvc.lua b/xmake/scripts/linker/_msvc.lua index a49b0827e..94ee00349 100644 --- a/xmake/scripts/linker/_msvc.lua +++ b/xmake/scripts/linker/_msvc.lua @@ -24,6 +24,7 @@ local _msvc = _msvc or {} -- load modules +local rule = require("base/rule") local utils = require("base/utils") local string = require("base/string") local config = require("base/config") @@ -37,16 +38,18 @@ function _msvc._init(configs) -- init flags for architecture local flags_arch = "" - if arch == "x86" then flags_arch = "-m32" - elseif arch == "x64" then flags_arch = "-m64" - else flags_arch = "-arch " .. arch + if arch == "x86" then flags_arch = "-machine:x86" + elseif arch == "x64" then flags_arch = "-machine:x86_64" end -- init ldflags - configs.ldflags = flags_arch + configs.ldflags = "-nologo -dynamicbase -nxcompat -manifest -manifestuac:\"level='asInvoker' uiAccess='false'\" " .. flags_arch + + -- init arflags + configs.arflags = "-lib -nologo " .. flags_arch -- init shflags - configs.shflags = flags_arch .. " -dynamiclib" + configs.shflags = "-dll -nologo " .. flags_arch end @@ -54,21 +57,21 @@ end function _msvc._make(configs, objfiles, targetfile, flags) -- make it - return string.format("%s %s -o%s %s", configs.name, flags, targetfile, objfiles) + return string.format("%s %s -out:%s %s", configs.name, flags, targetfile, objfiles) end -- make the link flag function _msvc._make_link(configs, link) -- make it - return "-l" .. link + return link .. ".lib" end -- make the linkdir flag function _msvc._make_linkdir(configs, linkdir) -- make it - return "-L" .. linkdir + return "-libpath:" .. linkdir end -- map gcc flag to the current linker flag |
