| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import os
- import sys
- from building import *
- cwd = GetCurrentDir()
- # Import component build module and build support
- sys.path.append(os.path.join(cwd, '../../tools'))
- from build_component import build_example_component
- from build_support import clean_rust_build
- # Load feature configurations
- try:
- from feature_config_component import setup_all_component_features
- setup_all_component_features()
- except ImportError:
- print("Warning: Could not load component feature configurations")
- def _has(sym: str) -> bool:
- """Helper function to check if a configuration symbol is enabled."""
- try:
- return bool(GetDepend([sym]))
- except Exception:
- return bool(GetDepend(sym))
- # Early return if Rust or log component is not enabled
- if not _has('RT_USING_RUST'):
- group = []
- Return('group')
- if not _has('RUST_LOG_COMPONENT'):
- group = []
- Return('group')
- # Source files – component glue code if needed
- src = []
- LIBS = []
- LIBPATH = []
- LINKFLAGS = ""
- # Handle clean operation
- if GetOption('clean'):
- comp_build_dir = clean_rust_build(Dir('#').abspath, "example_component")
- if os.path.exists(comp_build_dir):
- print(f'Registering {comp_build_dir} for cleanup')
- Clean('.', comp_build_dir)
- else:
- print('No example_component build artifacts to clean')
- else:
- # Build the component using the extracted build module
- import rtconfig
- LIBS, LIBPATH, LINKFLAGS = build_example_component(
- cwd=cwd,
- has_func=_has,
- rtconfig=rtconfig,
- build_root=os.path.join(Dir('#').abspath, "build", "example_component")
- )
- # Define component group for SCons
- group = DefineGroup(
- 'example_component_log',
- src,
- depend=['RT_USING_RUST'],
- LIBS=LIBS,
- LIBPATH=LIBPATH,
- LINKFLAGS=LINKFLAGS
- )
- Return('group')
|