Mr. Dox
Install
This library depends on a recent version of LLVM. Here are the instructions to install LLVM with the settings required by this project.
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
git checkout 731264b0c2af7aa46bd39625202a99e06cfccff9
cmake -S llvm -B build -D LLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -D CMAKE_BUILD_TYPE=Release -D LLVM_ENABLE_RTTI=ON -D CMAKE_INSTALL_PREFIX=/path/to/llvm+clang
cd build
cmake --build . -j <threads> --config Release
cmake --install .
Once LLVM is available in /path/to/llvm+clang
, you can build and install mrdox with:
git clone https://github.com/cppalliance/mrdox
cd mrdox
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D LLVM_ROOT=/path/to/llvm+clang -D Clang_ROOT=/path/to/llvm+clang
cd build
cmake --build . -j <threads>
cmake --install .
Comparison
Doxygen:
-
tries to work for many languages
-
use the inferior libclang API
-
old program with lots of technical debt
-
not written by me
MrDox:
-
narrow and deep focus on C++ only
-
uses clang’s unstable libtooling API:
-
Understands ALL C++: if clang can compile it, MrDox knows about it
-
This includes up to C++20 and even experimental things in C++23
-
-
brand-new program with no technical debt
-
written by me