You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.2 KiB

"""Build QMK documentation locally
"""
import shutil
from pathlib import Path
from subprocess import DEVNULL
from milc import cli
DOCS_PATH = Path('docs/')
BUILD_PATH = Path('.build/')
BUILD_DOCS_PATH = BUILD_PATH / 'docs'
DOXYGEN_PATH = BUILD_PATH / 'doxygen'
@cli.subcommand('Build QMK documentation.', hidden=False if cli.config.user.developer else True)
def generate_docs(cli):
"""Invoke the docs generation process
TODO(unclaimed):
* [ ] Add a real build step... something static docs
"""
if BUILD_DOCS_PATH.exists():
shutil.rmtree(BUILD_DOCS_PATH)
if DOXYGEN_PATH.exists():
shutil.rmtree(DOXYGEN_PATH)
shutil.copytree(DOCS_PATH, BUILD_DOCS_PATH)
# When not verbose we want to hide all output
args = {
'capture_output': False if cli.config.general.verbose else True,
'check': True,
'stdin': DEVNULL,
}
cli.log.info('Generating internal docs...')
# Generate internal docs
cli.run(['doxygen', 'Doxyfile'], **args)
cli.run(['moxygen', '-q', '-g', '-o', BUILD_DOCS_PATH / 'internals_%s.md', DOXYGEN_PATH / 'xml'], **args)
cli.log.info('Successfully generated internal docs to %s.', BUILD_DOCS_PATH)