diff options
Diffstat (limited to 'lib/python')
| -rwxr-xr-x | lib/python/qmk/compilation_database.py | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/lib/python/qmk/compilation_database.py b/lib/python/qmk/compilation_database.py index c403297405..851dc3f157 100755 --- a/lib/python/qmk/compilation_database.py +++ b/lib/python/qmk/compilation_database.py @@ -44,8 +44,7 @@ def cpu_defines(binary: str, compiler_args: str) -> List[str]:              invocation.extend(['-x', 'c', '-std=gnu11'])          elif binary.endswith("g++"):              invocation.extend(['-x', 'c++', '-std=gnu++14']) -        compiler_args = shlex.split(compiler_args) -        invocation.extend(compiler_args) +        invocation.extend(shlex.split(compiler_args))          invocation.append('-')          result = cli.run(invocation, capture_output=True, check=True, stdin=None, input='\n')          define_args = [] @@ -55,7 +54,11 @@ def cpu_defines(binary: str, compiler_args: str) -> List[str]:                  define_args.append(f'-D{line_args[1]}={line_args[2]}')              elif len(line_args) == 2 and line_args[0] == '#define':                  define_args.append(f'-D{line_args[1]}') -        return list(sorted(set(define_args))) + +        type_filter = re.compile( +            r'^-D__(SIZE|INT|UINT|WINT|WCHAR|BYTE|SHRT|SIG|FLOAT|LONG|CHAR|SCHAR|DBL|FLT|LDBL|PTRDIFF|QQ|DQ|DA|HA|HQ|SA|SQ|TA|TQ|UDA|UDQ|UHA|UHQ|USQ|USA|UTQ|UTA|UQQ|UQA|ACCUM|FRACT|UACCUM|UFRACT|LACCUM|LFRACT|ULACCUM|ULFRACT|LLACCUM|LLFRACT|ULLACCUM|ULLFRACT|SACCUM|SFRACT|USACCUM|USFRACT)' +        ) +        return list(sorted(set(filter(lambda x: not type_filter.match(x), define_args))))      return [] @@ -92,8 +95,8 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]:                  for s in system_libs(binary):                      args += ['-isystem', '%s' % s]                  args.extend(cpu_defines(binary, ' '.join(shlex.quote(s) for s in compiler_args))) -                new_cmd = ' '.join(shlex.quote(s) for s in args) -                records.append({"directory": str(QMK_FIRMWARE.resolve()), "command": new_cmd, "file": this_file}) +                args[0] = binary +                records.append({"arguments": args, "directory": str(QMK_FIRMWARE.resolve()), "file": this_file})                  state = 'start'      return records | 
