commit:     a4acd154d75e1e0f16f641bf3d882039d5370914
Author:     Sebastian Parborg <darkdefende <AT> gmail <DOT> com>
AuthorDate: Fri Dec  3 14:05:35 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec  3 22:40:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4acd154

media-gfx/blender: Fix building docs

Closes: https://bugs.gentoo.org/822465
Closes: https://bugs.gentoo.org/734104

Signed-off-by: Sebastian Parborg <darkdefende <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/23161
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/blender/blender-2.93.6.ebuild | 59 ++++++++++++++++-----------------
 media-gfx/blender/blender-3.0.0.ebuild  | 59 ++++++++++++++++-----------------
 media-gfx/blender/blender-9999.ebuild   | 59 ++++++++++++++++-----------------
 profiles/base/package.use.mask          |  5 ---
 4 files changed, 87 insertions(+), 95 deletions(-)

diff --git a/media-gfx/blender/blender-2.93.6.ebuild 
b/media-gfx/blender/blender-2.93.6.ebuild
index 84199a7c6e54..6d17263b5759 100644
--- a/media-gfx/blender/blender-2.93.6.ebuild
+++ b/media-gfx/blender/blender-2.93.6.ebuild
@@ -266,29 +266,6 @@ src_configure() {
        cmake_src_configure
 }
 
-src_compile() {
-       cmake_src_compile
-
-       if use doc; then
-               # Workaround for binary drivers.
-               addpredict /dev/ati
-               addpredict /dev/dri
-               addpredict /dev/nvidiactl
-
-               einfo "Generating Blender C/C++ API docs ..."
-               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
-               doxygen -u Doxyfile || die
-               doxygen || die "doxygen failed to build API docs."
-
-               cd "${CMAKE_USE_DIR}" || die
-               einfo "Generating (BPY) Blender Python API docs ..."
-               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
-
-               cd "${CMAKE_USE_DIR}"/doc/python_api || die
-               sphinx-build sphinx-in BPY_API || die "sphinx failed."
-       fi
-}
-
 src_test() {
        # A lot of tests needs to have access to the installed data files.
        # So install them into the image directory now.
@@ -316,7 +293,36 @@ src_install() {
                dobin "${BUILD_DIR}"/bin/cycles
        fi
 
+       cmake_src_install
+
+       if use man; then
+               # Slot the man page
+               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
+       fi
+
        if use doc; then
+               # Define custom blender data/script file paths. Otherwise 
Blender will not be able to find them during doc building.
+               # (Because the data is in the image directory and it will 
default to look in /usr/share)
+               export 
BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+               export 
BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+               # Workaround for binary drivers.
+               addpredict /dev/ati
+               addpredict /dev/dri
+               addpredict /dev/nvidiactl
+
+               einfo "Generating Blender C/C++ API docs ..."
+               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+               doxygen -u Doxyfile || die
+               doxygen || die "doxygen failed to build API docs."
+
+               cd "${CMAKE_USE_DIR}" || die
+               einfo "Generating (BPY) Blender Python API docs ..."
+               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+               cd "${CMAKE_USE_DIR}"/doc/python_api || die
+               sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
                docinto "html/API/python"
                dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
 
@@ -324,13 +330,6 @@ src_install() {
                dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
        fi
 
-       cmake_src_install
-
-       if use man; then
-               # Slot the man page
-               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
-       fi
-
        # Fix doc installdir
        docinto html
        dodoc "${CMAKE_USE_DIR}"/release/text/readme.html

diff --git a/media-gfx/blender/blender-3.0.0.ebuild 
b/media-gfx/blender/blender-3.0.0.ebuild
index ea92df5eb024..48b72fc65808 100644
--- a/media-gfx/blender/blender-3.0.0.ebuild
+++ b/media-gfx/blender/blender-3.0.0.ebuild
@@ -268,29 +268,6 @@ src_configure() {
        cmake_src_configure
 }
 
-src_compile() {
-       cmake_src_compile
-
-       if use doc; then
-               # Workaround for binary drivers.
-               addpredict /dev/ati
-               addpredict /dev/dri
-               addpredict /dev/nvidiactl
-
-               einfo "Generating Blender C/C++ API docs ..."
-               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
-               doxygen -u Doxyfile || die
-               doxygen || die "doxygen failed to build API docs."
-
-               cd "${CMAKE_USE_DIR}" || die
-               einfo "Generating (BPY) Blender Python API docs ..."
-               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
-
-               cd "${CMAKE_USE_DIR}"/doc/python_api || die
-               sphinx-build sphinx-in BPY_API || die "sphinx failed."
-       fi
-}
-
 src_test() {
        # A lot of tests needs to have access to the installed data files.
        # So install them into the image directory now.
@@ -323,7 +300,36 @@ src_install() {
                dobin "${BUILD_DIR}"/bin/cycles
        fi
 
+       cmake_src_install
+
+       if use man; then
+               # Slot the man page
+               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
+       fi
+
        if use doc; then
+               # Define custom blender data/script file paths. Otherwise 
Blender will not be able to find them during doc building.
+               # (Because the data is in the image directory and it will 
default to look in /usr/share)
+               export 
BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+               export 
BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+               # Workaround for binary drivers.
+               addpredict /dev/ati
+               addpredict /dev/dri
+               addpredict /dev/nvidiactl
+
+               einfo "Generating Blender C/C++ API docs ..."
+               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+               doxygen -u Doxyfile || die
+               doxygen || die "doxygen failed to build API docs."
+
+               cd "${CMAKE_USE_DIR}" || die
+               einfo "Generating (BPY) Blender Python API docs ..."
+               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+               cd "${CMAKE_USE_DIR}"/doc/python_api || die
+               sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
                docinto "html/API/python"
                dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
 
@@ -331,13 +337,6 @@ src_install() {
                dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
        fi
 
-       cmake_src_install
-
-       if use man; then
-               # Slot the man page
-               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
-       fi
-
        # Fix doc installdir
        docinto html
        dodoc "${CMAKE_USE_DIR}"/release/text/readme.html

diff --git a/media-gfx/blender/blender-9999.ebuild 
b/media-gfx/blender/blender-9999.ebuild
index ea92df5eb024..48b72fc65808 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -268,29 +268,6 @@ src_configure() {
        cmake_src_configure
 }
 
-src_compile() {
-       cmake_src_compile
-
-       if use doc; then
-               # Workaround for binary drivers.
-               addpredict /dev/ati
-               addpredict /dev/dri
-               addpredict /dev/nvidiactl
-
-               einfo "Generating Blender C/C++ API docs ..."
-               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
-               doxygen -u Doxyfile || die
-               doxygen || die "doxygen failed to build API docs."
-
-               cd "${CMAKE_USE_DIR}" || die
-               einfo "Generating (BPY) Blender Python API docs ..."
-               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
-
-               cd "${CMAKE_USE_DIR}"/doc/python_api || die
-               sphinx-build sphinx-in BPY_API || die "sphinx failed."
-       fi
-}
-
 src_test() {
        # A lot of tests needs to have access to the installed data files.
        # So install them into the image directory now.
@@ -323,7 +300,36 @@ src_install() {
                dobin "${BUILD_DIR}"/bin/cycles
        fi
 
+       cmake_src_install
+
+       if use man; then
+               # Slot the man page
+               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
+       fi
+
        if use doc; then
+               # Define custom blender data/script file paths. Otherwise 
Blender will not be able to find them during doc building.
+               # (Because the data is in the image directory and it will 
default to look in /usr/share)
+               export 
BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+               export 
BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+               # Workaround for binary drivers.
+               addpredict /dev/ati
+               addpredict /dev/dri
+               addpredict /dev/nvidiactl
+
+               einfo "Generating Blender C/C++ API docs ..."
+               cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+               doxygen -u Doxyfile || die
+               doxygen || die "doxygen failed to build API docs."
+
+               cd "${CMAKE_USE_DIR}" || die
+               einfo "Generating (BPY) Blender Python API docs ..."
+               "${BUILD_DIR}"/bin/blender --background --python 
doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+               cd "${CMAKE_USE_DIR}"/doc/python_api || die
+               sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
                docinto "html/API/python"
                dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
 
@@ -331,13 +337,6 @@ src_install() {
                dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
        fi
 
-       cmake_src_install
-
-       if use man; then
-               # Slot the man page
-               mv "${ED}/usr/share/man/man1/blender.1" 
"${ED}/usr/share/man/man1/blender-${BV}.1" || die
-       fi
-
        # Fix doc installdir
        docinto html
        dodoc "${CMAKE_USE_DIR}"/release/text/readme.html

diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 2d812fb127c9..b026e63bec52 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -200,11 +200,6 @@ x11-libs/colord-gtk doc
 <sys-devel/clang-14 llvm_targets_CSKY llvm_targets_M68k
 <sys-devel/llvm-14 llvm_targets_CSKY llvm_targets_M68k
 
-# Joonas Niilola <[email protected]> (2020-12-03)
-# Doc building seem to be very random without any predictability,
-# bug #734104
-media-gfx/blender doc
-
 # Marek Szuba <[email protected]> (2020-11-30)
 # Vendored therecipe/qt violates network sandbox + uses external binary
 # Qt libraries; see https://github.com/ProtonMail/proton-bridge/issues/16

Reply via email to