Skip to main content

mlc-doxygen-bin

mlc-doxygen-bin builds platform wheels containing the Doxygen command-line executable. It is intended for Python-driven build systems that want a pinned Doxygen binary without relying on a system package manager. The pinned Doxygen release is recorded in version.py and exposed at runtime as mlc_doxygen_bin.DOXYGEN_VERSION.

The wheel installs a doxygen console script that delegates to the executable stored inside the Python package.

Build Wheels

On macOS:

scripts/wheel_macos.sh

On manylinux_2_28:

scripts/wheel_manylinux_2_28.sh

On Windows:

scripts\wheel_windows.ps1

The scripts run cibuildwheel==3.3.1 through uv. The package is built with scikit-build-core: building a wheel runs scripts/prepare_doxygen.py, which downloads the pinned upstream source archive, verifies its SHA-256 digest, builds the CLI executable, and stages it into the wheel. Wheels are tagged py3-none-<platform>; the manylinux script (and CI) retags scikit-build-core's linux_<arch> tag to manylinux_2_28_<arch>.

Build artifacts are written to wheelhouse/.

Build From Source

Prebuilt wheels are published for common platforms; elsewhere pip builds from the sdist like any other compiled package. That needs a C++17 compiler, Flex (>= 2.6, see below) and Bison on PATH (or FLEX_EXECUTABLE / BISON_EXECUTABLE), Python, and network access to download the pinned Doxygen source; CMake and Ninja are pulled in as build requirements:

CMAKE_BUILD_PARALLEL_LEVEL=8 python -m pip install --no-binary mlc-doxygen-bin mlc-doxygen-bin

From a checkout, python -m build --wheel builds a wheel for the host. Set MLC_DOXYGEN_BIN_SOURCE_DIR=/path/to/doxygen to build an existing source tree instead of downloading the pinned archive.

Platform And Architecture

The Linux and macOS scripts default to the host architecture. Override the target architecture with:

MLC_DOXYGEN_BIN_ARCH=aarch64 scripts/wheel_manylinux_2_28.sh
MLC_DOXYGEN_BIN_ARCH=arm64 scripts/wheel_macos.sh

Supported values are:

  • Linux: x86_64, aarch64
  • macOS: arm64, x86_64
  • Windows: AMD64

Build Dependencies

The build needs CMake, Ninja, Python, Flex, Bison, and a C++ compiler. The manylinux script installs Bison from the manylinux distribution and builds a pinned Flex 2.6.4 into /usr/local, because AlmaLinux 8's Flex 2.6.1 can fail while generating Doxygen's large scanners.

On macOS, use Homebrew Flex and Bison if the Apple-provided versions are too old:

brew install flex bison

The macOS script automatically prepends Homebrew's flex and bison directories to PATH when Homebrew is available.

On Windows, install Visual Studio Build Tools and winflexbison3.

Windows ARM64 wheels are not published. Doxygen requires iconv and only bundles prebuilt x86/x64 iconv libraries for Windows, and we do not add a third-party iconv to the build. To build for Windows ARM64 yourself, supply an ARM64 iconv with -DICONV_DIR=<prefix> through MLC_DOXYGEN_BIN_EXTRA_CMAKE_ARGS.

Runtime Scope

This package intentionally builds only the Doxygen CLI executable. It does not bundle doxywizard, doxyindexer, doxysearch.cgi, libclang, Graphviz, LaTeX, Ghostscript, or PlantUML. Those tools remain external runtime dependencies for Doxygen features that need them.

License

The packaging code in this directory (build scripts, CMake, and the Python wrapper) is licensed under the MIT License, which is compatible with GPL-2.0; see LICENSE. The bundled Doxygen executable is licensed by its authors under GPL-2.0-only. Its license text is copied from the SHA-256-verified upstream source archive into the wheel as mlc_doxygen_bin/licenses/LICENSE-Doxygen.txt, and the build fails if that file is missing. The wheel metadata declares MIT AND GPL-2.0-only to cover both.

Usage

python -m pip install mlc-doxygen-bin
doxygen --version

Programmatic path lookup is also available:

import mlc_doxygen_bin

print(mlc_doxygen_bin.get_executable_path())
print(mlc_doxygen_bin.metadata())

Tests

The pytest suite under tests/python/ exercises the installed package. The tests check the version metadata and run the packaged executable through its executable path, python -m mlc_doxygen_bin, and the doxygen console script, including generating HTML for a tiny project. From this directory:

python -m pip install ".[test]"   # or: python -m pip install <wheel> pytest
pytest

Run pytest against an installed wheel; the tests import the installed package, not python/. cibuildwheel runs the same suite on every built wheel.

Bumping the version

version.py is the single version source. To move to a new Doxygen release, edit only that file:

  • DOXYGEN_VERSION: the upstream release (the Git tag is derived as Release_<major>_<minor>_<patch>).

  • __version__: the Python package version; it must equal DOXYGEN_VERSION, or DOXYGEN_VERSION plus a PEP 440 suffix such as .post1.

  • DOXYGEN_ARCHIVE_SHA256: the SHA-256 of the source archive scripts/prepare_doxygen.py downloads:

    curl -fsSL https://github.com/doxygen/doxygen/releases/download/Release_<X_Y_Z>/doxygen-<X.Y.Z>.src.tar.gz | sha256sum
    

Package metadata, the build scripts, the default build directory, and the generated runtime module mlc_doxygen_bin/_version.py all read these values. The publishing workflow's version_suffix input runs scripts/stamp_version.py --suffix <suffix>, which rewrites __version__ in the build checkout and rejects versions not based on DOXYGEN_VERSION.

Metadata

Release files for mlc-doxygen-bin 1.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mlc-doxygen-bin 1.18.0
File Size Uploaded Provenance
mlc_doxygen_bin-1.18.0.tar.gz 16.2 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for mlc-doxygen-bin 1.18.0
File
mlc_doxygen_bin-1.18.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
mlc_doxygen_bin-1.18.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
mlc_doxygen_bin-1.18.0-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 40.2 MB

Release files / mlc_doxygen_bin-1.18.0.tar.gz

Download URL mlc_doxygen_bin-1.18.0.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3057cbd30f02d1825bfcbf6dda6a6d5d94f5573ec64d3d2d376345d62b724e18
BLAKE2b-256 checksum
How to use checksums
faa52b2a2db393308f7d554b5bcf0ff3e5e3be97b3da27f3fd0048e022aa7a9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mlc_doxygen_bin-1.18.0-py3-none-win_amd64.whl

Download URL mlc_doxygen_bin-1.18.0-py3-none-win_amd64.whl
Size 7.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
28521554e52018ab9431ba67557ef00709b75ba13b2ea0d0742002518c4bf577
BLAKE2b-256 checksum
How to use checksums
abb85175723dae3c82779be670b20d6fa31f80e4e205ae2d691eaa41960ef916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_x86_64.whl

Download URL mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_x86_64.whl
Size 8.4 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b5888e88fe0fc5ab49d8f8b569ff517ca381fd370635fe321c702fd044aa2224
BLAKE2b-256 checksum
How to use checksums
7dfb4cde036f4fbf7441da1f6208fcb55d2303ff50cbb47f155d45c0ff24b2c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_aarch64.whl

Download URL mlc_doxygen_bin-1.18.0-py3-none-manylinux_2_28_aarch64.whl
Size 7.9 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2e4a9b90063cccf713fbba5052e3ed629014e3550945e4a2d6cff9bae92c5c8b
BLAKE2b-256 checksum
How to use checksums
eaf9c773869bcc2fc6e56533f0f872c16169a7820b153ba805a34b48f79363a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mlc_doxygen_bin-1.18.0-py3-none-macosx_11_0_arm64.whl

Download URL mlc_doxygen_bin-1.18.0-py3-none-macosx_11_0_arm64.whl
Size 7.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
83432eac6f56c3780f4eb2f31fc3682b85f2ee7537756a5fe867f99564b755a9
BLAKE2b-256 checksum
How to use checksums
f82205542c0d10f0495b445827fddbef4453aaa91722f118afa7d116f9e28d00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mlc_doxygen_bin-1.18.0-py3-none-macosx_10_9_x86_64.whl

Download URL mlc_doxygen_bin-1.18.0-py3-none-macosx_10_9_x86_64.whl
Size 8.2 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
5b467c8db53b404f4b1d18e1fcfca8d1ed578a594579deee0d0656c00f1ce7b7
BLAKE2b-256 checksum
How to use checksums
07da8456177db10941e3f189b3565d1aa03376361ca2889a88c3eaf9011b9f6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for mlc-doxygen-bin 1.18.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for mlc_doxygen_bin-1.18.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.18.0 This release

6 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page