| OLD | NEW |
| 1 # Copyright 2009, Google Inc. | 1 # Copyright 2009, Google Inc. |
| 2 # All rights reserved. | 2 # All rights reserved. |
| 3 # | 3 # |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 | 29 |
| 30 | 30 |
| 31 import glob | |
| 32 import os.path | 31 import os.path |
| 33 import subprocess | 32 import subprocess |
| 34 Import('env') | 33 Import('env') |
| 35 env.SConscript('$SCONSTRUCT_DIR/plugin/idl_list.scons') | 34 env.SConscript('$SCONSTRUCT_DIR/plugin/idl_list.scons') |
| 36 env.SConscript('$SCONSTRUCT_DIR/samples/o3djs/js_list.scons') | 35 env.SConscript('$SCONSTRUCT_DIR/samples/o3djs/js_list.scons') |
| 37 Import('O3D_IDL_SOURCES') | 36 Import('O3D_IDL_SOURCES') |
| 38 Import('O3D_JS_SOURCES') | 37 Import('O3D_JS_SOURCES') |
| 39 | 38 |
| 40 env.Replace( | 39 env.Replace( |
| 41 EZT_FORMATTER = 'documentation/ezt_formatter.py', | |
| 42 CLASS_TREE_GEN = 'documentation/classtree.py', | |
| 43 JSDOC_DIR = '$SCONSTRUCT_DIR/documentation', | 40 JSDOC_DIR = '$SCONSTRUCT_DIR/documentation', |
| 44 JSDOC_EZT_TEMPLATE_DIR = '$JSDOC_DIR/jsdoc-toolkit-templates/', | 41 JSDOC_EZT_TEMPLATE_DIR = '$JSDOC_DIR/jsdoc-toolkit-templates/', |
| 45 JSDOC_JAR = '$JSDOCTOOLKIT_DIR/jsrun.jar', | |
| 46 PYTHONPATH = ['$NIXYSA_DIR', | 42 PYTHONPATH = ['$NIXYSA_DIR', |
| 47 '$GFLAGS_DIR/python', | 43 '$GFLAGS_DIR/python', |
| 48 '$PLY_DIR'] | 44 '$PLY_DIR'] |
| 49 ) | 45 ) |
| 50 | 46 |
| 51 # Build documentation | 47 # Build documentation |
| 52 IDL_DIR = "$SCONSTRUCT_DIR/plugin/" | 48 IDL_DIR = "$SCONSTRUCT_DIR/plugin/" |
| 53 LOCAL_IDL_SOURCES = [IDL_DIR + i for i in O3D_IDL_SOURCES] | 49 LOCAL_IDL_SOURCES = [IDL_DIR + i for i in O3D_IDL_SOURCES] |
| 54 JS_DIR = '$SCONSTRUCT_DIR/samples/o3djs/' | 50 JS_DIR = '$SCONSTRUCT_DIR/samples/o3djs/' |
| 55 LOCAL_JS_SOURCES = [JS_DIR + i for i in O3D_JS_SOURCES] | 51 LOCAL_JS_SOURCES = [JS_DIR + i for i in O3D_JS_SOURCES] |
| 56 | 52 |
| 57 def IdlDocsEmitter(target, source, env): | 53 DOCSGEN_ARGS = ['$JSDOC_DIR/build_docs.py $JAVA_EXE'] |
| 58 bases = [os.path.splitext(s.name)[0] for s in source] | |
| 59 targets = [target[0].dir.abspath + "/%s.$IDL_GENERATE_EXT" % b for b in bases] | |
| 60 return targets, source | |
| 61 | 54 |
| 62 AUTOGEN_ARGS = ['$NIXYSA_DIR/codegen.py', | 55 env["BUILDERS"]["JSDocs"] = Builder(action=env.Python(DOCSGEN_ARGS)) |
| 63 '--binding-module=o3d:plugin/o3d_binding.py', | |
| 64 '--generate=$IDL_GENERATE', | |
| 65 '--output-dir=${TARGET.dir}'] | |
| 66 if ARGUMENTS.get('force-docs', False): | |
| 67 AUTOGEN_ARGS += ['--force-docs'] | |
| 68 AUTOGEN_ARGS += ['$SOURCES'] | |
| 69 | |
| 70 JSDOCS_CMD = ' '.join([ | |
| 71 '$JAVA_EXE', | |
| 72 '-Djsdoc.dir=$JSDOCTOOLKIT_DIR', | |
| 73 '-jar $JSDOC_JAR', | |
| 74 '$JSDOCTOOLKIT_DIR/app/run.js', | |
| 75 '-v', | |
| 76 '-t=$JSDOC_EZT_TEMPLATE_DIR/', | |
| 77 '-d=${TARGET.dir}', | |
| 78 ' '.join(LOCAL_JS_SOURCES)]) | |
| 79 | |
| 80 def TouchAll(target=None, source=None, env=None): | |
| 81 for i in target: | |
| 82 if not os.path.exists(i.path): | |
| 83 open(i.path, 'wb').close() | |
| 84 | |
| 85 env["BUILDERS"]["IdlDocs"] = Builder(action=[env.Python(AUTOGEN_ARGS), | |
| 86 Action(TouchAll)], | |
| 87 emitter=IdlDocsEmitter) | |
| 88 | |
| 89 doxy_inputs = [] | |
| 90 doxy_inputs += env.IdlDocs( | |
| 91 'dummy', LOCAL_IDL_SOURCES, | |
| 92 IDL_GENERATE='cppheader', | |
| 93 IDL_GENERATE_EXT='h') | |
| 94 | |
| 95 def EZTStep(target=None, source=None, env=None): | |
| 96 dir = env.Dir('$OBJ_ROOT/documentation/html') | |
| 97 html_files = glob.glob(dir.path + os.sep + '*.html') | |
| 98 for file in html_files: | |
| 99 ret = env.Execute(env.Python(['$EZT_FORMATTER', file])) | |
| 100 if ret > 0: | |
| 101 return ret | |
| 102 return 0 | |
| 103 | |
| 104 def ClassTreeStep(target=None, source=None, env=None): | |
| 105 dir = env.Dir('$OBJ_ROOT/documentation/html') | |
| 106 return env.Execute(env.Python(['$CLASS_TREE_GEN', dir.path])) | |
| 107 | |
| 108 env.Command( | |
| 109 'html/doxygen.png', doxy_inputs, | |
| 110 ['$DOXYGEN documentation/Doxyfile', | |
| 111 Action(EZTStep), | |
| 112 Action(ClassTreeStep), | |
| 113 Touch('$TARGET')], | |
| 114 ) | |
| 115 | |
| 116 env["BUILDERS"]["JSDocs"] = Builder(action=JSDOCS_CMD) | |
| 117 | 56 |
| 118 # index.ezt is a file that the jsdoctoolkit happens to build. | 57 # index.ezt is a file that the jsdoctoolkit happens to build. |
| 119 # Putting it in jsdocs means that will be our target dir for the rest | 58 # Putting it in jsdocs means that will be our target dir for the rest |
| 120 # of the files. | 59 # of the files. |
| 121 env.JSDocs('html/jsdocs/classtree.html', LOCAL_JS_SOURCES + | 60 env.JSDocs('base.js', LOCAL_JS_SOURCES + LOCAL_IDL_SOURCES + |
| 122 ['$JSDOC_EZT_TEMPLATE_DIR/annotated.tmpl', | 61 ['$JSDOC_EZT_TEMPLATE_DIR/annotated.tmpl', |
| 123 '$JSDOC_EZT_TEMPLATE_DIR/class.tmpl', | 62 '$JSDOC_EZT_TEMPLATE_DIR/class.tmpl', |
| 124 '$JSDOC_EZT_TEMPLATE_DIR/classtree.tmpl', | 63 '$JSDOC_EZT_TEMPLATE_DIR/classtree.tmpl', |
| 125 '$JSDOC_EZT_TEMPLATE_DIR/filelist.tmpl', | 64 '$JSDOC_EZT_TEMPLATE_DIR/filelist.tmpl', |
| 126 '$JSDOC_EZT_TEMPLATE_DIR/members.tmpl', | 65 '$JSDOC_EZT_TEMPLATE_DIR/members.tmpl', |
| 127 '$JSDOC_EZT_TEMPLATE_DIR/namespaces.tmpl', | 66 '$JSDOC_EZT_TEMPLATE_DIR/namespaces.tmpl', |
| 128 '$JSDOC_EZT_TEMPLATE_DIR/publish.js', | 67 '$JSDOC_EZT_TEMPLATE_DIR/publish.js', |
| 129 '$JSDOC_EZT_TEMPLATE_DIR/static/header.html', | 68 '$JSDOC_EZT_TEMPLATE_DIR/static/header.html', |
| 130 '$JSDOC_EZT_TEMPLATE_DIR/static/footer.html']) | 69 '$JSDOC_EZT_TEMPLATE_DIR/static/footer.html']) |
| OLD | NEW |