Implemented clang.py
This commit is contained in:
parent
d1c6dbd0b1
commit
a686c2c9e8
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Clang compiler implementation.
|
||||
While Clang is compatible with GCC, this provides a dedicated implementation
|
||||
for cases where Clang-specific features or flags are needed.
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
from typing import List, Optional
|
||||
from .gcc import GCCCompiler
|
||||
|
||||
|
||||
class ClangCompiler(GCCCompiler):
|
||||
"""Clang compiler implementation (inherits from GCC)."""
|
||||
|
||||
def __init__(self, executable: str = "clang"):
|
||||
"""
|
||||
Initialize Clang compiler.
|
||||
|
||||
Args:
|
||||
executable: Compiler executable name ("clang")
|
||||
"""
|
||||
# Call parent constructor but override the name
|
||||
super().__init__(executable)
|
||||
self.name = "Clang"
|
||||
|
||||
def get_version(self) -> Optional[str]:
|
||||
"""
|
||||
Get the Clang version string.
|
||||
|
||||
Returns:
|
||||
Version string if available, None otherwise
|
||||
"""
|
||||
from build_system.utils import run_quiet
|
||||
|
||||
try:
|
||||
result = run_quiet([self.executable, "--version"], check=False)
|
||||
if result.returncode == 0 and result.stdout:
|
||||
# Parse first line of version output
|
||||
first_line = result.stdout.strip().split('\n')[0]
|
||||
return first_line
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return None
|
||||
Loading…
Reference in New Issue