Files
pollo/tools/linter/run_iwyu.sh
2025-11-23 11:44:31 +01:00

28 lines
967 B
Bash

#!/bin/bash
# 🏁 Auto-detectar ruta base del proyecto
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
# 📁 Ruta al build
BUILD_DIR="$PROJECT_ROOT/build"
# 📄 Archivo de mapping personalizado
MAPPING_FILE="$SCRIPT_DIR/sdl3_mapping.imp"
# 📦 Generar compile_commands.json
echo "🔧 Generando compile_commands.json..."
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -S "$PROJECT_ROOT" -B "$BUILD_DIR"
# 🛠️ Ejecutar IWYU con fix_includes.py
echo "🚀 Ejecutando IWYU..."
./iwyu_tool.py -p "$BUILD_DIR" -- -Xiwyu --mapping_file="$MAPPING_FILE" -Xiwyu --verbose=3 \
| fix_include --update_comments --reorder --nosafe_headers
# 🧹 Reemplazar // for por // Para en líneas de #include
echo "✍️ Corrigiendo comentarios en includes..."
find "$PROJECT_ROOT" -type f \( -name "*.cpp" -o -name "*.h" \) -exec \
sed -i '/^#include .*\/\/ for/s/\/\/ for/\/\/ Para/' {} +
echo "✅ Script completado."