aboutsummaryrefslogtreecommitdiff
path: root/lib/jsoncpp/scons-tools/doxygen.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/jsoncpp/scons-tools/doxygen.py')
-rw-r--r--lib/jsoncpp/scons-tools/doxygen.py116
1 files changed, 0 insertions, 116 deletions
diff --git a/lib/jsoncpp/scons-tools/doxygen.py b/lib/jsoncpp/scons-tools/doxygen.py
deleted file mode 100644
index 5ace420a4c..0000000000
--- a/lib/jsoncpp/scons-tools/doxygen.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# Big issue:
-# emitter depends on doxyfile which is generated from doxyfile.in.
-# build fails after cleaning and relaunching the build.
-
-# Todo:
-# Add helper function to environment like for glob
-# Easier passage of header/footer
-# Automatic deduction of index.html path based on custom parameters passed to doxyfile
-
-import os
-import os.path
-from fnmatch import fnmatch
-import SCons
-
-def Doxyfile_emitter(target, source, env):
- """
- Modify the target and source lists to use the defaults if nothing
- else has been specified.
-
- Dependencies on external HTML documentation references are also
- appended to the source list.
- """
- doxyfile_template = env.File(env['DOXYFILE_FILE'])
- source.insert(0, doxyfile_template)
-
- return target, source
-
-def Doxyfile_Builder(target, source, env):
- """Input:
- DOXYFILE_FILE
- Path of the template file for the output doxyfile
-
- DOXYFILE_DICT
- A dictionnary of parameter to append to the generated doxyfile
- """
- subdir = os.path.split(source[0].abspath)[0]
- doc_top_dir = os.path.split(target[0].abspath)[0]
- doxyfile_path = source[0].abspath
- doxy_file = file( target[0].abspath, 'wt' )
- try:
- # First, output the template file
- try:
- f = file(doxyfile_path, 'rt')
- doxy_file.write( f.read() )
- f.close()
- doxy_file.write( '\n' )
- doxy_file.write( '# Generated content:\n' )
- except:
- raise SCons.Errors.UserError, "Can't read doxygen template file '%s'" % doxyfile_path
- # Then, the input files
- doxy_file.write( 'INPUT = \\\n' )
- for source in source:
- if source.abspath != doxyfile_path: # skip doxyfile path, which is the first source
- doxy_file.write( '"%s" \\\n' % source.abspath )
- doxy_file.write( '\n' )
- # Dot...
- values_dict = { 'HAVE_DOT': env.get('DOT') and 'YES' or 'NO',
- 'DOT_PATH': env.get('DOT') and os.path.split(env['DOT'])[0] or '',
- 'OUTPUT_DIRECTORY': doc_top_dir,
- 'WARN_LOGFILE': target[0].abspath + '-warning.log'}
- values_dict.update( env['DOXYFILE_DICT'] )
- # Finally, output user dictionary values which override any of the previously set parameters.
- for key, value in values_dict.iteritems():
- doxy_file.write ('%s = "%s"\n' % (key, str(value)))
- finally:
- doxy_file.close()
-
-def generate(env):
- """
- Add builders and construction variables for the
- Doxygen tool.
- """
- ## Doxyfile builder
- def doxyfile_message (target, source, env):
- return "creating Doxygen config file '%s'" % target[0]
-
- doxyfile_variables = [
- 'DOXYFILE_DICT',
- 'DOXYFILE_FILE'
- ]
-
- #doxyfile_action = SCons.Action.Action( Doxyfile_Builder, doxyfile_message,
- # doxyfile_variables )
- doxyfile_action = SCons.Action.Action( Doxyfile_Builder, doxyfile_message)
-
- doxyfile_builder = SCons.Builder.Builder( action = doxyfile_action,
- emitter = Doxyfile_emitter )
-
- env['BUILDERS']['Doxyfile'] = doxyfile_builder
- env['DOXYFILE_DICT'] = {}
- env['DOXYFILE_FILE'] = 'doxyfile.in'
-
- ## Doxygen builder
- def Doxygen_emitter(target, source, env):
- output_dir = str( source[0].dir )
- if str(target[0]) == str(source[0]):
- target = env.File( os.path.join( output_dir, 'html', 'index.html' ) )
- return target, source
-
- doxygen_action = SCons.Action.Action( [ '$DOXYGEN_COM'] )
- doxygen_builder = SCons.Builder.Builder( action = doxygen_action,
- emitter = Doxygen_emitter )
- env['BUILDERS']['Doxygen'] = doxygen_builder
- env['DOXYGEN_COM'] = '$DOXYGEN $DOXYGEN_FLAGS $SOURCE'
- env['DOXYGEN_FLAGS'] = ''
- env['DOXYGEN'] = 'doxygen'
-
- dot_path = env.WhereIs("dot")
- if dot_path:
- env['DOT'] = dot_path
-
-def exists(env):
- """
- Make sure doxygen exists.
- """
- return env.Detect("doxygen")