@echo off rem Builds the local HTML overview and Doxygen API reference in Doc\build. rem Prefers the pinned Doc\.tools Doxygen, then falls back to a system install. rem If Doxygen is unavailable, installs the explanatory API placeholder instead. setlocal EnableExtensions set "DOC_DIR=%~dp0" set "SOURCE=%DOC_DIR%index.html" set "BUILD_DIR=%DOC_DIR%build" set "OVERVIEW=%BUILD_DIR%\index.html" set "DOXYGEN_EXE=%DOC_DIR%.tools\doxygen-1.18.0\doxygen.exe" echo [BALSAM 167] Building HTML documentation... if not exist "%SOURCE%" ( echo [ERROR] Source HTML not found: echo %SOURCE% exit /b 1 ) if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%" if errorlevel 1 ( echo [ERROR] Cannot create build directory: echo %BUILD_DIR% exit /b 2 ) copy /Y "%SOURCE%" "%OVERVIEW%" >nul if errorlevel 1 ( echo [ERROR] Cannot build overview HTML. exit /b 3 ) if not exist "%DOXYGEN_EXE%" ( where doxygen >nul 2>nul if not errorlevel 1 set "DOXYGEN_EXE=doxygen" ) if not exist "%DOXYGEN_EXE%" if /I not "%DOXYGEN_EXE%"=="doxygen" ( if not exist "%BUILD_DIR%\api\html" mkdir "%BUILD_DIR%\api\html" copy /Y "%DOC_DIR%api-unavailable.html" "%BUILD_DIR%\api\html\index.html" >nul echo [WARN] Doxygen is not installed; API reference was not regenerated. echo [OK] Overview: %OVERVIEW% exit /b 0 ) pushd "%DOC_DIR%" "%DOXYGEN_EXE%" Doxyfile set "DOXYGEN_RESULT=%ERRORLEVEL%" popd if not "%DOXYGEN_RESULT%"=="0" ( echo [ERROR] Doxygen failed with code %DOXYGEN_RESULT%. exit /b %DOXYGEN_RESULT% ) if not exist "%BUILD_DIR%\api\html\index.html" ( echo [ERROR] Doxygen did not create the expected API index. exit /b 4 ) echo [OK] Overview: %OVERVIEW% echo [OK] API: %BUILD_DIR%\api\html\index.html exit /b 0