65 lines
1.7 KiB
Batchfile
65 lines
1.7 KiB
Batchfile
@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
|