]> git.tdb.fi Git - builder.git/blob - plugins/base/baseplugin.cpp
Make it possible to use built-in plugins
[builder.git] / plugins / base / baseplugin.cpp
1 #include <msp/builder/builder.h>
2 #include <msp/builder/tool.h>
3 #include "baseplugin.h"
4 #include "basetools.h"
5 #include "compilecommandsjson.h"
6 #include "pkgconfigfile.h"
7
8 void BasePlugin::add_tools(Toolchain &toolchain, const Architecture &) const
9 {
10         toolchain.add_toolchain(new BaseTools(builder));
11 }
12
13 void BasePlugin::create_targets(SourcePackage &spkg) const
14 {
15         const Architecture &native_arch = builder.get_native_arch();
16
17         if(!spkg.get_exported_build_info().libs.empty() && native_arch.get_system()=="linux")
18         {
19                 PkgConfigFile *pc = new PkgConfigFile(builder, spkg);
20                 builder.get_build_graph().get_target("install")->add_dependency(*builder.get_toolchain().get_tool("CP").create_target(*pc));
21         }
22
23         new CompileCommandsJson(builder, spkg);
24 }
25
26
27 #ifdef BASETOOLS_BUILD
28 #if defined(_WIN32)
29 #define BASETOOLS_API __declspec(dllexport)
30 #elif defined(__GNUC__)
31 #define BASETOOLS_API __attribute__((visibility("default")))
32 #else
33 #define BASETOOLS_API
34 #endif
35
36 extern "C"
37 BASETOOLS_API Plugin *create_plugin(Builder &builder)
38 {
39         return new BasePlugin(builder);
40 }
41 #endif