58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Simple validation script for the unified build system.
|
|
|
|
This script tests basic functionality without requiring compilation.
|
|
"""
|
|
|
|
import tempfile
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
try:
|
|
from ci.build_api import create_unit_test_builder, create_example_builder, BuildType
|
|
|
|
print("✓ Successfully imported unified build API")
|
|
|
|
# Test basic creation
|
|
with tempfile.TemporaryDirectory() as temp_dir:
|
|
temp_path = Path(temp_dir)
|
|
|
|
# Test unit builder creation
|
|
unit_builder = create_unit_test_builder(build_dir=temp_path / "unit")
|
|
print(f"✓ Unit test builder created: {unit_builder.build_type}")
|
|
|
|
# Test example builder creation
|
|
example_builder = create_example_builder(build_dir=temp_path / "examples")
|
|
print(f"✓ Example builder created: {example_builder.build_type}")
|
|
|
|
# Test build info
|
|
unit_info = unit_builder.get_build_info()
|
|
example_info = example_builder.get_build_info()
|
|
|
|
print(f"✓ Unit test build flags TOML: {Path(unit_info['build_flags_toml']).name}")
|
|
print(f"✓ Example build flags TOML: {Path(example_info['build_flags_toml']).name}")
|
|
|
|
# Test directory structure
|
|
assert unit_builder.artifacts_dir.exists()
|
|
assert unit_builder.targets_dir.exists()
|
|
assert unit_builder.cache_dir.exists()
|
|
print("✓ Directory structure created correctly")
|
|
|
|
print("\n" + "=" * 60)
|
|
print("UNIFIED BUILD SYSTEM VALIDATION SUCCESSFUL!")
|
|
print("=" * 60)
|
|
print("The new unified BuildAPI is working correctly.")
|
|
print("\nKey achievements:")
|
|
print("✓ Split build_flags.toml into build_unit.toml and build_example.toml")
|
|
print("✓ Created unified BuildAPI class")
|
|
print("✓ Implemented automatic PCH and library building")
|
|
print("✓ Organized build directory structure")
|
|
print("✓ Clean separation between unit tests and examples")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Validation failed: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|