17db96d56Sopenharmony_ci@echo off 27db96d56Sopenharmony_cisetlocal 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_cipushd %~dp0 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ciset this=%~n0 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_cicall ..\PCbuild\find_python.bat %PYTHON% 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ciif not defined PYTHON set PYTHON=py 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ciif not defined SPHINXBUILD ( 137db96d56Sopenharmony_ci %PYTHON% -c "import sphinx" > nul 2> nul 147db96d56Sopenharmony_ci if errorlevel 1 ( 157db96d56Sopenharmony_ci echo Installing sphinx with %PYTHON% 167db96d56Sopenharmony_ci %PYTHON% -m pip install -r requirements.txt 177db96d56Sopenharmony_ci if errorlevel 1 exit /B 187db96d56Sopenharmony_ci ) 197db96d56Sopenharmony_ci set SPHINXBUILD=%PYTHON% -c "import sphinx.cmd.build, sys; sys.exit(sphinx.cmd.build.main())" 207db96d56Sopenharmony_ci) 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci%PYTHON% -c "import python_docs_theme" > nul 2> nul 237db96d56Sopenharmony_ciif errorlevel 1 ( 247db96d56Sopenharmony_ci echo Installing python-docs-theme with %PYTHON% 257db96d56Sopenharmony_ci %PYTHON% -m pip install python-docs-theme 267db96d56Sopenharmony_ci if errorlevel 1 exit /B 277db96d56Sopenharmony_ci) 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ciif not defined BLURB ( 307db96d56Sopenharmony_ci %PYTHON% -c "import blurb" > nul 2> nul 317db96d56Sopenharmony_ci if errorlevel 1 ( 327db96d56Sopenharmony_ci echo Installing blurb with %PYTHON% 337db96d56Sopenharmony_ci rem Should have been installed with Sphinx earlier 347db96d56Sopenharmony_ci %PYTHON% -m pip install blurb 357db96d56Sopenharmony_ci if errorlevel 1 exit /B 367db96d56Sopenharmony_ci ) 377db96d56Sopenharmony_ci set BLURB=%PYTHON% -m blurb 387db96d56Sopenharmony_ci) 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ciif not defined SPHINXLINT ( 417db96d56Sopenharmony_ci %PYTHON% -c "import sphinxlint" > nul 2> nul 427db96d56Sopenharmony_ci if errorlevel 1 ( 437db96d56Sopenharmony_ci echo Installing sphinx-lint with %PYTHON% 447db96d56Sopenharmony_ci rem Should have been installed with Sphinx earlier 457db96d56Sopenharmony_ci %PYTHON% -m pip install sphinx-lint 467db96d56Sopenharmony_ci if errorlevel 1 exit /B 477db96d56Sopenharmony_ci ) 487db96d56Sopenharmony_ci set SPHINXLINT=%PYTHON% -m sphinxlint 497db96d56Sopenharmony_ci) 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ciif "%1" NEQ "htmlhelp" goto :skiphhcsearch 527db96d56Sopenharmony_ciif exist "%HTMLHELP%" goto :skiphhcsearch 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_cirem Search for HHC in likely places 557db96d56Sopenharmony_ciset HTMLHELP= 567db96d56Sopenharmony_ciwhere hhc /q && set "HTMLHELP=hhc" && goto :skiphhcsearch 577db96d56Sopenharmony_ciwhere /R ..\externals hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc" 587db96d56Sopenharmony_ciif not exist "%HTMLHELP%" where /R "%ProgramFiles(x86)%" hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc" 597db96d56Sopenharmony_ciif not exist "%HTMLHELP%" where /R "%ProgramFiles%" hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc" 607db96d56Sopenharmony_ciif not exist "%HTMLHELP%" ( 617db96d56Sopenharmony_ci echo. 627db96d56Sopenharmony_ci echo.The HTML Help Workshop was not found. Set the HTMLHELP variable 637db96d56Sopenharmony_ci echo.to the path to hhc.exe or download and install it from 647db96d56Sopenharmony_ci echo.http://msdn.microsoft.com/en-us/library/ms669985 657db96d56Sopenharmony_ci exit /B 1 667db96d56Sopenharmony_ci) 677db96d56Sopenharmony_ci:skiphhcsearch 687db96d56Sopenharmony_ci 697db96d56Sopenharmony_ciif not defined DISTVERSION for /f "usebackq" %%v in (`%PYTHON% tools/extensions/patchlevel.py`) do set DISTVERSION=%%v 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_ciif not defined BUILDDIR set BUILDDIR=build 727db96d56Sopenharmony_ci 737db96d56Sopenharmony_cirem Targets that don't require sphinx-build 747db96d56Sopenharmony_ciif "%1" EQU "" goto help 757db96d56Sopenharmony_ciif "%1" EQU "help" goto help 767db96d56Sopenharmony_ciif "%1" EQU "check" goto check 777db96d56Sopenharmony_ciif "%1" EQU "serve" goto serve 787db96d56Sopenharmony_ciif "%1" == "clean" ( 797db96d56Sopenharmony_ci rmdir /q /s "%BUILDDIR%" 807db96d56Sopenharmony_ci goto end 817db96d56Sopenharmony_ci) 827db96d56Sopenharmony_ci 837db96d56Sopenharmony_ci%SPHINXBUILD% >nul 2> nul 847db96d56Sopenharmony_ciif errorlevel 9009 ( 857db96d56Sopenharmony_ci echo. 867db96d56Sopenharmony_ci echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 877db96d56Sopenharmony_ci echo.installed, then set the SPHINXBUILD environment variable to point 887db96d56Sopenharmony_ci echo.to the full path of the 'sphinx-build' executable. Alternatively you 897db96d56Sopenharmony_ci echo.may add the Sphinx directory to PATH. 907db96d56Sopenharmony_ci echo. 917db96d56Sopenharmony_ci echo.If you don't have Sphinx installed, grab it from 927db96d56Sopenharmony_ci echo.http://sphinx-doc.org/ 937db96d56Sopenharmony_ci popd 947db96d56Sopenharmony_ci exit /B 1 957db96d56Sopenharmony_ci) 967db96d56Sopenharmony_ci 977db96d56Sopenharmony_cirem Targets that do require sphinx-build and have their own label 987db96d56Sopenharmony_ciif "%1" EQU "htmlview" goto htmlview 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_cirem Everything else 1017db96d56Sopenharmony_cigoto build 1027db96d56Sopenharmony_ci 1037db96d56Sopenharmony_ci:help 1047db96d56Sopenharmony_ciecho.usage: %this% BUILDER [filename ...] 1057db96d56Sopenharmony_ciecho. 1067db96d56Sopenharmony_ciecho.Call %this% with the desired Sphinx builder as the first argument, e.g. 1077db96d56Sopenharmony_ciecho.``%this% html`` or ``%this% doctest``. Interesting targets that are 1087db96d56Sopenharmony_ciecho.always available include: 1097db96d56Sopenharmony_ciecho. 1107db96d56Sopenharmony_ciecho. Provided by Sphinx: 1117db96d56Sopenharmony_ciecho. html, htmlhelp, latex, text 1127db96d56Sopenharmony_ciecho. suspicious, linkcheck, changes, doctest 1137db96d56Sopenharmony_ciecho. Provided by this script: 1147db96d56Sopenharmony_ciecho. clean, check, htmlview 1157db96d56Sopenharmony_ciecho. 1167db96d56Sopenharmony_ciecho.All arguments past the first one are passed through to sphinx-build as 1177db96d56Sopenharmony_ciecho.filenames to build or are ignored. See README.rst in this directory or 1187db96d56Sopenharmony_ciecho.the documentation for your version of Sphinx for more exhaustive lists 1197db96d56Sopenharmony_ciecho.of available targets and descriptions of each. 1207db96d56Sopenharmony_ciecho. 1217db96d56Sopenharmony_ciecho.This script assumes that the SPHINXBUILD environment variable contains 1227db96d56Sopenharmony_ciecho.a legitimate command for calling sphinx-build, or that sphinx-build is 1237db96d56Sopenharmony_ciecho.on your PATH if SPHINXBUILD is not set. Options for sphinx-build can 1247db96d56Sopenharmony_ciecho.be passed by setting the SPHINXOPTS environment variable. 1257db96d56Sopenharmony_cigoto end 1267db96d56Sopenharmony_ci 1277db96d56Sopenharmony_ci:build 1287db96d56Sopenharmony_ciif not exist "%BUILDDIR%" mkdir "%BUILDDIR%" 1297db96d56Sopenharmony_ci 1307db96d56Sopenharmony_cirem PY_MISC_NEWS_DIR is also used by our Sphinx extension in tools/extensions/pyspecific.py 1317db96d56Sopenharmony_ciif not defined PY_MISC_NEWS_DIR set PY_MISC_NEWS_DIR=%BUILDDIR%\%1 1327db96d56Sopenharmony_ciif not exist "%PY_MISC_NEWS_DIR%" mkdir "%PY_MISC_NEWS_DIR%" 1337db96d56Sopenharmony_ciif exist ..\Misc\NEWS ( 1347db96d56Sopenharmony_ci echo.Copying Misc\NEWS to %PY_MISC_NEWS_DIR%\NEWS 1357db96d56Sopenharmony_ci copy ..\Misc\NEWS "%PY_MISC_NEWS_DIR%\NEWS" > nul 1367db96d56Sopenharmony_ci) else if exist ..\Misc\NEWS.D ( 1377db96d56Sopenharmony_ci if defined BLURB ( 1387db96d56Sopenharmony_ci echo.Merging Misc/NEWS with %BLURB% 1397db96d56Sopenharmony_ci %BLURB% merge -f "%PY_MISC_NEWS_DIR%\NEWS" 1407db96d56Sopenharmony_ci ) else ( 1417db96d56Sopenharmony_ci echo.No Misc/NEWS file and Blurb is not available. 1427db96d56Sopenharmony_ci exit /B 1 1437db96d56Sopenharmony_ci ) 1447db96d56Sopenharmony_ci) 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ciif defined PAPER ( 1477db96d56Sopenharmony_ci set SPHINXOPTS=-D latex_elements.papersize=%PAPER% %SPHINXOPTS% 1487db96d56Sopenharmony_ci) 1497db96d56Sopenharmony_ciif "%1" EQU "htmlhelp" ( 1507db96d56Sopenharmony_ci set SPHINXOPTS=-D html_theme_options.body_max_width=none %SPHINXOPTS% 1517db96d56Sopenharmony_ci) 1527db96d56Sopenharmony_cicmd /S /C "%SPHINXBUILD% %SPHINXOPTS% -b%1 -dbuild\doctrees . "%BUILDDIR%\%1" %2 %3 %4 %5 %6 %7 %8 %9" 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ciif "%1" EQU "htmlhelp" ( 1557db96d56Sopenharmony_ci "%HTMLHELP%" "%BUILDDIR%\htmlhelp\python%DISTVERSION:.=%.hhp" 1567db96d56Sopenharmony_ci rem hhc.exe seems to always exit with code 1, reset to 0 for less than 2 1577db96d56Sopenharmony_ci if not errorlevel 2 cmd /C exit /b 0 1587db96d56Sopenharmony_ci) 1597db96d56Sopenharmony_ci 1607db96d56Sopenharmony_ciecho. 1617db96d56Sopenharmony_ciif errorlevel 1 ( 1627db96d56Sopenharmony_ci echo.Build failed (exit code %ERRORLEVEL%^), check for error messages 1637db96d56Sopenharmony_ci echo.above. Any output will be found in %BUILDDIR%\%1 1647db96d56Sopenharmony_ci) else ( 1657db96d56Sopenharmony_ci echo.Build succeeded. All output should be in %BUILDDIR%\%1 1667db96d56Sopenharmony_ci) 1677db96d56Sopenharmony_cigoto end 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci:htmlview 1707db96d56Sopenharmony_ciif NOT "%2" EQU "" ( 1717db96d56Sopenharmony_ci echo.Can't specify filenames to build with htmlview target, ignoring. 1727db96d56Sopenharmony_ci) 1737db96d56Sopenharmony_cicmd /C %this% html 1747db96d56Sopenharmony_ci 1757db96d56Sopenharmony_ciif EXIST "%BUILDDIR%\html\index.html" ( 1767db96d56Sopenharmony_ci echo.Opening "%BUILDDIR%\html\index.html" in the default web browser... 1777db96d56Sopenharmony_ci start "" "%BUILDDIR%\html\index.html" 1787db96d56Sopenharmony_ci) 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_cigoto end 1817db96d56Sopenharmony_ci 1827db96d56Sopenharmony_ci:check 1837db96d56Sopenharmony_cirem Check the docs and NEWS files with sphinx-lint. 1847db96d56Sopenharmony_cirem Ignore the tools dir and check that the default role is not used. 1857db96d56Sopenharmony_cicmd /S /C "%SPHINXLINT% -i tools --enable default-role" 1867db96d56Sopenharmony_cicmd /S /C "%SPHINXLINT% --enable default-role ..\Misc\NEWS.d\next\ " 1877db96d56Sopenharmony_cigoto end 1887db96d56Sopenharmony_ci 1897db96d56Sopenharmony_ci:serve 1907db96d56Sopenharmony_ciecho.The serve target was removed, use htmlview instead (see bpo-36329) 1917db96d56Sopenharmony_cigoto end 1927db96d56Sopenharmony_ci 1937db96d56Sopenharmony_ci:end 1947db96d56Sopenharmony_cipopd 195