Skip to content

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

License

Notifications You must be signed in to change notification settings

stefanseefeld/mrdocs

 
 

Repository files navigation

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 29b20829cc6ce3e6d9c3809164994c1659e0da56
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 mrdocs with:

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

MrDocs:

  • narrow and deep focus on C++ only

  • uses clang’s unstable libtooling API:

    • Understands ALL C++: if clang can compile it, MrDocs 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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.8%
  • Handlebars 2.9%
  • CMake 1.6%
  • Other 0.7%