Cleans repo from built artefaktes
This commit is contained in:
2 files changed
-120
No files matched your search
@@ -1,2 +0,0 @@
|
|||||||
# Minimal CTestCustom.ctest placeholder
|
|
||||||
# Created to satisfy top-level CMake configure step
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Automatisches Skript um BUILD_RTI conditional blocks zu CMakeLists.txt Dateien hinzuzufügen.
|
|
||||||
Findet alle Dateien die RTI::nddscpp2 referenzieren und wrappt den relevanten Code in IF(BUILD_RTI).
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def process_cmake_file(filepath):
|
|
||||||
"""Process a single CMakeLists.txt file and add BUILD_RTI conditionals if needed."""
|
|
||||||
|
|
||||||
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
|
||||||
content = f.read()
|
|
||||||
|
|
||||||
# Check if file uses RTI::nddscpp2 or other RTI targets
|
|
||||||
rti_pattern = r'RTI::(nddscpp2|nddsc|ndds|rtiroutingservice)'
|
|
||||||
if not re.search(rti_pattern, content):
|
|
||||||
return False # No RTI usage, skip
|
|
||||||
|
|
||||||
# Check if already wrapped in BUILD_RTI
|
|
||||||
if re.search(r'if\s*\(\s*BUILD_RTI\s*\)', content, re.IGNORECASE):
|
|
||||||
print(f" SKIP: {filepath} - already has BUILD_RTI conditional")
|
|
||||||
return False
|
|
||||||
|
|
||||||
print(f" PROCESS: {filepath}")
|
|
||||||
|
|
||||||
# Strategy: Wrap the entire file content after initial comments/options in IF(BUILD_RTI)
|
|
||||||
# But preserve cmake_minimum_required, project(), and option() statements at the top
|
|
||||||
|
|
||||||
lines = content.split('\n')
|
|
||||||
output_lines = []
|
|
||||||
|
|
||||||
# Track state
|
|
||||||
in_header = True
|
|
||||||
header_end_index = 0
|
|
||||||
indent_level = 0
|
|
||||||
|
|
||||||
for i, line in enumerate(lines):
|
|
||||||
stripped = line.strip()
|
|
||||||
|
|
||||||
# Skip empty lines and comments at the very beginning
|
|
||||||
if in_header and (not stripped or stripped.startswith('#')):
|
|
||||||
output_lines.append(line)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Keep cmake_minimum_required, project(), option(), set() at top level
|
|
||||||
if in_header:
|
|
||||||
if (stripped.startswith('cmake_minimum_required') or
|
|
||||||
stripped.startswith('project(') or
|
|
||||||
stripped.startswith('option(') or
|
|
||||||
(stripped.startswith('set(') and 'CACHE' in stripped)):
|
|
||||||
output_lines.append(line)
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
in_header = False
|
|
||||||
header_end_index = len(output_lines)
|
|
||||||
|
|
||||||
output_lines.append(line)
|
|
||||||
|
|
||||||
# Now wrap the non-header part in IF(BUILD_RTI)
|
|
||||||
if header_end_index < len(output_lines):
|
|
||||||
# Insert IF(BUILD_RTI) after header
|
|
||||||
final_lines = output_lines[:header_end_index]
|
|
||||||
final_lines.append('')
|
|
||||||
final_lines.append('if(BUILD_RTI)')
|
|
||||||
final_lines.append('')
|
|
||||||
|
|
||||||
# Add remaining content with proper indentation
|
|
||||||
for line in output_lines[header_end_index:]:
|
|
||||||
final_lines.append(' ' + line if line.strip() else line)
|
|
||||||
|
|
||||||
final_lines.append('')
|
|
||||||
final_lines.append('endif()')
|
|
||||||
final_lines.append('')
|
|
||||||
|
|
||||||
new_content = '\n'.join(final_lines)
|
|
||||||
|
|
||||||
# Write back
|
|
||||||
with open(filepath, 'w', encoding='utf-8') as f:
|
|
||||||
f.write(new_content)
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
def main():
|
|
||||||
base_dir = sys.argv[1] if len(sys.argv) > 1 else '.'
|
|
||||||
|
|
||||||
print(f"Scanning for CMakeLists.txt files with RTI dependencies in {base_dir}...")
|
|
||||||
|
|
||||||
processed_count = 0
|
|
||||||
skipped_count = 0
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk(base_dir):
|
|
||||||
# Skip .git and other hidden directories
|
|
||||||
dirs[:] = [d for d in dirs if not d.startswith('.')]
|
|
||||||
|
|
||||||
if 'CMakeLists.txt' in files:
|
|
||||||
filepath = os.path.join(root, 'CMakeLists.txt')
|
|
||||||
if process_cmake_file(filepath):
|
|
||||||
processed_count += 1
|
|
||||||
else:
|
|
||||||
# Check if it has RTI but was skipped
|
|
||||||
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
|
||||||
content = f.read()
|
|
||||||
if re.search(r'RTI::', content):
|
|
||||||
skipped_count += 1
|
|
||||||
|
|
||||||
print(f"\n=== Summary ===")
|
|
||||||
print(f"Processed (added BUILD_RTI): {processed_count} files")
|
|
||||||
print(f"Skipped (already conditional or no RTI): {skipped_count} files")
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main())
|
|
||||||
Reference in new issue
Block a user