]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / Cpptasks / net / sf / antcontrib / cpptasks / compiler / Processor.java
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java
new file mode 100644 (file)
index 0000000..6fb74e9
--- /dev/null
@@ -0,0 +1,73 @@
+/*\r
+ * \r
+ * Copyright 2002-2004 The Ant-Contrib project\r
+ *\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *  You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License.\r
+ */\r
+package net.sf.antcontrib.cpptasks.compiler;\r
+import net.sf.antcontrib.cpptasks.CCTask;\r
+import net.sf.antcontrib.cpptasks.ProcessorDef;\r
+import net.sf.antcontrib.cpptasks.TargetDef;\r
+import org.apache.tools.ant.types.Environment;\r
+/**\r
+ * A processor. Base interface for Compiler and Linker\r
+ * \r
+ * @author Curt Arnold\r
+ */\r
+public interface Processor {\r
+    /**\r
+     * Returns a bid indicating the desire of this compiler to process the\r
+     * file.\r
+     * \r
+     * @param inputFile\r
+     *            input file\r
+     * @return 0 = no interest, 100 = high interest\r
+     */\r
+    int bid(String inputFile);\r
+    Processor changeEnvironment(boolean newEnvironment, Environment env);\r
+    /**\r
+     * Returns the compiler configuration for <cc>or <compiler>element.\r
+     * \r
+     * @param defaultProviders\r
+     *            When specificConfig corresponds to a <compiler>or linker\r
+     *            element, defaultProvider will be a zero to two element array.\r
+     *            If there is an extends attribute, the first element will be\r
+     *            the referenced ProcessorDef, unless inherit = false, the last\r
+     *            element will be the containing <cc>element\r
+     * @param specificConfig\r
+     *            A <cc>or <compiler>element.\r
+     * @return resulting configuration\r
+     */\r
+    ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType,\r
+            ProcessorDef[] defaultProviders, ProcessorDef specificConfig,\r
+                       TargetDef targetPlatform);\r
+    /**\r
+     * Retrieve an identifier that identifies the specific version of the\r
+     * compiler. Compilers with the same identifier should produce the same\r
+     * output files for the same input files and command line switches.\r
+     */\r
+    String getIdentifier();\r
+    /**\r
+     * Gets the linker that is associated with this processors\r
+     */\r
+    Linker getLinker(LinkType type);\r
+    /**\r
+     * Output file name (no path components) corresponding to source file\r
+     * \r
+     * @param inputFile\r
+     *            input file\r
+     * @return output file name or null if no output file or name not\r
+     *         determined by input file\r
+     */\r
+    String getOutputFileName(String inputFile);\r
+}\r