tools: Add make_cppdocs.sh for Linux/MacOS (see issue #3385)

The make_distrib script will now generate Doxygen docs by default
if the doxygen command-line tool is installed. Run with `--no-docs`
(`--no-distrib-docs` with automate-git.py) to disable docs generation.
This commit is contained in:
Marshall Greenblatt 2022-09-02 11:22:42 -07:00
parent fa2464e843
commit 8645e88e0e
2 changed files with 47 additions and 18 deletions

27
tools/make_cppdocs.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
# Copyright (c) 2022 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file.
if ! command -v doxygen &> /dev/null
then
echo "ERROR: Please install Doxygen" 1>&2
exit 1
fi
# Determine the absolute path to the script directory.
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
# Determine the top-level CEF directory.
CEF_DIR="${SCRIPT_DIR}/.."
# Environment variables inserted into the Doxyfile via `$(VAR_NAME)` syntax.
export PROJECT_NUMBER=$(python3 ${SCRIPT_DIR}/cef_version.py current)
# Generate documentation in the docs/html directory.
# Run from the top-level CEF directory so that relative paths resolve correctly.
( cd ${CEF_DIR} && doxygen Doxyfile )
# Write a docs/index.html file.
echo "<html><head><meta http-equiv=\"refresh\" content=\"0;URL='html/index.html'\"/></head></html>" > ${CEF_DIR}/docs/index.html

View File

@ -856,6 +856,26 @@ if mode == 'standard':
# transfer Doxyfile # transfer Doxyfile
transfer_doxyfile(output_dir, options.quiet) transfer_doxyfile(output_dir, options.quiet)
if not options.nodocs:
# generate doc files
sys.stdout.write("Generating docs...\n")
result = exec_cmd(
os.path.join('tools', 'make_cppdocs.%s' %
('bat' if platform == 'windows' else 'sh')), cef_dir)
if (len(result['err']) > 0):
sys.stdout.write(result['err'])
sys.stdout.write(result['out'])
src_dir = os.path.join(cef_dir, 'docs')
if path_exists(src_dir):
# create the docs output directory
docs_output_dir = create_output_dir(output_dir_base + '_docs',
options.outputdir)
# transfer contents
copy_dir(src_dir, docs_output_dir, options.quiet)
else:
sys.stdout.write("ERROR: No docs generated.\n")
if platform == 'windows': if platform == 'windows':
libcef_dll = 'libcef.dll' libcef_dll = 'libcef.dll'
libcef_dll_lib = '%s.lib' % libcef_dll libcef_dll_lib = '%s.lib' % libcef_dll
@ -1016,24 +1036,6 @@ if platform == 'windows':
transfer_gypi_files(cef_dir, cef_paths2['ceftests_sources_resources_win'], \ transfer_gypi_files(cef_dir, cef_paths2['ceftests_sources_resources_win'], \
'tests/ceftests/', ceftests_dir, options.quiet) 'tests/ceftests/', ceftests_dir, options.quiet)
if not options.nodocs:
# generate doc files
sys.stdout.write("Generating docs...\n")
result = exec_cmd(os.path.join('tools', 'make_cppdocs.bat'), cef_dir)
if (len(result['err']) > 0):
sys.stdout.write(result['err'])
sys.stdout.write(result['out'])
src_dir = os.path.join(cef_dir, 'docs')
if path_exists(src_dir):
# create the docs output directory
docs_output_dir = create_output_dir(output_dir_base + '_docs',
options.outputdir)
# transfer contents
copy_dir(src_dir, docs_output_dir, options.quiet)
else:
sys.stdout.write("ERROR: No docs generated.\n")
elif platform == 'mac': elif platform == 'mac':
framework_name = 'Chromium Embedded Framework' framework_name = 'Chromium Embedded Framework'
framework_dsym = '%s.dSYM' % framework_name framework_dsym = '%s.dSYM' % framework_name