summaryrefslogtreecommitdiff
path: root/xmake/scripts
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-02 17:49:51 +0800
committerruki <[email protected]>2015-06-02 17:49:51 +0800
commit03f445c175b2f8e4768bbff28065f935b9fe3201 (patch)
treeca3455d28372f952ed68d3ed9c831010408545e2 /xmake/scripts
parentebebee003da8aa7092a69d0efef7f69a7635d59b (diff)
add msvc compiler and linker
Diffstat (limited to 'xmake/scripts')
-rw-r--r--xmake/scripts/compiler/_msvc.lua22
-rw-r--r--xmake/scripts/linker/_msvc.lua19
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