Skip to content

Conversation

@jasnell
Copy link
Collaborator

@jasnell jasnell commented Dec 17, 2025

I know that doxygen isn't everyone's favorite thing, but I've found it useful, but it hasn't been updated in a bit. This PR updates it and adds a just ds (doxygen-serve) command to easily serve the generated docs for local browsing.

The doxygen build is added because doxygen needs to be built with the correct clang version to avoid warnings and errors.

I had claude do the bazel bits because I really hate dealing with build systems.

I know that doxygen isn't everyone's favorite thing, but I've
found it useful, but it hasn't been updated in a bit. This
PR updates it and adds a just ds (doxygen-serve) command to
easily serve the generated docs for local browsing.

The doxygen build is added because doxygen needs to be
built with the correct clang version to avoid warnings and
errors.
@jasnell jasnell requested a review from fhanau December 17, 2025 21:19
@jasnell jasnell requested review from a team as code owners December 17, 2025 21:19
the system LLVM/clang installation to enable clang-assisted parsing of C++ code.
"""

def _doxygen_repository_impl(ctx):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wot in tarnation... is there really no easier way to build Doxygen from Bazel?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea. I didn't try lol. I really dislike dealing with build tooling so went with the easiest thing that could possibly work

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait to see if Felix agrees, but I'd suggest asking Claude to use rules_doxygen. If it works, there'll be a lot less code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well... if we're going for the easiest thing then doing bazel_dep(name = "rules_doxygen", version = "2.6.1") and following the Use instructions is a lot easier here than this approach. Sometimes we don't need to reinvent the wheel, even if we have automated the reinventing.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another vote for rules_doxygen then

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had tried that approach initially but kept running into issues with the clang support... building the doxygen here was the only way I was able to get it to work reasonably with a couple of the other updates.

@jasnell jasnell added documentation Improvements or additions to documentation build labels Dec 17, 2025
@jasnell jasnell marked this pull request as draft December 18, 2025 01:28
@jasnell
Copy link
Collaborator Author

jasnell commented Dec 18, 2025

moving this to draft. there's a few bits to fix up but it's a low priority, will work on it as time allows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants