| 85 | |
| 86 | |
| 87 | def install_doxygen_windows() -> Path: |
| 88 | print("Installing Doxygen...") |
| 89 | doxygen_url = ( |
| 90 | f"https://www.doxygen.nl/files/doxygen-{DOXYGEN_VERSION}.windows.x64.bin.zip" |
| 91 | ) |
| 92 | zip_path = DOCS_TOOL_PATH / f"doxygen-{DOXYGEN_VERSION}.zip" |
| 93 | extract_dir = DOCS_TOOL_PATH / f"doxygen-{DOXYGEN_VERSION}" |
| 94 | |
| 95 | # Create tool path if it doesn't exist |
| 96 | DOCS_TOOL_PATH.mkdir(exist_ok=True, parents=True) |
| 97 | |
| 98 | download(doxygen_url, zip_path) |
| 99 | shutil.unpack_archive(str(zip_path), extract_dir) |
| 100 | bin_path = next(extract_dir.glob("**/doxygen.exe"), None) |
| 101 | if not bin_path: |
| 102 | raise FileNotFoundError("Doxygen executable not found after extraction.") |
| 103 | print(f"Doxygen installed at: {bin_path}") |
| 104 | return bin_path |
| 105 | |
| 106 | |
| 107 | def install_doxygen_unix() -> Path: |