]> git.tdb.fi Git - builder.git/blobdiff - source/clangtools.cpp
Add a customized linker tool to ClangTools
[builder.git] / source / clangtools.cpp
index d0910ff28fa9a171dc85027fa78bdc2a5eb58379..8e8973db5450b2d90fbf8a8542c83f2172a83f01 100644 (file)
@@ -1,17 +1,26 @@
-#include "builder.h"
+#include "architecture.h"
 #include "clangcompiler.h"
+#include "clanglinker.h"
 #include "clangtools.h"
-#include "gnuarchiver.h"
-#include "gnulinker.h"
 
 using namespace std;
 
-ClangTools::ClangTools(Builder &builder, const Architecture &arch)
+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 GnuLinker(builder, arch));
-       add_tool(new GnuArchiver(builder, arch));
+       add_tool(new ClangLinker(builder, arch));
+}
+
+int ClangTools::get_priority(const Architecture &arch)
+{
+       if(arch.get_toolchain()=="clang")
+               return 20;
+       else if(arch.get_system()=="darwin" || arch.get_system()=="freebsd")
+               return 10;
+       else
+               return 0;
 }