--- uppsrc/ide/Builders/MscBuilder.cpp Sat Nov 17 17:41:45 2007 +++ uppsrc/ide/Builders/MscBuilder.cpp Wed Nov 21 12:37:03 2007 @@ -71,11 +71,11 @@ if(HasFlag("SH4")) cc = "shcl /Qsh4"; else - if(HasFlag("MSC8ARM")) + if(HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) cc = "cl -GS- "; else cc = HasFlag("INTEL") ? "icl" : "cl"; - cc << (HasFlag("MSC8X64") ? " -nologo -Wp64 -W3 -GR -c" : " -nologo -W3 -GR -c"); + cc << ((HasFlag("MSC8X64") || HasFlag("MSC9X64")) ? " -nologo -Wp64 -W3 -GR -c" : " -nologo -W3 -GR -c"); cc << IncludesDefinesTargetTime(); return cc; } @@ -86,8 +86,8 @@ if(HasFlag("MIPS")) return "MIPS"; if(HasFlag("SH3")) return "SH3"; if(HasFlag("SH4")) return "SH4"; - if(HasFlag("MSC8ARM")) return "ARM"; - if(HasFlag("MSC8X64")) return "x64"; + if(HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) return "ARM"; + if(HasFlag("MSC8X64") || HasFlag("MSC9X64")) return "x64"; if(HasFlag("WIN32")) return "I386"; return "IX86"; } @@ -119,7 +119,7 @@ String pdb = GetHostPathQ(CatAnyPath(outdir, pkg_slot + ".pdb")); String cc; cc << " -Gy -Fd" << pdb; - if(do_pch && !HasFlag("MSC8") && !HasFlag("MSC8X64")&& !HasFlag("MSC8ARM")) // MSC8 does not support automatic precompiled headers... + if(do_pch && !HasFlag("MSC8") && !HasFlag("MSC9") && !HasFlag("MSC8X64") && !HasFlag("MSC9X64") && !HasFlag("MSC8ARM") && !HasFlag("MSC9ARM")) // MSC8/9 does not support automatic precompiled headers... cc << " -YX -Fp" << GetHostPathQ(CatAnyPath(outdir, pkg_slot + ".pch")) << ' '; return cc; } @@ -147,7 +147,7 @@ " -GX-"; // turn off exception handling } else - if(HasFlag("MSC8") || HasFlag("MSC8X64") || HasFlag("MSC8ARM")) + if(HasFlag("MSC8") || HasFlag("MSC9") || HasFlag("MSC8X64") || HasFlag("MSC9X64") || HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) cc << " -EHsc"; else cc << " -GX"; @@ -162,7 +162,7 @@ cc << " -Zi"; cc << ' ' << Gather(pkg.option, config.GetKeys()); cc << (HasFlag("SHARED") || is_shared ? " -MD" - : (HasFlag("MT") || HasFlag("MSC8") || HasFlag("MSC8X64") || HasFlag("MSC8ARM")) ? " -MT" : " -ML"); + : (HasFlag("MT") || HasFlag("MSC8") || HasFlag("MSC9") || HasFlag("MSC8X64") || HasFlag("MSC9X64") || HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) ? " -MT" : " -ML"); String cc_size = cc; String cc_speed = cc; @@ -356,8 +356,10 @@ if(HasAnyDebug()) lib << " -debug -OPT:NOREF"; else - lib << " -release -OPT:REF,ICF,NOWIN98"; - if(HasFlag("MSC8ARM")) + lib << " -release -OPT:REF,ICF"; + if(!(HasFlag("MSC9") || HasFlag("MSC9X64"))) + lib << ",NOWIN98"; + if(HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) lib << " -subsystem:windowsce,4.20 /ARMPADCODE"; else if(HasFlag("GUI")) @@ -421,7 +423,7 @@ return false; } else - if((HasFlag("MSC8") || HasFlag("MSC8X64")) && is_shared) { + if((HasFlag("MSC8") || HasFlag("MSC9") || HasFlag("MSC8X64") || HasFlag("MSC9X64")) && is_shared) { String mt("mt -nologo -manifest "); mt << GetHostPathQ(product) << ".manifest -outputresource:" << GetHostPathQ(product) << ";2"; Execute(mt); @@ -461,11 +463,13 @@ if(HasAnyDebug()) link << " -incremental:yes -debug -OPT:NOREF"; else - link << " -incremental:no -release -OPT:REF,ICF,NOWIN98"; - if(HasFlag("MSC8ARM")) + link << " -incremental:no -release -OPT:REF,ICF"; + if(!(HasFlag("MSC9") || HasFlag("MSC9X64"))) + link << ",NOWIN98"; + if(HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) link << " -subsystem:windowsce,4.20 /ARMPADCODE -NODEFAULTLIB:\"oldnames.lib\" "; else - if(HasFlag("GUI") || HasFlag("MSC8ARM")) + if(HasFlag("GUI") || HasFlag("MSC8ARM") || HasFlag("MSC9ARM")) link << (HasFlag("WIN32") ? " -subsystem:windows" : " -subsystem:windowsce"); else link << " -subsystem:console"; @@ -482,7 +486,7 @@ CustomStep(".pre-link"); if(Execute(link) == 0) { CustomStep(".post-link"); - if((HasFlag("MSC8") || HasFlag("MSC8X64")) && HasFlag("SHARED")) { + if((HasFlag("MSC8") || HasFlag("MSC9") || HasFlag("MSC8X64") || HasFlag("MSC9X64")) && HasFlag("SHARED")) { String mt("mt -nologo -manifest "); mt << GetHostPathQ(target) << ".manifest -outputresource:" << GetHostPathQ(target) << (HasFlag("DLL") ? ";2" : ";1"); @@ -519,6 +523,9 @@ RegisterBuilder("MSC8", CreateMscBuilder); RegisterBuilder("MSC8X64", CreateMscBuilder); RegisterBuilder("MSC8ARM", CreateMscBuilder); + RegisterBuilder("MSC9", CreateMscBuilder); + RegisterBuilder("MSC9X64", CreateMscBuilder); + RegisterBuilder("MSC9ARM", CreateMscBuilder); RegisterBuilder("EVC_ARM", CreateMscBuilder); RegisterBuilder("EVC_MIPS", CreateMscBuilder); RegisterBuilder("EVC_SH3", CreateMscBuilder);