diff --git a/documentation/make.bat b/documentation/make.bat new file mode 100644 index 000000000..21f97a1c8 --- /dev/null +++ b/documentation/make.bat @@ -0,0 +1,243 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=build +set SRCDIR=source +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% %SRCDIR% +set I18NSPHINXOPTS=%SPHINXOPTS% %SRCDIR% +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\libuv.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\libuv.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +:end \ No newline at end of file diff --git a/examples/doxygen/make.bat b/examples/doxygen/make.bat new file mode 100644 index 000000000..120e9b22d --- /dev/null +++ b/examples/doxygen/make.bat @@ -0,0 +1,111 @@ +@ECHO OFF + +set DOXYGEN=doxygen +for /f "delims=" %%i in ('where doxygen') do set DOXYGEN=%%i + +set PERL=perl +for /f "delims=" %%i in ('where perl') do set PERL=%%i + +set HAVE_DOT=dot +for /f "delims=" %%i in ('where dot') do set HAVE_DOT=%%i + +@REM echo DOXYGEN : %DOXYGEN% +@REM echo PERL : %PERL% +@REM echo HAVE_DOT : %HAVE_DOT% + +if "%1" == "" ( + call :all + goto end +) + +if "%1" == "all" ( + call :all + goto end +) + +if "%1" == "clean" ( + call :clean + goto end +) + +goto end + +:all + call :doxygen class.cfg + call :doxygen concept.cfg + call :doxygen define.cfg + call :doxygen enum.cfg + call :doxygen file.cfg + call :doxygen func.cfg + call :doxygen page.cfg + call :doxygen relates.cfg + call :doxygen author.cfg + call :doxygen par.cfg + call :doxygen parblock.cfg + call :doxygen overload.cfg + call :doxygen example.cfg + call :doxygen include.cfg + call :doxygen qtstyle.cfg + call :doxygen jdstyle.cfg + call :doxygen structcmd.cfg + call :doxygen autolink.cfg + call :doxygen restypedef.cfg + call :doxygen afterdoc.cfg + call :doxygen templ.cfg + call :doxygen tag.cfg + call :doxygen group.cfg + call :doxygen diagrams.cfg + call :doxygen memgrp.cfg + call :doxygen docstring.cfg + call :doxygen pyexample.cfg + call :doxygen manual.cfg + call :doxygen interface.cfg + goto end + +:clean + call :rmdir class + call :rmdir concept + call :rmdir define + call :rmdir enum + call :rmdir file + call :rmdir func + call :rmdir page + call :rmdir relates + call :rmdir author + call :rmdir par + call :rmdir parblock + call :rmdir overload + call :rmdir example + call :rmdir include + call :rmdir qtstyle + call :rmdir jdstyle + call :rmdir structcmd + call :rmdir autolink + call :rmdir restypedef + call :rmdir afterdoc + call :rmdir template + call :rmdir tag + call :rmdir group + call :rmdir diagrams + call :rmdir memgrp + call :rmdir docstring + call :rmdir pyexample + call :rmdir manual + call :rmdir interface + goto end + +:doxygen + set CFG=%~1 + echo Running doxygen: %CFG% + "%DOXYGEN%" %CFG% + goto end + +:rmdir + set DIR=%~1 + if exist "%DIR%" ( + echo Removing directory: %DIR% + rmdir /s/q "%DIR%" + ) + goto end + +:end \ No newline at end of file diff --git a/examples/specific/make.bat b/examples/specific/make.bat new file mode 100644 index 000000000..f8a574237 --- /dev/null +++ b/examples/specific/make.bat @@ -0,0 +1,183 @@ +@ECHO OFF + +set DOXYGEN=doxygen +for /f "delims=" %%i in ('where doxygen') do set DOXYGEN=%%i + +set PERL=perl +for /f "delims=" %%i in ('where perl') do set PERL=%%i + +set HAVE_DOT=dot +for /f "delims=" %%i in ('where dot') do set HAVE_DOT=%%i + +@REM echo DOXYGEN : %DOXYGEN% +@REM echo PERL : %PERL% +@REM echo HAVE_DOT : %HAVE_DOT% + +if "%1" == "" ( + call :all + goto end +) + +if "%1" == "all" ( + call :all + goto end +) + +if "%1" == "clean" ( + call :clean + goto end +) + +goto end + +:all + @REM --------------- + @REM General Pattern + @REM --------------- + call :doxygen nutshell.cfg + call :doxygen alias.cfg + call :doxygen rst.cfg + call :doxygen inline.cfg + call :doxygen namespacefile.cfg + call :doxygen array.cfg + call :doxygen inheritance.cfg + call :doxygen members.cfg + call :doxygen userdefined.cfg + call :doxygen fixedwidthfont.cfg + call :doxygen latexmath.cfg + call :doxygen functionOverload.cfg + call :doxygen image.cfg + call :doxygen name.cfg + call :doxygen union.cfg + call :doxygen group.cfg + call :doxygen struct.cfg + call :doxygen struct_function.cfg + call :doxygen qtsignalsandslots.cfg + call :doxygen lists.cfg + call :doxygen headings.cfg + call :doxygen links.cfg + call :doxygen parameters.cfg + call :doxygen template_class.cfg + call :doxygen template_class_non_type.cfg + call :doxygen template_function.cfg + call :doxygen template_type_alias.cfg + call :doxygen template_specialisation.cfg + call :doxygen enum.cfg + call :doxygen define.cfg + call :doxygen interface.cfg + call :doxygen xrefsect.cfg + call :doxygen tables.cfg + call :doxygen cpp_anon.cfg + call :doxygen cpp_concept.cfg + call :doxygen cpp_enum.cfg + call :doxygen cpp_union.cfg + call :doxygen cpp_function.cfg + call :doxygen cpp_friendclass.cfg + call :doxygen cpp_inherited_members.cfg + call :doxygen cpp_trailing_return_type.cfg + call :doxygen cpp_constexpr_hax.cfg + call :doxygen cpp_function_lookup.cfg + call :doxygen c_file.cfg + call :doxygen c_struct.cfg + call :doxygen c_enum.cfg + call :doxygen c_typedef.cfg + call :doxygen c_macro.cfg + call :doxygen c_union.cfg + call :doxygen membergroups.cfg + call :doxygen simplesect.cfg + call :doxygen code_blocks.cfg + call :doxygen dot_graphs.cfg + @REM ------------- + @REM Special Cases + @REM ------------- + call :doxygen programlisting.cfg + call :doxygen decl_impl.cfg + call :doxygen multifile.cfg + call :doxygen auto.cfg + call :doxygen class.cfg + call :doxygen typedef.cfg + goto end + +:clean + @REM --------------- + @REM General Pattern + @REM --------------- + call :rmdir nutshell + call :rmdir alias + call :rmdir rst + call :rmdir inline + call :rmdir namespacefile + call :rmdir array + call :rmdir inheritance + call :rmdir members + call :rmdir userdefined + call :rmdir fixedwidthfont + call :rmdir latexmath + call :rmdir functionOverload + call :rmdir image + call :rmdir name + call :rmdir union + call :rmdir group + call :rmdir struct + call :rmdir struct_function + call :rmdir qtsignalsandslots + call :rmdir lists + call :rmdir headings + call :rmdir links + call :rmdir parameters + call :rmdir template_class + call :rmdir template_class_non_type + call :rmdir template_function + call :rmdir template_type_alias + call :rmdir template_specialisation + call :rmdir enum + call :rmdir define + call :rmdir interface + call :rmdir xrefsect + call :rmdir tables + call :rmdir cpp_anon + call :rmdir cpp_concept + call :rmdir cpp_enum + call :rmdir cpp_union + call :rmdir cpp_function + call :rmdir cpp_friendclass + call :rmdir cpp_inherited_members + call :rmdir cpp_trailing_return_type + call :rmdir cpp_constexpr_hax + call :rmdir cpp_function_lookup + call :rmdir c_file + call :rmdir c_struct + call :rmdir c_enum + call :rmdir c_typedef + call :rmdir c_macro + call :rmdir c_union + call :rmdir membergroups + call :rmdir simplesect + call :rmdir code_blocks + call :rmdir dot_graphs + @REM ------------- + @REM Special Cases + @REM ------------- + call :rmdir programlisting + call :rmdir decl_impl + call :rmdir multifilexml + call :rmdir auto + call :rmdir class + call :rmdir typedef + goto end + +:doxygen + set CFG=%~1 + echo Running doxygen: %CFG% + "%DOXYGEN%" %CFG% + goto end + +:rmdir + set DIR=%~1 + if exist "%DIR%" ( + echo Removing directory: %DIR% + rmdir /s/q "%DIR%" + ) + goto end + +:end \ No newline at end of file diff --git a/examples/tinyxml/make.bat b/examples/tinyxml/make.bat new file mode 100644 index 000000000..66f01a8cb --- /dev/null +++ b/examples/tinyxml/make.bat @@ -0,0 +1,55 @@ +@ECHO OFF + +set DOXYGEN=doxygen +for /f "delims=" %%i in ('where doxygen') do set DOXYGEN=%%i + +set PERL=perl +for /f "delims=" %%i in ('where perl') do set PERL=%%i + +set HAVE_DOT=dot +for /f "delims=" %%i in ('where dot') do set HAVE_DOT=%%i + +@REM echo DOXYGEN : %DOXYGEN% +@REM echo PERL : %PERL% +@REM echo HAVE_DOT : %HAVE_DOT% + +if "%1" == "" ( + call :all + goto end +) + +if "%1" == "all" ( + call :all + goto end +) + +if "%1" == "clean" ( + call :clean + goto end +) + +goto end + +:all + call :doxygen tinyxml.cfg + goto end + +:clean + call :rmdir tinyxml + goto end + +:doxygen + set CFG=%~1 + echo Running doxygen: %CFG% + "%DOXYGEN%" %CFG% + goto end + +:rmdir + set DIR=%~1 + if exist "%DIR%" ( + echo Removing directory: %DIR% + rmdir /s/q "%DIR%" + ) + goto end + +:end \ No newline at end of file diff --git a/make.bat b/make.bat new file mode 100644 index 000000000..b68c75be0 --- /dev/null +++ b/make.bat @@ -0,0 +1,97 @@ +@ECHO OFF + +if "%1" == "html" goto html +if "%1" == "pdf" goto pdf +if "%1" == "data" goto data +if "%1" == "clean" goto clean +if "%1" == "distclean" goto distclean +if "%1" == "test" goto test +if "%1" == "dev-test" goto dev-test +if "%1" == "flake8" goto flake8 +if "%1" == "black" goto black +if "%1" == "type-check" goto type-check +if "%1" == "version-check" goto version-check +if "%1" == "all" goto all +goto end + +:html + call :data + cd documentation + call make.bat html + cd .. + goto end + +:pdf + call :data + cd documentation + call make.bat latexpdf + cd .. + goto end + +:data + cd examples\doxygen + call make.bat all + cd ..\.. + cd examples\tinyxml + call make.bat all + cd ..\.. + cd examples\specific + call make.bat all + cd ..\.. + goto end + +:clean + cd examples\doxygen + call make.bat clean + cd ..\.. + cd examples\tinyxml + call make.bat clean + cd ..\.. + cd examples\specific + call make.bat clean + cd ..\.. + goto end + +:distclean + call :clean + cd documentation + call make.bat clean + cd .. + goto end + +:test + cd tests + python -m pytest -v + cd .. + goto end + +:dev-test + cd tests + set PYTHONPATH=..\;%PYTHONPATH% + python -m pytest -v + cd .. + goto end + +:flake8 + flake8 breathe + goto end + +:black + black --check . + goto end + +:type-check + mypy --warn-redundant-casts --warn-unused-ignores breathe tests + goto end + +:version-check + set PYTHONPATH=..\;%PYTHONPATH% + python scripts\version-check.py + goto end + +:all + call :html + call :pdf + goto end + +:end \ No newline at end of file