Files
klubhaus-doorbell/libraries/FastLED/scripts/disable_all_source_build.py.disabled
2026-02-12 00:45:31 -08:00

134 lines
4.5 KiB
Python

#!/usr/bin/env python3
"""
Disable All Source Build System
This script temporarily disables the all source build system by:
1. Removing wrapper logic from .cpp files
2. Restoring normal compilation behavior
3. Commenting out the FASTLED_ALL_SRC logic
This is a recovery tool to get the system back to a working state.
"""
import os
import glob
from pathlib import Path
def disable_wrapper_file(cpp_file: Path) -> bool:
"""Disable wrapper logic in a .cpp file by commenting out the conditional compilation."""
try:
with open(cpp_file, 'r') as f:
content = f.read()
# Check if it's a wrapper file (contains FASTLED_ALL_SRC logic)
if 'FASTLED_ALL_SRC' in content and 'compiler_control.h' in content:
print(f"Disabling wrapper: {cpp_file}")
# Comment out the wrapper logic but keep the structure
lines = content.split('\n')
new_lines = []
for line in lines:
if any(keyword in line for keyword in ['#include "fl/compiler_control.h"',
'#if !FASTLED_ALL_SRC',
'#include',
'#endif']):
new_lines.append(f"// DISABLED: {line}")
else:
new_lines.append(line)
# Add a simple placeholder implementation
new_content = '\n'.join(new_lines)
new_content += f'''
// TEMPORARY PLACEHOLDER - This file needs proper implementation
// All source build wrapper has been disabled to restore compilation
// TODO: Restore original {cpp_file.name} implementation
'''
with open(cpp_file, 'w') as f:
f.write(new_content)
return True
return False
except Exception as e:
print(f"Error processing {cpp_file}: {e}")
return False
def disable_compiler_control():
"""Disable FASTLED_ALL_SRC logic in compiler_control.h."""
control_file = Path("src/fl/compiler_control.h")
if not control_file.exists():
print(f"Warning: {control_file} not found")
return
with open(control_file, 'r') as f:
content = f.read()
if 'FASTLED_ALL_SRC' in content:
print(f"Disabling FASTLED_ALL_SRC logic in {control_file}")
# Comment out the entire FASTLED_ALL_SRC section
lines = content.split('\n')
new_lines = []
in_all_src_section = False
for line in lines:
if 'All Source Build Control' in line:
in_all_src_section = True
new_lines.append(f"// DISABLED: {line}")
elif in_all_src_section and line.strip() == '':
in_all_src_section = False
new_lines.append(line)
elif in_all_src_section:
new_lines.append(f"// DISABLED: {line}")
else:
new_lines.append(line)
# Add a simple disable definition
new_content = '\n'.join(new_lines)
new_content += '''
// TEMPORARY DISABLE - All source build system disabled for recovery
#ifndef FASTLED_ALL_SRC
#define FASTLED_ALL_SRC 0 // Always use individual compilation
#endif
'''
with open(control_file, 'w') as f:
f.write(new_content)
def main():
"""Main function to disable the all source build system."""
print("🛑 Disabling All Source Build System for Recovery")
# Find all .cpp files that might have wrapper code
cpp_patterns = [
"src/**/*.cpp",
]
disabled_count = 0
for pattern in cpp_patterns:
for filepath in glob.glob(pattern, recursive=True):
cpp_file = Path(filepath)
if cpp_file.name != "fastled_compile.cpp": # Don't modify the unified file
if disable_wrapper_file(cpp_file):
disabled_count += 1
# Disable compiler control logic
disable_compiler_control()
print(f"\n✅ All source build system disabled!")
print(f" - Disabled {disabled_count} wrapper files")
print(f" - Commented out FASTLED_ALL_SRC logic")
print(f"\n⚠️ This is a TEMPORARY recovery state")
print(f" - System should now compile with individual .cpp files")
print(f" - You can now implement proper all source build system")
if __name__ == "__main__":
main()