From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

This is needed when developing the theme with Alex, we exchange things in https://svn.blender.org/svnroot/blend-doc/ and when ok he pushes in https://svn.blender.org/svnroot/bf-blender/trunk/blender/

sphinx-build.sh

#! /bin/sh
#
# This script assumes that you have a directories setup as below.
#
# $ROOT/
#   blender/    <-- blender source code
#       doc/
#           python_api/
#               sphinx-build    <-- ./ (run this script from here)
#   blender-doc/        <-- development files for sphinx
#   cmake
#       bin/
#           blender     <-- blender exe built with cmake
#   scons/
#       bin/
#           blender     <-- blender exe built with scons
#   doc/
#       python_api/     <-- this script builds the doc here
 
#`basename $0`
#`dirname $0`
 
SCRIPTDIR=`dirname $(readlink -f $0)`
ROOT=`readlink -f $SCRIPTDIR/../../../`
APIDOC="$ROOT/doc/python_api"
BLENDDOC="$ROOT/blend-doc/trunk/python/doc"
BLENDERBIN="$ROOT/cmake/bin/blender"
 
echo
echo "Setting up..."
echo
 
echo "mkdir -p $APIDOC"
mkdir -p $APIDOC
 
if [ ! $1 ]; then
    SPHINXIN="sphinx-in"
    SPHINXINTMP="sphinx-in-tmp"
    SPHINXOUT="sphinx-out"
else
    SPHINXIN="devel-sphinx-in"
    SPHINXINTMP="devel-sphinx-in-tmp"
    SPHINXOUT="devel-sphinx-out"
    if [ ! -d $BLENDDOC ]; then
        echo "mkdir -p $BLENDDOC"
        mkdir -p $BLENDDOC
        echo "svn co https://svn.blender.org/svnroot/blend-doc/trunk/python/doc/ $BLENDDOC"
        svn co https://svn.blender.org/svnroot/blend-doc/trunk/python/doc/ $BLENDDOC
    fi
fi
 
echo
echo "Generating rst files with sphinx_doc_gen.py..."
echo
 
if [ -d $APIDOC/$SPHINXINTMP ]; then
    echo "cp -rf $APIDOC/$SPHINXINTMP sphinx-in-tmp"
    cp -rf $APIDOC/$SPHINXINTMP sphinx-in-tmp
fi
 
$BLENDERBIN -b -P $SCRIPTDIR/sphinx_doc_gen.py
 
 
echo "rm -rf $APIDOC/$SPHINXIN"
rm -rf $APIDOC/$SPHINXIN
echo "mv $SCRIPTDIR/sphinx-in $APIDOC/$SPHINXIN"
mv $SCRIPTDIR/sphinx-in $APIDOC/$SPHINXIN
 
echo "rm -rf $APIDOC/$SPHINXINTMP"
rm -rf $APIDOC/$SPHINXINTMP
echo "mv $SCRIPTDIR/sphinx-in-tmp $APIDOC/$SPHINXINTMP"
mv $SCRIPTDIR/sphinx-in-tmp $APIDOC/$SPHINXINTMP
 
echo
echo "...done generating rst files in $APIDOC"
echo
 
if [ ! $1 ]; then
    BLENDERORG=$SCRIPTDIR/blender-org
else
    BLENDERORG=$BLENDDOC/blender-org
fi
 
echo
echo "Updating svn in $BLENDERORG..."
echo
svn up $BLENDERORG
svn log $BLENDERORG --limit 4
 
pushd $APIDOC
    echo
    echo "Symlinking blender-org -> $BLENDERORG"
    echo
    ln -snf $BLENDERORG blender-org
    ln -snf $SCRIPTDIR/examples examples
    echo
    echo "Building html with Sphinx..."
    echo
    sphinx-build $SPHINXIN $SPHINXOUT
popd
 
echo
echo "Done building html sphinx doc in:"
echo "$APIDOC/$SPHINXOUT"
echo
echo "Open link: file://$APIDOC/$SPHINXOUT/contents.html"
echo