From 683d490074d93baa8a47db7ec43b7bd31145a12a Mon Sep 17 00:00:00 2001 From: Mark Donszelmann Date: Thu, 5 Nov 2009 23:00:15 +0100 Subject: Tar file expanded and committed --- .../sf/antcontrib/cpptasks/compiler/LinkType.java | 150 +++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java (limited to 'src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java') diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java new file mode 100644 index 0000000..70ee93f --- /dev/null +++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java @@ -0,0 +1,150 @@ +/* + * + * Copyright 2001-2004 The Ant-Contrib project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package net.sf.antcontrib.cpptasks.compiler; +import net.sf.antcontrib.cpptasks.OutputTypeEnum; +import net.sf.antcontrib.cpptasks.SubsystemEnum; +/** + * This class represents the target platform for the compile and link step. The + * name is an anachronism and should be changed. + * + * @author Curt Arnold + */ +public class LinkType { + private OutputTypeEnum outputType = new OutputTypeEnum(); + private boolean staticRuntime = false; + private SubsystemEnum subsystem = new SubsystemEnum(); + /** + * Constructor + * + * By default, an gui executable with a dynamically linked runtime + * + */ + public LinkType() { + } + /** + * Gets whether the link should produce an executable + * + * @return boolean + */ + public boolean isExecutable() { + String value = outputType.getValue(); + return value.equals("executable"); + } + /** + * Gets whether the link should produce a plugin module. + * + * @return boolean + */ + public boolean isPluginModule() { + String value = outputType.getValue(); + return value.equals("plugin"); + } + /** + * Gets whether the link should produce a shared library. + * + * @return boolean + */ + public boolean isSharedLibrary() { + String value = outputType.getValue(); + return value.equals("shared") || value.equals("plugin"); + } + /** + * Gets whether the link should produce a static library. + * + * @return boolean + */ + public boolean isStaticLibrary() { + String value = outputType.getValue(); + return value.equals("static"); + } + /** + * Gets whether the module should use a statically linked runtime library. + * + * @return boolean + */ + public boolean isStaticRuntime() { + return staticRuntime; + } + /** + * Gets whether the link should produce a module for a console subsystem. + * + * @return boolean + */ + public boolean isSubsystemConsole() { + String value = subsystem.getValue(); + return value.equals("console"); + } + /** + * Gets whether the link should produce a module for a graphical user + * interface subsystem. + * + * @return boolean + */ + public boolean isSubsystemGUI() { + String value = subsystem.getValue(); + return value.equals("gui"); + } + /** + * Sets the output type (execuable, shared, etc). + * + * @param outputType may not be null + */ + public void setOutputType(OutputTypeEnum outputType) { + if (outputType == null) { + throw new IllegalArgumentException("outputType"); + } + this.outputType = outputType; + } + + /** + * Gets the output type. + * @return output type + */ + public String getOutputType() { + return outputType.getValue(); + } + + /** + * Requests use of a static runtime library. + * + * @param staticRuntime + * if true, use static runtime library if possible. + */ + public void setStaticRuntime(boolean staticRuntime) { + this.staticRuntime = staticRuntime; + } + /** + * Sets the subsystem (gui, console, etc). + * + * @param subsystem + * subsystem, may not be null + */ + public void setSubsystem(SubsystemEnum subsystem) { + if (subsystem == null) { + throw new IllegalArgumentException("subsystem"); + } + this.subsystem = subsystem; + } + + /** + * Get subsystem name. + * @return subsystem name + */ + public String getSubsystem() { + return subsystem.getValue(); + } +} -- cgit v1.2.3