mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-11-04 09:02:12 +00:00 
			
		
		
		
	Documentation: Add support for generating common target api
This commit is contained in:
		@@ -20,11 +20,12 @@ import sys
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from wa import pluginloader
 | 
					from wa import pluginloader
 | 
				
			||||||
from wa.framework.configuration.core import RunConfiguration, MetaConfiguration
 | 
					from wa.framework.configuration.core import RunConfiguration, MetaConfiguration
 | 
				
			||||||
from wa.utils.doc import get_rst_from_plugin, underline, get_params_rst
 | 
					from wa.framework.target.descriptor import list_target_descriptions
 | 
				
			||||||
 | 
					from wa.utils.doc import (strip_inlined_text, get_rst_from_plugin,
 | 
				
			||||||
 | 
					                          get_params_rst, underline)
 | 
				
			||||||
from wa.utils.misc import capitalize
 | 
					from wa.utils.misc import capitalize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GENERATE_FOR_PLUGIN = ['workload', 'instrument', 'output_processor']
 | 
				
			||||||
GENERATE_FOR_PLUGIN = ['workload', 'instrument', 'output_processor', 'target']
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def generate_plugin_documentation(source_dir, outdir, ignore_paths):
 | 
					def generate_plugin_documentation(source_dir, outdir, ignore_paths):
 | 
				
			||||||
@@ -45,6 +46,39 @@ def generate_plugin_documentation(source_dir, outdir, ignore_paths):
 | 
				
			|||||||
            for ext in sorted(exts, key=lambda x: x.name):
 | 
					            for ext in sorted(exts, key=lambda x: x.name):
 | 
				
			||||||
                wfh.write(get_rst_from_plugin(ext))
 | 
					                wfh.write(get_rst_from_plugin(ext))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def generate_target_documentation(outdir):
 | 
				
			||||||
 | 
					    targets_to_generate = ['generic_android',
 | 
				
			||||||
 | 
					                           'generic_linux',
 | 
				
			||||||
 | 
					                           'generic_chromeos',
 | 
				
			||||||
 | 
					                           'generic_local',
 | 
				
			||||||
 | 
					                           'juno_linux',
 | 
				
			||||||
 | 
					                           'juno_android']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    intro = '\nThis is a list of commonly used targets and their device '\
 | 
				
			||||||
 | 
					    'parameters, to see a complete for a complete reference please use the '\
 | 
				
			||||||
 | 
					    'WA :ref:`list command <list-command>`.\n\n\n'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pluginloader.clear()
 | 
				
			||||||
 | 
					    pluginloader.update(packages=['wa.framework.target.descriptor'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    target_descriptors = list_target_descriptions(pluginloader)
 | 
				
			||||||
 | 
					    outfile = os.path.join(outdir, 'targets.rst')
 | 
				
			||||||
 | 
					    with open(outfile, 'w') as wfh:
 | 
				
			||||||
 | 
					        wfh.write(underline('Common Targets'))
 | 
				
			||||||
 | 
					        wfh.write(intro)
 | 
				
			||||||
 | 
					        for td in sorted(target_descriptors, key=lambda t: t.name):
 | 
				
			||||||
 | 
					            if td.name not in targets_to_generate:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            text = underline(td.name, '~')
 | 
				
			||||||
 | 
					            if hasattr(td, 'description'):
 | 
				
			||||||
 | 
					                desc = strip_inlined_text(td.description or '')
 | 
				
			||||||
 | 
					                text += desc
 | 
				
			||||||
 | 
					            text += underline('Device Parameters:', '-')
 | 
				
			||||||
 | 
					            text += get_params_rst(td.conn_params)
 | 
				
			||||||
 | 
					            text += get_params_rst(td.platform_params)
 | 
				
			||||||
 | 
					            text += get_params_rst(td.target_params)
 | 
				
			||||||
 | 
					            text += get_params_rst(td.assistant_params)
 | 
				
			||||||
 | 
					            wfh.write(text)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def generate_run_config_documentation(outdir):
 | 
					def generate_run_config_documentation(outdir):
 | 
				
			||||||
    generate_config_documentation(RunConfiguration, outdir)
 | 
					    generate_config_documentation(RunConfiguration, outdir)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,8 @@ sys.path.insert(0, os.path.join(this_dir, '../..'))
 | 
				
			|||||||
import wa
 | 
					import wa
 | 
				
			||||||
from build_plugin_docs import (generate_plugin_documentation,
 | 
					from build_plugin_docs import (generate_plugin_documentation,
 | 
				
			||||||
                               generate_run_config_documentation,
 | 
					                               generate_run_config_documentation,
 | 
				
			||||||
                               generate_meta_config_documentation)
 | 
					                               generate_meta_config_documentation,
 | 
				
			||||||
 | 
					                               generate_target_documentation)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If extensions (or modules to document with autodoc) are in another directory,
 | 
					# If extensions (or modules to document with autodoc) are in another directory,
 | 
				
			||||||
# add these directories to sys.path here. If the directory is relative to the
 | 
					# add these directories to sys.path here. If the directory is relative to the
 | 
				
			||||||
@@ -318,6 +319,7 @@ def setup(app):
 | 
				
			|||||||
    os.chdir(os.path.dirname(__file__))
 | 
					    os.chdir(os.path.dirname(__file__))
 | 
				
			||||||
    app.connect('builder-inited', run_apidoc)
 | 
					    app.connect('builder-inited', run_apidoc)
 | 
				
			||||||
    generate_plugin_documentation(module_dir, 'plugins', excluded_extensions)
 | 
					    generate_plugin_documentation(module_dir, 'plugins', excluded_extensions)
 | 
				
			||||||
 | 
					    generate_target_documentation('plugins')
 | 
				
			||||||
    generate_run_config_documentation('run_config')
 | 
					    generate_run_config_documentation('run_config')
 | 
				
			||||||
    generate_meta_config_documentation('run_config')
 | 
					    generate_meta_config_documentation('run_config')
 | 
				
			||||||
    app.add_object_type('confval', 'confval',
 | 
					    app.add_object_type('confval', 'confval',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user