]> git.tdb.fi Git - builder.git/blob - source/systemtools.cpp
Add support for generating Visual C++ projects
[builder.git] / source / systemtools.cpp
1 #include "architecture.h"
2 #include "builder.h"
3 #include "clangcompiler.h"
4 #include "gnuarchiver.h"
5 #include "gnucompiler.h"
6 #include "gnulinker.h"
7 #include "mingwdlltool.h"
8 #include "systemtools.h"
9 #include "vcxprojectgenerator.h"
10
11 using namespace std;
12
13 SystemTools::SystemTools(Builder &builder, const Architecture &arch)
14 {
15         const string &sys = arch.get_system();
16         if((sys=="darwin" || sys=="freebsd") && builder.get_vfs().find_binary("clang"))
17         {
18                 add_tool(new ClangCompiler(builder, arch, "CC"));
19                 add_tool(new ClangCompiler(builder, arch, "CXX"));
20                 add_tool(new ClangCompiler(builder, arch, "OBJC"));
21         }
22         else
23         {
24                 add_tool(new GnuCompiler(builder, arch, "CC"));
25                 add_tool(new GnuCompiler(builder, arch, "CXX"));
26                 add_tool(new GnuCompiler(builder, arch, "OBJC"));
27         }
28
29         add_tool(new GnuLinker(builder, arch));
30         add_tool(new GnuArchiver(builder, arch));
31
32         if(arch.get_system()=="windows")
33         {
34                 add_tool(new MingwDllTool(builder, arch));
35                 add_tool(new VcxProjectGenerator(builder));
36         }
37 }