From 12d7c3a18798853bec888340e5cf19d11ce0b152 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 16:26:30 -0700 Subject: [PATCH] Improving visual studio support Signed-off-by: Leonardo de Moura --- scripts/config-vs-debug.mk | 15 +++++++++++++++ scripts/config-vs-release.mk | 15 +++++++++++++++ scripts/mk_util.py | 12 +++++++++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 scripts/config-vs-debug.mk create mode 100644 scripts/config-vs-release.mk diff --git a/scripts/config-vs-debug.mk b/scripts/config-vs-debug.mk new file mode 100644 index 000000000..5d8d09972 --- /dev/null +++ b/scripts/config-vs-debug.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/c /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "Z3DEBUG" /D "_CONSOLE" /D "_TRACE" /D "_WINDOWS" /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk new file mode 100644 index 000000000..a5bb0adf4 --- /dev/null +++ b/scripts/config-vs-release.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/nologo /c /W3 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WINDOWS" /D "ASYNC_COMMANDS" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 3e34e0897..52571eb3d 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -298,7 +298,7 @@ class ExeComponent(Component): for dep in deps: c_dep = _Name2Component[dep] out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) - out.write('\n') + out.write(' $(LINK_EXTRA_FLAGS)\n') out.write('%s: %s\n\n' % (self.name, exefile)) # All executables are included in the all: rule @@ -326,8 +326,14 @@ def add_exe(name, deps=[], path=None, exe_name=None): # Copy configuration correct file to BUILD_DIR def cp_config_mk(): if IS_WINDOW: - # TODO - return + if VS_X64: + # TODO + return + else: + if DEBUG_MODE: + shutil.copyfile('scripts/config-vs-debug.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-vs-release.mk', '%s/config.mk' % BUILD_DIR) else: if DEBUG_MODE: shutil.copyfile('scripts/config-debug.mk', '%s/config.mk' % BUILD_DIR)