Currently, we only extract commands for targets ending with '.o'. But we also have many standalone executables built in-tree. Remove this restriction. And to avoid some false matching, exclude targets end with '.c' or '.h' when directly walking the directory. To really generate compile_commands.json that includes such target, call this script directly with no arguments. `make compile_commands.json` will not include them. Signed-off-by: Hu Weiwen <huww98@xxxxxxxxxxx> --- Since V1: Only commit message is updated. scripts/clang-tools/gen_compile_commands.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-tools/gen_compile_commands.py index 15ba56527acd..6e88c7e166fc 100755 --- a/scripts/clang-tools/gen_compile_commands.py +++ b/scripts/clang-tools/gen_compile_commands.py @@ -18,8 +18,8 @@ import sys _DEFAULT_OUTPUT = 'compile_commands.json' _DEFAULT_LOG_LEVEL = 'WARNING' -_FILENAME_PATTERN = r'^\..*\.cmd$' -_LINE_PATTERN = r'^savedcmd_[^ ]*\.o := (.* )([^ ]*\.c) *(;|$)' +_FILENAME_PATTERN = r'^\..*(?<!\.(c|h))\.cmd$' +_LINE_PATTERN = r'^savedcmd_[^ ]* := (.* )([^ ]*\.c) *(;|$)' _VALID_LOG_LEVELS = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] # The tools/ directory adopts a different build system, and produces .cmd # files in a different format. Do not support it. -- 2.25.1