[Bf-blender-cvs] [d245782b80a] master: Windows: Add support to compile python api docs from make file

Aaron Carlisle noreply at git.blender.org
Fri Aug 6 19:55:23 CEST 2021


Commit: d245782b80a63f9ff56ea49660cc9c287eb1bbd6
Author: Aaron Carlisle
Date:   Fri Aug 6 13:54:49 2021 -0400
Branches: master
https://developer.blender.org/rBd245782b80a63f9ff56ea49660cc9c287eb1bbd6

Windows: Add support to compile python api docs from make file

This adds support to compile the html python api docs from the command line by running `make doc_py` matching support between windows and unix.

This patch also makes it so the compiler is not needed if you set the `blender_bin` variable, this affects icon generation as well.

In the future, I want to move away from generating the build output in the build directory but that can come in a later change.

Reviewed By: LazyDodo

Differential Revision: https://developer.blender.org/D12144

===================================================================

A	build_files/windows/doc_py.cmd
A	build_files/windows/find_sphinx.cmd
M	build_files/windows/parse_arguments.cmd
M	build_files/windows/reset_variables.cmd
M	build_files/windows/show_help.cmd
M	make.bat

===================================================================

diff --git a/build_files/windows/doc_py.cmd b/build_files/windows/doc_py.cmd
new file mode 100644
index 00000000000..d33a0289083
--- /dev/null
+++ b/build_files/windows/doc_py.cmd
@@ -0,0 +1,34 @@
+set SOURCEDIR=%BLENDER_DIR%/doc/python_api/sphinx-in
+set BUILDDIR=%BLENDER_DIR%/doc/python_api/sphinx-out
+if "%BF_LANG%" == "" set BF_LANG=en
+set SPHINXOPTS=-j auto -D language=%BF_LANG%
+
+call "%~dp0\find_sphinx.cmd"
+
+if EXIST "%SPHINX_BIN%" (
+    goto detect_sphinx_done
+)
+
+echo unable to locate sphinx-build, run "set sphinx_BIN=full_path_to_sphinx-build.exe"
+exit /b 1
+
+:detect_sphinx_done
+
+call "%~dp0\find_blender.cmd"
+
+if EXIST "%BLENDER_BIN%" (
+    goto detect_blender_done
+)
+
+echo unable to locate blender, run "set BLENDER_BIN=full_path_to_blender.exe"
+exit /b 1
+
+:detect_blender_done
+
+%BLENDER_BIN% ^
+	--background -noaudio --factory-startup ^
+	--python %BLENDER_DIR%/doc/python_api/sphinx_doc_gen.py
+
+"%SPHINX_BIN%" -b html %SPHINXOPTS% %O% %SOURCEDIR% %BUILDDIR%
+
+:EOF
diff --git a/build_files/windows/find_sphinx.cmd b/build_files/windows/find_sphinx.cmd
new file mode 100644
index 00000000000..24238e96768
--- /dev/null
+++ b/build_files/windows/find_sphinx.cmd
@@ -0,0 +1,23 @@
+REM First see if there is an environment variable set
+if EXIST "%SPHINX_BIN%" (
+    goto detect_sphinx_done
+)
+
+REM Then see if inkscape is available in the path
+for %%X in (sphinx-build.exe) do (set SPHINX_BIN=%%~$PATH:X)
+if EXIST "%SPHINX_BIN%" (
+    goto detect_sphinx_done
+)
+
+echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+echo.installed, then set the SPHINX_BIN 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/
+
+REM If still not found clear the variable
+set SPHINX_BIN=
+
+:detect_sphinx_done
diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd
index c71093f2394..c63f062dfef 100644
--- a/build_files/windows/parse_arguments.cmd
+++ b/build_files/windows/parse_arguments.cmd
@@ -113,6 +113,9 @@ if NOT "%1" == "" (
 	) else if "%1" == "icons_geom" (
 		set ICONS_GEOM=1
 		goto EOF
+	) else if "%1" == "doc_py" (
+		set DOC_PY=1
+		goto EOF
 	) else (
 		echo Command "%1" unknown, aborting!
 		goto ERR
diff --git a/build_files/windows/reset_variables.cmd b/build_files/windows/reset_variables.cmd
index 590d4ca246a..8ba7b4d3307 100644
--- a/build_files/windows/reset_variables.cmd
+++ b/build_files/windows/reset_variables.cmd
@@ -32,4 +32,5 @@ set FORMAT=
 set TEST=
 set BUILD_WITH_SCCACHE=
 set ICONS=
-set ICONS_GEOM=
\ No newline at end of file
+set ICONS_GEOM=
+set DOC_PY=
diff --git a/build_files/windows/show_help.cmd b/build_files/windows/show_help.cmd
index ee5e9d9dbbd..d914ecab2b8 100644
--- a/build_files/windows/show_help.cmd
+++ b/build_files/windows/show_help.cmd
@@ -31,6 +31,10 @@ echo - 2019 ^(build with visual studio 2019^)
 echo - 2019pre ^(build with visual studio 2019 pre-release^)
 echo - 2019b ^(build with visual studio 2019 Build Tools^)
 
+echo.
+echo Documentation Targets ^(Not associated with building^)
+echo - doc_py ^(Generate sphinx python api docs^)
+
 echo.
 echo Experimental options
 echo - with_opengl_tests ^(enable both the render and draw opengl test suites^)
diff --git a/make.bat b/make.bat
index 75d424202ae..0fda7594e25 100644
--- a/make.bat
+++ b/make.bat
@@ -13,6 +13,14 @@ if errorlevel 1 goto EOF
 call "%BLENDER_DIR%\build_files\windows\parse_arguments.cmd" %*
 if errorlevel 1 goto EOF
 
+REM if it is one of the convenience targets and BLENDER_BIN is set
+REM skip compiler detection 
+if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
+	if EXIST "%BLENDER_BIN%" (
+		goto convenience_targets
+	)
+)
+
 call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
 if errorlevel 1 goto EOF
 
@@ -58,6 +66,8 @@ if "%BUILD_UPDATE%" == "1" (
 
 call "%BLENDER_DIR%\build_files\windows\set_build_dir.cmd"
 
+:convenience_targets
+
 if "%ICONS%" == "1" (
 	call "%BLENDER_DIR%\build_files\windows\icons.cmd"
 	goto EOF
@@ -68,6 +78,11 @@ if "%ICONS_GEOM%" == "1" (
 	goto EOF
 )
 
+if "%DOC_PY%" == "1" (
+	call "%BLENDER_DIR%\build_files\windows\doc_py.cmd"
+	goto EOF
+)
+
 echo Building blender with VS%BUILD_VS_YEAR% for %BUILD_ARCH% in %BUILD_DIR%
 
 call "%BLENDER_DIR%\build_files\windows\check_libraries.cmd"



More information about the Bf-blender-cvs mailing list