# ##### BEGIN GPL LICENSE BLOCK ##### # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # ##### END GPL LICENSE BLOCK ##### # SCRIPT_HELP_MSG = """ API dump in RST files --------------------- Run this script from Blender's root path once you have compiled Blender blender --background --factory-startup -noaudio --python doc/python_api/sphinx_doc_gen.py This will generate python files in doc/python_api/sphinx-in/ providing ./blender is or links to the blender executable To choose sphinx-in directory: blender --background --factory-startup --python doc/python_api/sphinx_doc_gen.py -- --output ../python_api For quick builds: blender --background --factory-startup --python doc/python_api/sphinx_doc_gen.py -- --partial bmesh.* Sphinx: HTML generation ----------------------- After you have built doc/python_api/sphinx-in (see above), generate html docs by running: cd doc/python_api sphinx-build sphinx-in sphinx-out Sphinx: PDF generation ---------------------- After you have built doc/python_api/sphinx-in (see above), generate the pdf doc by running: sphinx-build -b latex doc/python_api/sphinx-in doc/python_api/sphinx-out cd doc/python_api/sphinx-out make """ try: import bpy # Blender module except ImportError: print("\nERROR: this script must run from inside Blender") print(SCRIPT_HELP_MSG) import sys sys.exit() import rna_info # Blender module def rna_info_BuildRNAInfo_cache(): if rna_info_BuildRNAInfo_cache.ret is None: rna_info_BuildRNAInfo_cache.ret = rna_info.BuildRNAInfo() return rna_info_BuildRNAInfo_cache.ret rna_info_BuildRNAInfo_cache.ret = None # --- end rna_info cache # import rpdb2; rpdb2.start_embedded_debugger('test') import os import sys import inspect import shutil import logging from textwrap import indent from platform import platform PLATFORM = platform().split('-')[0].lower() # 'linux', 'darwin', 'windows' SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) # For now, ignore add-ons and internal subclasses of 'bpy.types.PropertyGroup'. # # Besides disabling this line, the main change will be to add a # 'toctree' to 'write_rst_contents' which contains the generated rst files. # This 'toctree' can be generated automatically. # # See: D6261 for reference. USE_ONLY_BUILTIN_RNA_TYPES = True def handle_args(): ''' Parse the args passed to Blender after "--", ignored by Blender ''' import argparse # When --help is given, print the usage text parser = argparse.ArgumentParser( formatter_class=argparse.RawTextHelpFormatter, usage=SCRIPT_HELP_MSG ) # optional arguments parser.add_argument("-p", "--partial", dest="partial", type=str, default="", help="Use a wildcard to only build specific module(s)\n" "Example: --partial bmesh*\n", required=False) parser.add_argument("-f", "--fullrebuild", dest="full_rebuild", default=False, action='store_true', help="Rewrite all rst files in sphinx-in/ " "(default=False)", required=False) parser.add_argument("-b", "--bpy", dest="bpy", default=False, action='store_true', help="Write the rst file of the bpy module " "(default=False)", required=False) parser.add_argument("-o", "--output", dest="output_dir", type=str, default=SCRIPT_DIR, help="Path of the API docs (default=