mrdocs icon indicating copy to clipboard operation
mrdocs copied to clipboard

MrDox: A Clang/LLVM tool for building reference documentation from C++ code and javadoc comments.

= 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.

[source,bash]

git clone https://github.com/llvm/llvm-project.git cd llvm-project git checkout 5b959310b0fae723bd119ed8815bf1cb1a8c67d4 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 --config Release cmake --install .

Once LLVM is available in /path/to/llvm+clang, you can build and install mrdocs with:

[source,bash]

git clone https://github.com/cppalliance/mrdocs cd mrdocs 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 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

=== MrDocs:

  • narrow and deep focus on {cpp} only
  • uses clang's unstable libtooling API: ** Understands ALL C++: if clang can compile it, MrDocs knows about it ** This includes up to {cpp}20 and even experimental things in {cpp}23
  • brand-new program with no technical debt
  • written by me