# HG changeset patch # User iklam # Date 1376157387 25200 # Node ID bd0e82136b039485a43e5583402e33ed00648643 # Parent 7b03590c334bf5ae3d6818a1afe0138e1e747a6a 8022740: Visual 2008 IDE build is broken Summary: Fixed project generation code, and added warning to upgrade to VS 2008 SP1. Reviewed-by: dcubed, ccheung diff -r 7b03590c334b -r bd0e82136b03 make/windows/projectfiles/common/Makefile --- a/make/windows/projectfiles/common/Makefile Fri Aug 09 15:36:09 2013 -0700 +++ b/make/windows/projectfiles/common/Makefile Sat Aug 10 10:56:27 2013 -0700 @@ -112,6 +112,7 @@ ProjectCreatorIDEOptions = $(ProjectCreatorIDEOptions) $(ReleaseOptions) $(HOTSPOTBUILDSPACE)/$(ProjectFile): $(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class + @if "$(MSC_VER)"=="1500" echo Make sure you have VS2008 SP1 or later, or you may see 'expanded command line too long' @$(RUN_JAVA) -Djava.class.path="$(HOTSPOTBUILDSPACE)/classes" ProjectCreator WinGammaPlatform$(VcVersion) $(ProjectCreatorIDEOptions) clean: diff -r 7b03590c334b -r bd0e82136b03 src/share/tools/ProjectCreator/FileTreeCreator.java --- a/src/share/tools/ProjectCreator/FileTreeCreator.java Fri Aug 09 15:36:09 2013 -0700 +++ b/src/share/tools/ProjectCreator/FileTreeCreator.java Sat Aug 10 10:56:27 2013 -0700 @@ -12,11 +12,15 @@ final int startDirLength; Stack attributes = new Stack(); Vector allConfigs; - WinGammaPlatformVC10 wg; + WinGammaPlatform wg; + WinGammaPlatformVC10 wg10; - public FileTreeCreator(Path startDir, Vector allConfigs, WinGammaPlatformVC10 wg) { + public FileTreeCreator(Path startDir, Vector allConfigs, WinGammaPlatform wg) { super(); this.wg = wg; + if (wg instanceof WinGammaPlatformVC10) { + wg10 = (WinGammaPlatformVC10)wg; + } this.allConfigs = allConfigs; this.startDir = startDir; startDirLength = startDir.toAbsolutePath().toString().length(); diff -r 7b03590c334b -r bd0e82136b03 src/share/tools/ProjectCreator/FileTreeCreatorVC10.java --- a/src/share/tools/ProjectCreator/FileTreeCreatorVC10.java Fri Aug 09 15:36:09 2013 -0700 +++ b/src/share/tools/ProjectCreator/FileTreeCreatorVC10.java Sat Aug 10 10:56:27 2013 -0700 @@ -103,7 +103,7 @@ } } - String tagName = wg.getFileTagFromSuffix(fileName); + String tagName = wg10.getFileTagFromSuffix(fileName); if (!useIgnore && !disablePch && !usePch && !isReplacedByAltSrc) { wg.tag(tagName, new String[] { "Include", fileLoc}); @@ -133,7 +133,7 @@ } String filter = startDir.relativize(file.getParent().toAbsolutePath()).toString(); - wg.addFilterDependency(fileLoc, filter); + wg10.addFilterDependency(fileLoc, filter); return CONTINUE; } @@ -162,7 +162,7 @@ if (!hide) { String name = startDir.relativize(path.toAbsolutePath()).toString(); if (!"".equals(name)) { - wg.addFilter(name); + wg10.addFilter(name); } attributes.push(newAttr); diff -r 7b03590c334b -r bd0e82136b03 src/share/tools/ProjectCreator/FileTreeCreatorVC7.java --- a/src/share/tools/ProjectCreator/FileTreeCreatorVC7.java Fri Aug 09 15:36:09 2013 -0700 +++ b/src/share/tools/ProjectCreator/FileTreeCreatorVC7.java Sat Aug 10 10:56:27 2013 -0700 @@ -12,7 +12,7 @@ public class FileTreeCreatorVC7 extends FileTreeCreator { public FileTreeCreatorVC7(Path startDir, Vector allConfigs, WinGammaPlatform wg) { - super(startDir, allConfigs, null); + super(startDir, allConfigs, wg); } @Override diff -r 7b03590c334b -r bd0e82136b03 src/share/tools/ProjectCreator/WinGammaPlatformVC7.java --- a/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java Fri Aug 09 15:36:09 2013 -0700 +++ b/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java Sat Aug 10 10:56:27 2013 -0700 @@ -139,19 +139,22 @@ tagV("Tool", cfg.getV("LinkerFlags")); - tag("Tool", - new String[] { - "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", - " ")) }); + String postBuildCmd = BuildConfig.getFieldString(null, + "PostbuildCommand"); + if (postBuildCmd != null) { + tag("Tool", + new String[] { + "Name", + "VCPostBuildEventTool", + "Description", + BuildConfig + .getFieldString(null, "PostbuildDescription"), + // Caution: String.replace(String,String) is available + // from JDK5 onwards only + "CommandLine", + cfg.expandFormat(postBuildCmd.replace("\t", + " ")) }); + } tag("Tool", new String[] { "Name", "VCPreBuildEventTool" });