Hacker News new | past | comments | ask | show | jobs | submit | bkryza's comments login

If you've ever tried to use any Clang-based tooling such as clangd, ccls, clang-tidy, include-what-you-use and many others, you probably had to figure out yourself how to generate the compilation database within your setup.

This post describes my attempt to generate compile_commands.json database from as many C/C++ build systems as possible (I've managed 17 + plugins). For each build system you can find steps how to setup the same reference Hello World C++17 project, generate the compile_commands.json and verify whether it works with clang-tidy and discusses issues (if any) and how to resolve them.

The list of build systems covered in the post include: B2, Bazel, Buck2, build2, CMake, Clang++, FASTBuild, Make, Meson Build, MSVC, Ninja, Premake, Qbs, SCons, Waf, XCode and xmake.


Yes, absolutely, in fact clang-uml also uses Doxygen for it's own documentation - although diagrams are 'self'-generated by clang-uml - for instance see here: https://clang-uml.github.io/structclanguml_1_1config_1_1conf...

However, the main difference between clang-uml and Doxygen is that in Doxygen the diagrams are a by-product of generated documentation. clang-uml aims to give you much more control over what you want in your diagrams, without having to use Doxygen or any other documentation tool, which possibly makes it more flexible in how you can use its output.

Obviously, which approach you prefer depends on your use case and needs.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: