3 * Copyright 2001-2005 The Ant-Contrib project
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package net
.sf
.antcontrib
.cpptasks
.devstudio
;
20 import java
.util
.Vector
;
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
;
28 * Adaptor for Microsoft MASM
31 public final class DevStudioAssembler
extends CommandLineAssembler
{
32 private final static String
[] sourceExtensions
= new String
[] { ".asm" };
34 private final static String
[] headerExtensions
= new String
[] { ".h",
37 private final static String
[] defaultflags
= new String
[] { "/nologo", "/c" };
39 private static final DevStudioAssembler instance
= new DevStudioAssembler(
40 "ml", sourceExtensions
, headerExtensions
, false);
45 public static DevStudioAssembler
getInstance() {
50 * Private constructor. Use DevStudioAssembler.getInstance() to get
51 * singleton instance of this class.
53 private DevStudioAssembler (String command
, String
[] sourceExtensions
,
54 String
[] headerExtensions
, boolean isLibtool
) {
55 super(command
, null, sourceExtensions
, headerExtensions
, ".obj");
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
]);
65 args
.addElement("Zi");
69 public int getMaximumCommandLength() {
70 return Integer
.MAX_VALUE
;
73 public Linker
getLinker(LinkType linkType
) {
74 return DevStudioLinker
.getInstance().getLinker(linkType
);
77 protected File
[] getEnvironmentIncludePath() {
78 return CUtil
.getPathFromEnvironment("INCLUDE", ";");
81 protected String
getIncludeDirSwitch(String includeDir
) {
82 return "/I" + includeDir
.replace('/', '\\');