From 5c19581bfe89d2e46eee11cdde9d6e824ddf7235 Mon Sep 17 00:00:00 2001 From: Fu Hanxi Date: Tue, 9 Nov 2021 15:30:09 +0800 Subject: [PATCH] feat(idf.py): add `idf.py clang-check` and `idf.py clang-html-report` --- tools/idf.py | 8 ++++++++ tools/idf_py_actions/core_ext.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/tools/idf.py b/tools/idf.py index f38faf5b98..cba92076e0 100755 --- a/tools/idf.py +++ b/tools/idf.py @@ -682,6 +682,14 @@ def init_cli(verbose_output=None): from idf_component_manager import idf_extensions extensions.append(('component_manager_ext', idf_extensions)) + # Optional load `pyclang` for additional clang-tidy related functionalities + try: + from pyclang import idf_extension + + extensions.append(('idf_clang_tidy_ext', idf_extension)) + except ImportError: + pass + for name, extension in extensions: try: all_actions = merge_action_lists(all_actions, extension.action_extensions(all_actions, project_dir)) diff --git a/tools/idf_py_actions/core_ext.py b/tools/idf_py_actions/core_ext.py index d7a379d744..32e80dbab2 100644 --- a/tools/idf_py_actions/core_ext.py +++ b/tools/idf_py_actions/core_ext.py @@ -69,6 +69,10 @@ def action_extensions(base_actions, project_path): subprocess.check_output(GENERATORS[args.generator]['dry_run'] + [target_name], cwd=args.build_dir) except Exception: + if target_name in ['clang-check', 'clang-html-report']: + raise FatalError('command "{}" requires an additional plugin "pyclang". ' + 'Please install it via "pip install --upgrade pyclang"'.format(target_name)) + raise FatalError( 'command "%s" is not known to idf.py and is not a %s target' % (target_name, args.generator))