mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 20:44:41 +02:00
7006354: Updates to Visual Studio project creation and development launcher
Updates to Visual Studio project creation and development launcher Reviewed-by: stefank, coleenp
This commit is contained in:
parent
18324204ef
commit
c299b4709f
36 changed files with 398 additions and 264 deletions
|
@ -22,8 +22,11 @@
|
|||
*
|
||||
*/
|
||||
|
||||
import java.util.*;
|
||||
import java.io.File;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.Vector;
|
||||
|
||||
class BuildConfig {
|
||||
Hashtable vars;
|
||||
|
@ -57,7 +60,6 @@ class BuildConfig {
|
|||
|
||||
// ones mentioned above were needed to expand format
|
||||
String buildBase = expandFormat(getFieldString(null, "BuildBase"));
|
||||
String jdkDir = getFieldString(null, "JdkTargetRoot");
|
||||
String sourceBase = getFieldString(null, "SourceBase");
|
||||
String outDir = buildBase;
|
||||
|
||||
|
@ -65,7 +67,7 @@ class BuildConfig {
|
|||
put("OutputDir", outDir);
|
||||
put("SourceBase", sourceBase);
|
||||
put("BuildBase", buildBase);
|
||||
put("OutputDll", jdkDir + Util.sep + outDll);
|
||||
put("OutputDll", outDir + Util.sep + outDll);
|
||||
|
||||
context = new String [] {flavourBuild, flavour, build, null};
|
||||
}
|
||||
|
@ -537,68 +539,75 @@ abstract class GenericDebugConfig extends BuildConfig {
|
|||
}
|
||||
}
|
||||
|
||||
class C1DebugConfig extends GenericDebugConfig {
|
||||
abstract class GenericDebugNonKernelConfig extends GenericDebugConfig {
|
||||
protected void init(Vector includes, Vector defines) {
|
||||
super.init(includes, defines);
|
||||
getCI().getAdditionalNonKernelLinkerFlags(getV("LinkerFlags"));
|
||||
}
|
||||
}
|
||||
|
||||
class C1DebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getNoOptFlag();
|
||||
}
|
||||
|
||||
C1DebugConfig() {
|
||||
initNames("compiler1", "debug", "fastdebug\\jre\\bin\\client\\jvm.dll");
|
||||
initNames("compiler1", "debug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class C1FastDebugConfig extends GenericDebugConfig {
|
||||
class C1FastDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getOptFlag();
|
||||
}
|
||||
|
||||
C1FastDebugConfig() {
|
||||
initNames("compiler1", "fastdebug", "fastdebug\\jre\\bin\\client\\jvm.dll");
|
||||
initNames("compiler1", "fastdebug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class C2DebugConfig extends GenericDebugConfig {
|
||||
class C2DebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getNoOptFlag();
|
||||
}
|
||||
|
||||
C2DebugConfig() {
|
||||
initNames("compiler2", "debug", "fastdebug\\jre\\bin\\server\\jvm.dll");
|
||||
initNames("compiler2", "debug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class C2FastDebugConfig extends GenericDebugConfig {
|
||||
class C2FastDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getOptFlag();
|
||||
}
|
||||
|
||||
C2FastDebugConfig() {
|
||||
initNames("compiler2", "fastdebug", "fastdebug\\jre\\bin\\server\\jvm.dll");
|
||||
initNames("compiler2", "fastdebug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class TieredDebugConfig extends GenericDebugConfig {
|
||||
class TieredDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getNoOptFlag();
|
||||
}
|
||||
|
||||
TieredDebugConfig() {
|
||||
initNames("tiered", "debug", "fastdebug\\jre\\bin\\server\\jvm.dll");
|
||||
initNames("tiered", "debug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class TieredFastDebugConfig extends GenericDebugConfig {
|
||||
class TieredFastDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getOptFlag();
|
||||
}
|
||||
|
||||
TieredFastDebugConfig() {
|
||||
initNames("tiered", "fastdebug", "fastdebug\\jre\\bin\\server\\jvm.dll");
|
||||
initNames("tiered", "fastdebug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -618,45 +627,45 @@ abstract class ProductConfig extends BuildConfig {
|
|||
|
||||
class C1ProductConfig extends ProductConfig {
|
||||
C1ProductConfig() {
|
||||
initNames("compiler1", "product", "jre\\bin\\client\\jvm.dll");
|
||||
initNames("compiler1", "product", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class C2ProductConfig extends ProductConfig {
|
||||
C2ProductConfig() {
|
||||
initNames("compiler2", "product", "jre\\bin\\server\\jvm.dll");
|
||||
initNames("compiler2", "product", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
class TieredProductConfig extends ProductConfig {
|
||||
TieredProductConfig() {
|
||||
initNames("tiered", "product", "jre\\bin\\server\\jvm.dll");
|
||||
initNames("tiered", "product", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CoreDebugConfig extends GenericDebugConfig {
|
||||
class CoreDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getNoOptFlag();
|
||||
}
|
||||
|
||||
CoreDebugConfig() {
|
||||
initNames("core", "debug", "fastdebug\\jre\\bin\\core\\jvm.dll");
|
||||
initNames("core", "debug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CoreFastDebugConfig extends GenericDebugConfig {
|
||||
class CoreFastDebugConfig extends GenericDebugNonKernelConfig {
|
||||
String getOptFlag() {
|
||||
return getCI().getOptFlag();
|
||||
}
|
||||
|
||||
CoreFastDebugConfig() {
|
||||
initNames("core", "fastdebug", "fastdebug\\jre\\bin\\core\\jvm.dll");
|
||||
initNames("core", "fastdebug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -664,7 +673,7 @@ class CoreFastDebugConfig extends GenericDebugConfig {
|
|||
|
||||
class CoreProductConfig extends ProductConfig {
|
||||
CoreProductConfig() {
|
||||
initNames("core", "product", "jre\\bin\\core\\jvm.dll");
|
||||
initNames("core", "product", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -675,7 +684,7 @@ class KernelDebugConfig extends GenericDebugConfig {
|
|||
}
|
||||
|
||||
KernelDebugConfig() {
|
||||
initNames("kernel", "debug", "fastdebug\\jre\\bin\\kernel\\jvm.dll");
|
||||
initNames("kernel", "debug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -687,7 +696,7 @@ class KernelFastDebugConfig extends GenericDebugConfig {
|
|||
}
|
||||
|
||||
KernelFastDebugConfig() {
|
||||
initNames("kernel", "fastdebug", "fastdebug\\jre\\bin\\kernel\\jvm.dll");
|
||||
initNames("kernel", "fastdebug", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -695,7 +704,7 @@ class KernelFastDebugConfig extends GenericDebugConfig {
|
|||
|
||||
class KernelProductConfig extends ProductConfig {
|
||||
KernelProductConfig() {
|
||||
initNames("kernel", "product", "jre\\bin\\kernel\\jvm.dll");
|
||||
initNames("kernel", "product", "jvm.dll");
|
||||
init(getIncludes(), getDefines());
|
||||
}
|
||||
}
|
||||
|
@ -704,6 +713,7 @@ abstract class CompilerInterface {
|
|||
abstract Vector getBaseLinkerFlags(String outDir, String outDll);
|
||||
abstract Vector getDebugCompilerFlags(String opt);
|
||||
abstract Vector getDebugLinkerFlags();
|
||||
abstract void getAdditionalNonKernelLinkerFlags(Vector rv);
|
||||
abstract Vector getProductCompilerFlags();
|
||||
abstract Vector getProductLinkerFlags();
|
||||
abstract String getOptFlag();
|
||||
|
@ -713,4 +723,14 @@ abstract class CompilerInterface {
|
|||
void addAttr(Vector receiver, String attr, String value) {
|
||||
receiver.add(attr); receiver.add(value);
|
||||
}
|
||||
void extAttr(Vector receiver, String attr, String value) {
|
||||
int attr_pos=receiver.indexOf(attr) ;
|
||||
if ( attr_pos == -1) {
|
||||
// If attr IS NOT present in the Vector - add it
|
||||
receiver.add(attr); receiver.add(value);
|
||||
} else {
|
||||
// If attr IS present in the Vector - append value to it
|
||||
receiver.set(attr_pos+1,receiver.get(attr_pos+1)+value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,8 +22,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Vector;
|
||||
|
||||
abstract class HsArgHandler extends ArgHandler {
|
||||
static final int STRING = 1;
|
||||
|
@ -345,11 +352,23 @@ public abstract class WinGammaPlatform {
|
|||
new ArgsParser(args,
|
||||
new ArgRule[]
|
||||
{
|
||||
new HsArgRule("-sourceBase",
|
||||
"SourceBase",
|
||||
" (Did you set the HotSpotWorkSpace environment variable?)",
|
||||
HsArgHandler.STRING
|
||||
),
|
||||
new ArgRule("-sourceBase",
|
||||
new HsArgHandler() {
|
||||
public void handle(ArgIterator it) {
|
||||
String cfg = getCfg(it.get());
|
||||
if (nextNotKey(it)) {
|
||||
String sb = (String) it.get();
|
||||
if (sb.endsWith(Util.sep)) {
|
||||
sb = sb.substring(0, sb.length() - 1);
|
||||
}
|
||||
BuildConfig.putField(cfg, "SourceBase", sb);
|
||||
it.next();
|
||||
} else {
|
||||
empty("-sourceBase", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
new HsArgRule("-buildBase",
|
||||
"BuildBase",
|
||||
|
@ -512,7 +531,6 @@ public abstract class WinGammaPlatform {
|
|||
new HsArgHandler() {
|
||||
public void handle(ArgIterator it) {
|
||||
if (nextNotKey(it)) {
|
||||
String build = it.get();
|
||||
if (nextNotKey(it)) {
|
||||
String description = it.get();
|
||||
if (nextNotKey(it)) {
|
||||
|
@ -528,7 +546,28 @@ public abstract class WinGammaPlatform {
|
|||
empty(null, "** Error: wrong number of args to -prelink");
|
||||
}
|
||||
}
|
||||
)
|
||||
),
|
||||
|
||||
new ArgRule("-postbuild",
|
||||
new HsArgHandler() {
|
||||
public void handle(ArgIterator it) {
|
||||
if (nextNotKey(it)) {
|
||||
if (nextNotKey(it)) {
|
||||
String description = it.get();
|
||||
if (nextNotKey(it)) {
|
||||
String command = it.get();
|
||||
BuildConfig.putField(null, "PostbuildDescription", description);
|
||||
BuildConfig.putField(null, "PostbuildCommand", command);
|
||||
it.next();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
empty(null, "** Error: wrong number of args to -postbuild");
|
||||
}
|
||||
}
|
||||
),
|
||||
},
|
||||
new ArgHandler() {
|
||||
public void handle(ArgIterator it) {
|
||||
|
@ -618,10 +657,6 @@ public abstract class WinGammaPlatform {
|
|||
|
||||
public int compareTo(Object o) {
|
||||
FileInfo oo = (FileInfo)o;
|
||||
// Don't squelch identical short file names where the full
|
||||
// paths are different
|
||||
if (!attr.shortName.equals(oo.attr.shortName))
|
||||
return attr.shortName.compareTo(oo.attr.shortName);
|
||||
return full.compareTo(oo.full);
|
||||
}
|
||||
|
||||
|
|
|
@ -260,6 +260,8 @@ class CompilerInterfaceVC6 extends CompilerInterface {
|
|||
return rv;
|
||||
}
|
||||
|
||||
void getAdditionalNonKernelLinkerFlags(Vector rv) {}
|
||||
|
||||
Vector getProductCompilerFlags() {
|
||||
Vector rv = new Vector();
|
||||
|
||||
|
|
|
@ -22,8 +22,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Vector;
|
||||
|
||||
public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
||||
|
||||
|
@ -104,7 +109,9 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
|||
|
||||
|
||||
boolean match(FileInfo fi) {
|
||||
return fi.full.regionMatches(true, baseLen, dir, 0, dirLen);
|
||||
int lastSlashIndex = fi.full.lastIndexOf('/');
|
||||
String fullDir = fi.full.substring(0, lastSlashIndex);
|
||||
return fullDir.endsWith(dir);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,65 +224,41 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
|||
// - container filter just provides a container to group together real filters
|
||||
// - real filter can select elements from the set according to some rule, put it into XML
|
||||
// and remove from the list
|
||||
Vector makeFilters(TreeSet files) {
|
||||
Vector makeFilters(TreeSet<FileInfo> files) {
|
||||
Vector rv = new Vector();
|
||||
String sbase = Util.normalize(BuildConfig.getFieldString(null, "SourceBase")+"/src/");
|
||||
|
||||
ContainerFilter rt = new ContainerFilter("Runtime");
|
||||
rt.add(new DirectoryFilter("share/vm/prims", sbase));
|
||||
rt.add(new DirectoryFilter("share/vm/runtime", sbase));
|
||||
rt.add(new DirectoryFilter("share/vm/oops", sbase));
|
||||
rv.add(rt);
|
||||
String currentDir = "";
|
||||
DirectoryFilter container = null;
|
||||
for(FileInfo fileInfo : files) {
|
||||
|
||||
ContainerFilter gc = new ContainerFilter("GC");
|
||||
gc.add(new DirectoryFilter("share/vm/memory", sbase));
|
||||
gc.add(new DirectoryFilter("share/vm/gc_interface", sbase));
|
||||
if (!fileInfo.full.startsWith(sbase)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ContainerFilter gc_impl = new ContainerFilter("Implementations");
|
||||
gc_impl.add(new DirectoryFilter("CMS",
|
||||
"share/vm/gc_implementation/concurrentMarkSweep",
|
||||
sbase));
|
||||
gc_impl.add(new DirectoryFilter("Parallel Scavenge",
|
||||
"share/vm/gc_implementation/parallelScavenge",
|
||||
sbase));
|
||||
gc_impl.add(new DirectoryFilter("Shared",
|
||||
"share/vm/gc_implementation/shared",
|
||||
sbase));
|
||||
// for all leftovers
|
||||
gc_impl.add(new DirectoryFilter("Misc",
|
||||
"share/vm/gc_implementation",
|
||||
sbase));
|
||||
int lastSlash = fileInfo.full.lastIndexOf('/');
|
||||
String dir = fileInfo.full.substring(sbase.length(), lastSlash);
|
||||
if(dir.equals("share/vm")) {
|
||||
// skip files directly in share/vm - should only be precompiled.hpp which is handled below
|
||||
continue;
|
||||
}
|
||||
if (!dir.equals(currentDir)) {
|
||||
currentDir = dir;
|
||||
if (container != null) {
|
||||
rv.add(container);
|
||||
}
|
||||
|
||||
gc.add(gc_impl);
|
||||
rv.add(gc);
|
||||
|
||||
rv.add(new DirectoryFilter("C1", "share/vm/c1", sbase));
|
||||
|
||||
rv.add(new DirectoryFilter("C2", "share/vm/opto", sbase));
|
||||
|
||||
ContainerFilter comp = new ContainerFilter("Compiler Common");
|
||||
comp.add(new DirectoryFilter("share/vm/asm", sbase));
|
||||
comp.add(new DirectoryFilter("share/vm/ci", sbase));
|
||||
comp.add(new DirectoryFilter("share/vm/code", sbase));
|
||||
comp.add(new DirectoryFilter("share/vm/compiler", sbase));
|
||||
rv.add(comp);
|
||||
|
||||
rv.add(new DirectoryFilter("Interpreter",
|
||||
"share/vm/interpreter",
|
||||
sbase));
|
||||
|
||||
ContainerFilter misc = new ContainerFilter("Misc");
|
||||
misc.add(new DirectoryFilter("share/vm/libadt", sbase));
|
||||
misc.add(new DirectoryFilter("share/vm/services", sbase));
|
||||
misc.add(new DirectoryFilter("share/vm/utilities", sbase));
|
||||
misc.add(new DirectoryFilter("share/vm/classfile", sbase));
|
||||
rv.add(misc);
|
||||
|
||||
rv.add(new DirectoryFilter("os_cpu", sbase));
|
||||
|
||||
rv.add(new DirectoryFilter("cpu", sbase));
|
||||
|
||||
rv.add(new DirectoryFilter("os", sbase));
|
||||
// remove "share/vm/" from names
|
||||
String name = dir;
|
||||
if (dir.startsWith("share/vm/")) {
|
||||
name = dir.substring("share/vm/".length(), dir.length());
|
||||
}
|
||||
container = new DirectoryFilter(name, dir, sbase);
|
||||
}
|
||||
}
|
||||
if (container != null) {
|
||||
rv.add(container);
|
||||
}
|
||||
|
||||
ContainerFilter generated = new ContainerFilter("Generated");
|
||||
ContainerFilter c1Generated = new ContainerFilter("C1");
|
||||
|
@ -397,7 +380,6 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
|||
"Name", cfg,
|
||||
"ExcludedFromBuild", "TRUE"
|
||||
});
|
||||
tag("Tool", new String[] {"Name", "VCCLCompilerTool"});
|
||||
endTag("FileConfiguration");
|
||||
|
||||
}
|
||||
|
@ -441,7 +423,11 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
|||
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
"Name", "VCPostBuildEventTool"
|
||||
"Name", "VCPostBuildEventTool",
|
||||
"Description", BuildConfig.getFieldString(null, "PostbuildDescription"),
|
||||
//Caution: String.replace(String,String) is available from JDK5 onwards only
|
||||
"CommandLine", cfg.expandFormat(BuildConfig.getFieldString(null, "PostbuildCommand").replace
|
||||
("\t", "
"))
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -469,33 +455,6 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
|
|||
"Culture", "1033"
|
||||
}
|
||||
);
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
"Name", "VCWebServiceProxyGeneratorTool"
|
||||
}
|
||||
);
|
||||
|
||||
tag ("Tool",
|
||||
new String[] {
|
||||
"Name", "VCXMLDataGeneratorTool"
|
||||
}
|
||||
);
|
||||
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
"Name", "VCWebDeploymentTool"
|
||||
}
|
||||
);
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
"Name", "VCManagedWrapperGeneratorTool"
|
||||
}
|
||||
);
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
"Name", "VCAuxiliaryManagedWrapperGeneratorTool"
|
||||
}
|
||||
);
|
||||
|
||||
tag("Tool",
|
||||
new String[] {
|
||||
|
@ -597,7 +556,7 @@ class CompilerInterfaceVC7 extends CompilerInterface {
|
|||
addAttr(rv, "PrecompiledHeaderFile", outDir+Util.sep+"vm.pch");
|
||||
addAttr(rv, "AssemblerListingLocation", outDir);
|
||||
addAttr(rv, "ObjectFile", outDir+Util.sep);
|
||||
addAttr(rv, "ProgramDataBaseFileName", outDir+Util.sep+"vm.pdb");
|
||||
addAttr(rv, "ProgramDataBaseFileName", outDir+Util.sep+"jvm.pdb");
|
||||
// Set /nologo optin
|
||||
addAttr(rv, "SuppressStartupBanner", "TRUE");
|
||||
// Surpass the default /Tc or /Tp. 0 is compileAsDefault
|
||||
|
@ -631,17 +590,22 @@ class CompilerInterfaceVC7 extends CompilerInterface {
|
|||
addAttr(rv, "AdditionalOptions",
|
||||
"/export:JNI_GetDefaultJavaVMInitArgs " +
|
||||
"/export:JNI_CreateJavaVM " +
|
||||
"/export:JVM_FindClassFromBootLoader "+
|
||||
"/export:JNI_GetCreatedJavaVMs "+
|
||||
"/export:jio_snprintf /export:jio_printf "+
|
||||
"/export:jio_fprintf /export:jio_vfprintf "+
|
||||
"/export:jio_vsnprintf ");
|
||||
"/export:jio_vsnprintf "+
|
||||
"/export:JVM_GetVersionInfo "+
|
||||
"/export:JVM_GetThreadStateNames "+
|
||||
"/export:JVM_GetThreadStateValues "+
|
||||
"/export:JVM_InitAgentProperties ");
|
||||
addAttr(rv, "AdditionalDependencies", "Wsock32.lib winmm.lib");
|
||||
addAttr(rv, "OutputFile", outDll);
|
||||
// Set /INCREMENTAL option. 1 is linkIncrementalNo
|
||||
addAttr(rv, "LinkIncremental", "1");
|
||||
addAttr(rv, "SuppressStartupBanner", "TRUE");
|
||||
addAttr(rv, "ModuleDefinitionFile", outDir+Util.sep+"vm.def");
|
||||
addAttr(rv, "ProgramDatabaseFile", outDir+Util.sep+"vm.pdb");
|
||||
addAttr(rv, "ProgramDatabaseFile", outDir+Util.sep+"jvm.pdb");
|
||||
// Set /SUBSYSTEM option. 2 is subSystemWindows
|
||||
addAttr(rv, "SubSystem", "2");
|
||||
addAttr(rv, "BaseAddress", "0x8000000");
|
||||
|
@ -682,6 +646,11 @@ class CompilerInterfaceVC7 extends CompilerInterface {
|
|||
return rv;
|
||||
}
|
||||
|
||||
void getAdditionalNonKernelLinkerFlags(Vector rv) {
|
||||
extAttr(rv, "AdditionalOptions",
|
||||
"/export:AsyncGetCallTrace ");
|
||||
}
|
||||
|
||||
void getProductCompilerFlags_common(Vector rv) {
|
||||
// Set /O2 option. 2 is optimizeMaxSpeed
|
||||
addAttr(rv, "Optimization", "2");
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Vector;
|
||||
|
||||
public class WinGammaPlatformVC8 extends WinGammaPlatformVC7 {
|
||||
|
||||
|
@ -41,6 +41,9 @@ class CompilerInterfaceVC8 extends CompilerInterfaceVC7 {
|
|||
// Set /EHsc- option. 0 is cppExceptionHandlingNo
|
||||
addAttr(rv, "ExceptionHandling", "0");
|
||||
|
||||
// enable multi process builds
|
||||
extAttr(rv, "AdditionalOptions", "/MP");
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue