42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
import json
|
|
import re
|
|
import sys
|
|
import os
|
|
|
|
def clean_compile_commands(compile_commands_path):
|
|
# Load the compile_commands.json file
|
|
with open(compile_commands_path, 'r') as f:
|
|
data = json.load(f)
|
|
|
|
# Flags to remove (Emscripten-specific)
|
|
flags_to_remove = [
|
|
r'-s\w+=\S*', # Matches -sSTRICT=0, -sMODULARIZE=1, etc.
|
|
r'-s\w+', # Matches -sWASM, -sASSERTIONS, etc.
|
|
r'--no-entry',
|
|
r'--bind',
|
|
r'--cache',
|
|
]
|
|
|
|
# Clean each command
|
|
for entry in data:
|
|
if 'command' in entry:
|
|
command = entry['command']
|
|
# Remove all unwanted flags
|
|
for flag_pattern in flags_to_remove:
|
|
command = re.sub(flag_pattern, '', command)
|
|
# Remove extra spaces
|
|
command = ' '.join(command.split())
|
|
entry['command'] = command
|
|
|
|
# Save the cleaned file
|
|
with open(compile_commands_path, 'w') as f:
|
|
json.dump(data, f, indent=2)
|
|
|
|
print(f"Cleaned {compile_commands_path}")
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) != 2:
|
|
print("Usage: python clean_compile_commands.py <compile_commands.json>")
|
|
sys.exit(1)
|
|
clean_compile_commands(sys.argv[1]) |