-#include "clangccompiler.h"
-#include "clangcxxcompiler.h"
-#include "clangobjccompiler.h"
+#include "architecture.h"
+#include "clangcompiler.h"
+#include "clanglinker.h"
#include "clangtools.h"
-ClangTools::ClangTools(Builder &builder, const Architecture &arch)
+using namespace std;
+
+ClangTools::ClangTools(Builder &builder, const Architecture &arch):
+ Toolchain("clang", get_priority(arch))
+{
+ add_tool(new ClangCompiler(builder, arch, "CC"));
+ add_tool(new ClangCompiler(builder, arch, "CXX"));
+ add_tool(new ClangCompiler(builder, arch, "OBJC"));
+
+ add_tool(new ClangLinker(builder, arch));
+}
+
+int ClangTools::get_priority(const Architecture &arch)
{
- add_tool(new ClangCCompiler(builder, arch));
- add_tool(new ClangCxxCompiler(builder, arch));
- add_tool(new ClangObjCCompiler(builder, arch));
+ if(arch.get_toolchain()=="clang")
+ return 20;
+ else if(arch.get_system()=="darwin" || arch.get_system()=="freebsd")
+ return 10;
+ else
+ return 0;
}