diff --git a/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java index e7af352..7b977c8 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java @@ -60,6 +60,10 @@ import org.apache.tools.ant.types.EnumeratedAttribute; * xcode.clang * Xcode clang / llvm C compiler (via xcrun) * + * fcc + * fcc / Fujitsu C compiler + * + * * * g++ * GCC C++ compiler @@ -69,6 +73,10 @@ import org.apache.tools.ant.types.EnumeratedAttribute; * clang++ / llvm C++ compiler * * + * FCC + * FCC / Fujitsu C++ compiler + * + * * xcode.clang++ * Xcode clang++ / llvm C++ compiler (via xcrun) * @@ -209,6 +217,8 @@ public class CompilerEnum extends EnumeratedAttribute { new ProcessorEnumValue("clang++", GccCCompiler.getCPPLangInstance()), new ProcessorEnumValue("xcode.clang", GccCCompiler.getXCodeCLangInstance()), new ProcessorEnumValue("xcode.clang++", GccCCompiler.getXCodeCPPLangInstance()), + new ProcessorEnumValue("fcc", GccCCompiler.getFccInstance()), + new ProcessorEnumValue("FCC", GccCCompiler.getFCCPPInstance()), new ProcessorEnumValue("c++", GccCCompiler.getCppInstance()), new ProcessorEnumValue("g77", GccCCompiler.getG77Instance()), new ProcessorEnumValue("msvc", DevStudioCCompiler.getInstance()), diff --git a/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java index 38800ae..e57de43 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java @@ -52,6 +52,8 @@ public class LinkerEnum extends EnumeratedAttribute { new ProcessorEnumValue("clang++", GppLinker.getClangInstance()), new ProcessorEnumValue("xcode.clang", GccLinker.getXcodeClangInstance()), new ProcessorEnumValue("xcode.clang++", GppLinker.getXcodeClangInstance()), + new ProcessorEnumValue("fcc", GccLinker.getFccInstance()), + new ProcessorEnumValue("FCC", GppLinker.getFccInstance()), new ProcessorEnumValue("ld", LdLinker.getInstance()), new ProcessorEnumValue("ar", GccLibrarian.getInstance()), new ProcessorEnumValue("msvc", DevStudioLinker.getInstance()), diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java index da6de52..585b6dd 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java @@ -75,6 +75,14 @@ public final class GccCCompiler extends GccCompatibleCCompiler { sourceExtensions, headerExtensions, false, false, new GccCCompiler("clang++", sourceExtensions, headerExtensions, false, true, null, false, null), false, null); + private static final GccCCompiler fccInstance = new GccCCompiler("fcc", + sourceExtensions, headerExtensions, false, + false, new GccCCompiler("fcc", sourceExtensions, headerExtensions, false, + true, null, false, null), false, null); + private static final GccCCompiler fccppInstance = new GccCCompiler("FCC", + sourceExtensions, headerExtensions, false, + false, new GccCCompiler("FCC", sourceExtensions, headerExtensions, false, + true, null, false, null), false, null); /** * Gets c++ adapter */ @@ -111,6 +119,18 @@ public final class GccCCompiler extends GccCompatibleCCompiler { public static GccCCompiler getCPPLangInstance() { return cpplangInstance; } + /** + * Gets fcc adapter + */ + public static GccCCompiler getFccInstance() { + return fccInstance; + } + /** + * Gets FCC adapter + */ + public static GccCCompiler getFCCPPInstance() { + return fccppInstance; + } /** * Gets XCode clang adapter */ diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java index f9c51ef..94ac8c2 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java @@ -41,16 +41,22 @@ public class GccLinker extends GnuLinker { private static final GccLinker clangInstance = new GccLinker("clang", objFiles, discardFiles, "", "", false, null); private static final GccLinker xcodeClangInstance = new GccLinker(clangInstance, true); + private static final GccLinker fccInstance = new GccLinker("fcc", objFiles, + discardFiles, "", "", false, null); private static final GccLinker dllLinker = new GccLinker("gcc", objFiles, discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles, discardFiles, "lib", ".so", true, null)); private static final GccLinker dllClangLinker = new GccLinker("clang", objFiles, discardFiles, "lib", ".so", false, new GccLinker("clang", objFiles, discardFiles, "lib", ".so", true, null)); + private static final GccLinker dllFccLinker = new GccLinker("fcc", objFiles, + discardFiles, "lib", ".so", false, new GccLinker("fcc", objFiles, discardFiles, "lib", ".so", true, null)); private static final GccLinker arLinker = new GccLinker("gcc", objFiles, discardFiles, "lib", ".a", false, new GccLinker("gcc", objFiles, discardFiles, "lib", ".a", true, null)); private static final GccLinker arClangLinker = new GccLinker("clang", objFiles, discardFiles, "lib", ".a", false, new GccLinker("clang", objFiles, discardFiles, "lib", ".a", true, null)); + private static final GccLinker arFccLinker = new GccLinker("fcc", objFiles, + discardFiles, "lib", ".a", false, new GccLinker("fcc", objFiles, discardFiles, "lib", ".a", true, null)); private static final GccLinker machBundleLinker = new GccLinker("gcc", objFiles, discardFiles, "lib", ".bundle", false, null); @@ -76,6 +82,9 @@ public class GccLinker extends GnuLinker { public static GccLinker getClangInstance() { return clangInstance; } + public static GccLinker getFccInstance() { + return fccInstance; + } public static GccLinker getXcodeClangInstance() { return xcodeClangInstance; } @@ -102,10 +111,18 @@ public class GccLinker extends GnuLinker { return dllClangLinker; } @Override + protected final GnuLinker getStaticDllFccLinker() { + return dllFccLinker; + } + @Override protected final GnuLinker getStaticArLinker() { return arLinker; } @Override + protected final GnuLinker getStaticArFccLinker() { + return arFccLinker; + } + @Override protected final GnuLinker getStaticArClangLinker() { return arClangLinker; } @@ -114,6 +131,10 @@ public class GccLinker extends GnuLinker { return clangInstance; } @Override + protected final GnuLinker getStaticFccInstance() { + return fccInstance; + } + @Override protected final GnuLinker getStaticXcodeClangInstance() { return xcodeClangInstance; } diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GnuLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GnuLinker.java index f6d477f..9ad9894 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GnuLinker.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GnuLinker.java @@ -35,6 +35,9 @@ public abstract class GnuLinker extends AbstractLdLinker { protected abstract GnuLinker getStaticArLinker(); protected abstract GnuLinker getStaticArClangLinker(); protected abstract GnuLinker getStaticClangInstance(); + protected abstract GnuLinker getStaticDllFccLinker(); + protected abstract GnuLinker getStaticArFccLinker(); + protected abstract GnuLinker getStaticFccInstance(); protected abstract GnuLinker getStaticXcodeClangInstance(); protected abstract GnuLinker getStaticMachBundleLinker(); protected abstract GnuLinker getStaticMachClangBundleLinker(); @@ -129,24 +132,24 @@ public abstract class GnuLinker extends AbstractLdLinker { if (isDarwin()) { return isGNU() ? getStaticMachArLinker() : ( isXcodeRun() ? getStaticXcodeMachArClangLinker() : getStaticMachArClangLinker() ); } else { - return isGNU() ? getStaticArLinker() : getStaticArClangLinker(); + return isGNU() ? getStaticArLinker() : (isCLANG()? getStaticArClangLinker(): getStaticArFccLinker()); } } if (type.isPluginModule()) { if (isDarwin()) { return isGNU() ? getStaticMachBundleLinker() : ( isXcodeRun() ? getStaticXcodeMachClangBundleLinker() : getStaticMachClangBundleLinker() ); } else { - return isGNU() ? getStaticDllLinker() : getStaticDllClangLinker(); + return isGNU() ? getStaticDllLinker() : (isCLANG()? getStaticDllClangLinker(): getStaticDllFccLinker()); } } if (type.isSharedLibrary()) { if (isDarwin()) { return isGNU() ? getStaticMachDllLinker() : ( isXcodeRun() ? getStaticXcodeMachDllClangLinker() : getStaticMachDllClangLinker() ); } else { - return isGNU() ? getStaticDllLinker() : getStaticDllClangLinker(); + return isGNU() ? getStaticDllLinker() : (isCLANG()? getStaticDllClangLinker(): getStaticDllFccLinker()); } } return isGNU() ? getStaticInstance() : ( isXcodeRun() ? getStaticXcodeClangInstance() : getStaticClangInstance() ) ; } -} \ No newline at end of file +} diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java index 833556e..ac8b688 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java @@ -46,6 +46,8 @@ public class GppLinker extends GnuLinker { discardFiles, "", "", false, false, null); private static final GppLinker clangInstance = new GppLinker("clang", objFiles, discardFiles, "", "", false, false, null); + private static final GppLinker fccInstance = new GppLinker("fcc", objFiles, + discardFiles, "", "", false, false, null); private static final GppLinker xcodeClangInstance = new GppLinker(clangInstance, true); private static final GppLinker dllLinker = new GppLinker("gcc", objFiles, @@ -54,6 +56,9 @@ public class GppLinker extends GnuLinker { private static final GppLinker dllClangLinker = new GppLinker("clang", objFiles, discardFiles, "lib", ".so", false, false, new GppLinker("clang", objFiles, discardFiles, "lib", ".so", false, true, null)); + private static final GppLinker dllFccLinker = new GppLinker("fcc", objFiles, + discardFiles, "lib", ".so", false, false, new GppLinker("fcc", objFiles, + discardFiles, "lib", ".so", false, true, null)); private static final GppLinker arLinker = new GppLinker("gcc", objFiles, discardFiles, "lib", ".a", false, false, new GppLinker("gcc", objFiles, @@ -61,6 +66,9 @@ public class GppLinker extends GnuLinker { private static final GppLinker arClangLinker = new GppLinker("clang", objFiles, discardFiles, "lib", ".a", false, false, new GppLinker("clang", objFiles, discardFiles, "lib", ".a", false, true, null)); + private static final GppLinker arFccLinker = new GppLinker("fcc", objFiles, + discardFiles, "lib", ".a", false, false, new GppLinker("fcc", objFiles, + discardFiles, "lib", ".a", false, true, null)); private static final GppLinker machBundleLinker = new GppLinker("gcc", objFiles, discardFiles, "lib", ".bundle", false, false, null); @@ -86,6 +94,9 @@ public class GppLinker extends GnuLinker { public static GppLinker getClangInstance() { return clangInstance; } + public static GppLinker getFccInstance() { + return fccInstance; + } public static GppLinker getXcodeClangInstance() { return xcodeClangInstance; } @@ -112,6 +123,10 @@ public class GppLinker extends GnuLinker { return dllClangLinker; } @Override + protected final GnuLinker getStaticDllFccLinker() { + return dllFccLinker; + } + @Override protected final GnuLinker getStaticArLinker() { return arLinker; } @@ -124,6 +139,14 @@ public class GppLinker extends GnuLinker { return clangInstance; } @Override + protected final GnuLinker getStaticArFccLinker() { + return arFccLinker; + } + @Override + protected final GnuLinker getStaticFccInstance() { + return fccInstance; + } + @Override protected final GnuLinker getStaticXcodeClangInstance() { return xcodeClangInstance; }