#include "binarypackage.h"
#include "builder.h"
#include "builtintools.h"
-#include "clangtools.h"
#include "datatool.h"
-#include "gnutools.h"
#include "installedfile.h"
#include "package.h"
#include "sharedlibrary.h"
#include "sourcepackage.h"
+#include "systemtools.h"
#include "task.h"
#include "virtualtarget.h"
void Builder::add_default_tools()
{
- bool use_clang = (current_arch->get_system()=="darwin" || current_arch->get_system()=="freebsd");
- if(use_clang && vfs.find_binary("clang"))
- toolchain.add_toolchain(new ClangTools(*this, *current_arch));
if(current_arch->get_system()=="android")
toolchain.add_toolchain(new AndroidTools(*this, *current_arch));
- toolchain.add_toolchain(new GnuTools(*this, *current_arch));
+ toolchain.add_toolchain(new SystemTools(*this, *current_arch));
toolchain.add_toolchain(new BuiltinTools(*this));
toolchain.add_tool(new DataTool(*this));
}
+++ /dev/null
-#include "clangccompiler.h"
-#include "clangcxxcompiler.h"
-#include "clangobjccompiler.h"
-#include "clangtools.h"
-
-ClangTools::ClangTools(Builder &builder, const Architecture &arch)
-{
- add_tool(new ClangCCompiler(builder, arch));
- add_tool(new ClangCxxCompiler(builder, arch));
- add_tool(new ClangObjCCompiler(builder, arch));
-}
+++ /dev/null
-#ifndef CLANGTOOLS_H_
-#define CLANGTOOLS_H_
-
-#include "toolchain.h"
-
-class ClangTools: public Toolchain
-{
-public:
- ClangTools(Builder &, const Architecture &);
-};
-
-#endif
+++ /dev/null
-#include "architecture.h"
-#include "gnuarchiver.h"
-#include "gnuccompiler.h"
-#include "gnucxxcompiler.h"
-#include "gnulinker.h"
-#include "gnuobjccompiler.h"
-#include "gnutools.h"
-#include "mingwdlltool.h"
-
-GnuTools::GnuTools(Builder &builder, const Architecture &arch)
-{
- add_tool(new GnuCCompiler(builder, arch));
- add_tool(new GnuCxxCompiler(builder, arch));
- add_tool(new GnuObjCCompiler(builder, arch));
- add_tool(new GnuLinker(builder, arch));
- add_tool(new GnuArchiver(builder, arch));
- if(arch.get_system()=="windows")
- add_tool(new MingwDllTool(builder, arch));
-}
+++ /dev/null
-#ifndef GNUTOOLS_H_
-#define GNUTOOLS_H_
-
-#include "toolchain.h"
-
-class Architecture;
-class Builder;
-
-class GnuTools: public Toolchain
-{
-public:
- GnuTools(Builder &, const Architecture &);
-};
-
-#endif
--- /dev/null
+#include "architecture.h"
+#include "builder.h"
+#include "clangccompiler.h"
+#include "clangcxxcompiler.h"
+#include "clangobjccompiler.h"
+#include "gnuarchiver.h"
+#include "gnuccompiler.h"
+#include "gnucxxcompiler.h"
+#include "gnulinker.h"
+#include "gnuobjccompiler.h"
+#include "mingwdlltool.h"
+#include "systemtools.h"
+
+using namespace std;
+
+SystemTools::SystemTools(Builder &builder, const Architecture &arch)
+{
+ const string &sys = arch.get_system();
+ if((sys=="darwin" || sys=="freebsd") && builder.get_vfs().find_binary("clang"))
+ {
+ add_tool(new ClangCCompiler(builder, arch));
+ add_tool(new ClangCxxCompiler(builder, arch));
+ add_tool(new ClangObjCCompiler(builder, arch));
+ }
+ else
+ {
+ add_tool(new GnuCCompiler(builder, arch));
+ add_tool(new GnuCxxCompiler(builder, arch));
+ add_tool(new GnuObjCCompiler(builder, arch));
+ }
+
+ add_tool(new GnuLinker(builder, arch));
+ add_tool(new GnuArchiver(builder, arch));
+ if(arch.get_system()=="windows")
+ add_tool(new MingwDllTool(builder, arch));
+}
--- /dev/null
+#ifndef SYSTEMTOOLS_H_
+#define SYSTEMTOOLS_H_
+
+#include "toolchain.h"
+
+class Architecture;
+class Builder;
+
+class SystemTools: public Toolchain
+{
+public:
+ SystemTools(Builder &, const Architecture &);
+};
+
+#endif