]> git.tdb.fi Git - builder.git/blobdiff - source/compilecommandsjson.cpp
Add support for generating compile_commands.json
[builder.git] / source / compilecommandsjson.cpp
diff --git a/source/compilecommandsjson.cpp b/source/compilecommandsjson.cpp
new file mode 100644 (file)
index 0000000..a8a1929
--- /dev/null
@@ -0,0 +1,18 @@
+#include "builder.h"
+#include "package.h"
+#include "compilecommandsjson.h"
+#include "objectfile.h"
+
+CompileCommandsJson::CompileCommandsJson(Builder &b, const SourcePackage &p):
+       FileTarget(b, p, p.get_source_directory()/("compile_commands.json"))
+{
+       tool = &builder.get_toolchain().get_tool("CCJG");
+}
+
+void CompileCommandsJson::find_dependencies()
+{
+       const BuildGraph::TargetMap &targets = builder.get_build_graph().get_targets();
+       for(BuildGraph::TargetMap::const_iterator i=targets.begin(); i!=targets.end(); ++i)
+               if(i->second->is_buildable() && i->second->get_package()==package && dynamic_cast<ObjectFile *>(i->second))
+                       i->second->prepare();
+}