ProjectCreator.java 4.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
/*
 * Copyright (c) 1999, 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.
 *
 */

public class ProjectCreator {

N
neliasso 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
   public static void usage() {
      System.out.println("ProjectCreator options:");
      System.err.println("WinGammaPlatform platform-specific options:");
      System.err.println("  -sourceBase <path to directory (workspace) "
            + "containing source files; no trailing slash>");
      System.err.println("  -dspFileName <full pathname to which .dsp file "
            + "will be written; all parent directories must "
            + "already exist>");
      System.err.println("  -envVar <environment variable to be inserted "
            + "into .dsp file, substituting for path given in "
            + "-sourceBase. Example: HotSpotWorkSpace>");
      System.err.println("  -dllLoc <path to directory in which to put "
            + "jvm.dll and jvm_g.dll; no trailing slash>");
      System.err.println("  If any of the above are specified, "
            + "they must all be.");
      System.err.println("  Additional, optional arguments, which can be "
            + "specified multiple times:");
      System.err.println("    -absoluteInclude <string containing absolute "
            + "path to include directory>");
      System.err.println("    -relativeInclude <string containing include "
            + "directory relative to -envVar>");
      System.err.println("    -define <preprocessor flag to be #defined "
            + "(note: doesn't yet support " + "#define (flag) (value))>");
      System.err.println("    -perFileLine <file> <line>");
      System.err.println("    -conditionalPerFileLine <file> <line for "
            + "release build> <line for debug build>");
      System.err.println("  (NOTE: To work around a bug in nmake, where "
            + "you can't have a '#' character in a quoted "
            + "string, all of the lines outputted have \"#\"" + "prepended)");
      System.err.println("    -startAt <subdir of sourceBase>");
      System.err.println("    -ignoreFile <file which won't be able to be "
            + "found in the sourceBase because it's generated " + "later>");
      System.err.println("    -additionalFile <file not in database but "
            + "which should show up in .dsp file>");
      System.err
            .println("    -additionalGeneratedFile <environment variable of "
                  + "generated file's location> <relative path to "
                  + "directory containing file; no trailing slash> "
                  + "<name of file generated later in the build process>");
      System.err.println("    -prelink <build> <desc> <cmds>:");
      System.err
            .println(" Generate a set of prelink commands for the given BUILD");
      System.err
            .println(" (\"Debug\" or \"Release\"). The prelink description and commands");
      System.err.println(" are both quoted strings.");
      System.err.println("    Default includes: \".\"");
      System.err
            .println("    Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\"");
   }
76

N
neliasso 已提交
77 78 79 80 81 82
   public static void main(String[] args) {
      try {
         if (args.length < 3) {
            usage();
            System.exit(1);
         }
83

N
neliasso 已提交
84 85 86 87
         String platformName = args[0];
         Class platformClass = Class.forName(platformName);
         WinGammaPlatform platform = (WinGammaPlatform) platformClass
               .newInstance();
88

N
neliasso 已提交
89 90
         String[] platformArgs = new String[args.length - 1];
         System.arraycopy(args, 1, platformArgs, 0, platformArgs.length);
91

N
neliasso 已提交
92 93 94 95 96 97 98
         // Allow the platform to write platform-specific files
         platform.createVcproj(platformArgs);
      } catch (Exception e) {
         e.printStackTrace();
         System.exit(1);
      }
   }
99
}