]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / Cpptasks / net / sf / antcontrib / cpptasks / devstudio / DevStudioAssembler.java
1 /*
2 *
3 * Copyright 2001-2005 The Ant-Contrib project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package net.sf.antcontrib.cpptasks.devstudio;
18
19 import java.io.File;
20 import java.util.Vector;
21
22 import net.sf.antcontrib.cpptasks.CUtil;
23 import net.sf.antcontrib.cpptasks.compiler.CommandLineAssembler;
24 import net.sf.antcontrib.cpptasks.compiler.LinkType;
25 import net.sf.antcontrib.cpptasks.compiler.Linker;
26
27 /**
28 * Adaptor for Microsoft MASM
29 *
30 */
31 public final class DevStudioAssembler extends CommandLineAssembler {
32 private final static String[] sourceExtensions = new String[] { ".asm" };
33
34 private final static String[] headerExtensions = new String[] { ".h",
35 ".inc" };
36
37 private final static String[] defaultflags = new String[] { "/nologo", "/c" };
38
39 private static final DevStudioAssembler instance = new DevStudioAssembler(
40 "ml", sourceExtensions, headerExtensions, false);
41
42 /**
43 * Gets masm adapter
44 */
45 public static DevStudioAssembler getInstance() {
46 return instance;
47 }
48
49 /**
50 * Private constructor. Use DevStudioAssembler.getInstance() to get
51 * singleton instance of this class.
52 */
53 private DevStudioAssembler (String command, String[] sourceExtensions,
54 String[] headerExtensions, boolean isLibtool) {
55 super(command, null, sourceExtensions, headerExtensions, ".obj");
56 }
57
58 public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) {
59 if (defaultflag != null && defaultflag.booleanValue()) {
60 for (int i = 0; i < defaultflags.length; i++) {
61 args.addElement(defaultflags[i]);
62 }
63 }
64 if (debug) {
65 args.addElement("Zi");
66 }
67 }
68
69 public int getMaximumCommandLength() {
70 return Integer.MAX_VALUE;
71 }
72
73 public Linker getLinker(LinkType linkType) {
74 return DevStudioLinker.getInstance().getLinker(linkType);
75 }
76
77 protected File[] getEnvironmentIncludePath() {
78 return CUtil.getPathFromEnvironment("INCLUDE", ";");
79 }
80
81 protected String getIncludeDirSwitch(String includeDir) {
82 return "/I" + includeDir.replace('/', '\\');
83 }
84 }