--- /dev/null 2010-10-25 09:26:58.719482668 +0200 +++ new/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java 2010-10-28 14:04:23.000000000 +0200 @@ -0,0 +1,692 @@ +/* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +import java.io.*; +import java.util.*; + +public class WinGammaPlatformVC7 extends WinGammaPlatform { + + String projectVersion() {return "7.10";}; + + public void writeProjectFile(String projectFileName, String projectName, + Vector allConfigs) throws IOException { + System.out.println(); + System.out.println(" Writing .vcproj file..."); + // If we got this far without an error, we're safe to actually + // write the .vcproj file + printWriter = new PrintWriter(new FileWriter(projectFileName)); + + printWriter.println(""); + startTag( + "VisualStudioProject", + new String[] { + "ProjectType", "Visual C++", + "Version", projectVersion(), + "Name", projectName, + "ProjectGUID", "{8822CB5C-1C41-41C2-8493-9F6E1994338B}", + "SccProjectName", "", + "SccLocalPath", "" + } + ); + + startTag("Platforms", null); + tag("Platform", new String[] {"Name", Util.os}); + endTag("Platforms"); + + startTag("Configurations", null); + + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + writeConfiguration((BuildConfig)i.next()); + } + + endTag("Configurations"); + + tag("References", null); + + writeFiles(allConfigs); + + tag("Globals", null); + + endTag("VisualStudioProject"); + printWriter.close(); + + System.out.println(" Done."); + } + + + abstract class NameFilter { + protected String fname; + + abstract boolean match(FileInfo fi); + + String filterString() { return ""; } + String name() { return this.fname;} + } + + class DirectoryFilter extends NameFilter { + String dir; + int baseLen, dirLen; + + DirectoryFilter(String dir, String sbase) { + this.dir = dir; + this.baseLen = sbase.length(); + this.dirLen = dir.length(); + this.fname = dir; + } + + DirectoryFilter(String fname, String dir, String sbase) { + this.dir = dir; + this.baseLen = sbase.length(); + this.dirLen = dir.length(); + this.fname = fname; + } + + + boolean match(FileInfo fi) { + return fi.full.regionMatches(true, baseLen, dir, 0, dirLen); + } + } + + class TypeFilter extends NameFilter { + String[] exts; + + TypeFilter(String fname, String[] exts) { + this.fname = fname; + this.exts = exts; + } + + boolean match(FileInfo fi) { + for (int i=0; i"); + } else { + //doIndent(); + printWriter.println(">"); + } + } + + void startTag(String name, String[] attrs) { + startTagPrim(name, attrs, false); + } + + void startTagV(String name, Vector attrs) { + String s[] = new String [attrs.size()]; + for (int i=0; i"); + } + + void tag(String name, String[] attrs) { + startTagPrim(name, attrs, true); + } + + void tagV(String name, Vector attrs) { + String s[] = new String [attrs.size()]; + for (int i=0; i