]> git.tdb.fi Git - builder.git/blobdiff - source/clangtools.cpp
Add a customized linker tool to ClangTools
[builder.git] / source / clangtools.cpp
index a4f005cc2b5d5d3274eb2fa9ada45c6655da6a9c..8e8973db5450b2d90fbf8a8542c83f2172a83f01 100644 (file)
@@ -1,11 +1,26 @@
-#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;
 }