in tools/doxygen/generate_docs.py [0:0]
def main():
"""
Generate documentation and optionally zip it up.
"""
parser = argparse.ArgumentParser(description="Generate all doxygen and optionally zip it.")
parser.add_argument("-r", "--root", action="store", required=False, dest="root", help="CSDK repo root path. This defaults to the current working directory.")
parser.add_argument("-z", "--zip", action="store_true", required=False, help="Zip all doxygen output.")
args = parser.parse_args()
sdk_root = args.root
doZip = args.zip
# If the root folder is not give, use the current working directory.
if( sdk_root == None ):
sdk_root = os.getcwd()
# Get the absolute paths to all of the libraries in the CSDK.
abs_sdk_root = os.path.abspath(sdk_root)
abs_lib_paths = get_lib_paths(abs_sdk_root)
abs_doxy_paths = []
doxygen_warnings_flag = False
# Generate the doxygen for all of the libraries.
for abs_lib_path in abs_lib_paths:
abs_doxy_path = os.path.join(abs_lib_path, "docs", "doxygen")
if os.path.exists(abs_doxy_path):
os.chdir(abs_lib_path)
print(abs_lib_path)
# If there is something printed by doxygen, then it represents a warning.
doxygen_warnings_flag = run_cmd("doxygen docs/doxygen/config.doxyfile") or doxygen_warnings_flag
abs_doxy_paths.append(abs_doxy_path)
# Generate the doxygen for the CSDK last to use the tags from the libraries.
os.chdir(abs_sdk_root)
print(abs_sdk_root)
doxygen_warnings_flag = run_cmd("doxygen docs/doxygen/config.doxyfile") or doxygen_warnings_flag
abs_doxy_paths.append(os.path.join(abs_sdk_root, "docs", "doxygen"))
# Zip up if desired.
if not(doxygen_warnings_flag) and doZip:
print(f"Zipping up to {abs_sdk_root}{os.path.sep}doxygen.zip...")
doxy_zip = zipfile.ZipFile("doxygen.zip", mode="w")
try:
for abs_doxy_path in abs_doxy_paths:
abs_output_dir = os.path.join(abs_doxy_path, "output")
for out_root, _, out_files in os.walk(abs_output_dir):
rel_out_root = os.path.relpath(out_root, abs_sdk_root)
for out_file in out_files:
doxy_zip.write(os.path.join(rel_out_root, out_file))
finally:
doxy_zip.close()
# Return failure exit code if doxygen generation resulted in warnings.
if doxygen_warnings_flag == False:
sys.exit(0)
else:
sys.exit(1)