Tell why we disable a target.
This commit is contained in:
parent
d1539a3341
commit
04fed940ad
3 changed files with 34 additions and 8 deletions
|
@ -57,6 +57,21 @@ def runCmd(opts: dict, args: list[str]) -> None:
|
||||||
print(f"{utils.Colors.GREEN}Process exited with success{utils.Colors.RESET}")
|
print(f"{utils.Colors.GREEN}Process exited with success{utils.Colors.RESET}")
|
||||||
|
|
||||||
|
|
||||||
|
def debugCmd(opts: dict, args: list[str]) -> None:
|
||||||
|
props = propsFromOptions(opts)
|
||||||
|
if len(args) == 0:
|
||||||
|
print(f"Usage: osdk debug <component>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
out = build.buildOne(opts.get('target', 'default:debug'), args[0], props)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(f"{utils.Colors.BOLD}Debugging: {args[0]}{utils.Colors.RESET}")
|
||||||
|
utils.runCmd("/usr/bin/lldb", out, *args[1:])
|
||||||
|
print()
|
||||||
|
print(f"{utils.Colors.GREEN}Process exited with success{utils.Colors.RESET}")
|
||||||
|
|
||||||
|
|
||||||
def buildCmd(opts: dict, args: list[str]) -> None:
|
def buildCmd(opts: dict, args: list[str]) -> None:
|
||||||
props = propsFromOptions(opts)
|
props = propsFromOptions(opts)
|
||||||
allTargets = opts.get('all-targets', False)
|
allTargets = opts.get('all-targets', False)
|
||||||
|
@ -137,6 +152,10 @@ CMDS = {
|
||||||
"func": runCmd,
|
"func": runCmd,
|
||||||
"desc": "Run a component on the host",
|
"desc": "Run a component on the host",
|
||||||
},
|
},
|
||||||
|
"debug": {
|
||||||
|
"func": debugCmd,
|
||||||
|
"desc": "Run a component on the host in debug mode",
|
||||||
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"func": buildCmd,
|
"func": buildCmd,
|
||||||
"desc": "Build one or more components",
|
"desc": "Build one or more components",
|
||||||
|
|
|
@ -26,6 +26,8 @@ def filter(manifests: dict, target: dict) -> dict:
|
||||||
if not req in target["props"] or \
|
if not req in target["props"] or \
|
||||||
not target["props"][req] in manifest["requires"][req]:
|
not target["props"][req] in manifest["requires"][req]:
|
||||||
accepted = False
|
accepted = False
|
||||||
|
print(
|
||||||
|
f"Disabling {id} because it requires {req}: {manifest['requires'][req]}")
|
||||||
break
|
break
|
||||||
|
|
||||||
manifest["enabled"] = accepted
|
manifest["enabled"] = accepted
|
||||||
|
|
|
@ -48,8 +48,6 @@ def enableSan(target: dict) -> dict:
|
||||||
|
|
||||||
|
|
||||||
def enableColors(target: dict) -> dict:
|
def enableColors(target: dict) -> dict:
|
||||||
target = copy.deepcopy(target)
|
|
||||||
|
|
||||||
if (target["props"]["toolchain"] == "clang"):
|
if (target["props"]["toolchain"] == "clang"):
|
||||||
target = patchToolArgs(target, "cc", ["-fcolor-diagnostics"])
|
target = patchToolArgs(target, "cc", ["-fcolor-diagnostics"])
|
||||||
target = patchToolArgs(target, "cxx", ["-fcolor-diagnostics"])
|
target = patchToolArgs(target, "cxx", ["-fcolor-diagnostics"])
|
||||||
|
@ -61,20 +59,25 @@ def enableColors(target: dict) -> dict:
|
||||||
|
|
||||||
|
|
||||||
def enableOptimizer(target: dict, level: str) -> dict:
|
def enableOptimizer(target: dict, level: str) -> dict:
|
||||||
target = copy.deepcopy(target)
|
|
||||||
|
|
||||||
target = patchToolArgs(target, "cc", ["-O" + level])
|
target = patchToolArgs(target, "cc", ["-O" + level])
|
||||||
target = patchToolArgs(target, "cxx", ["-O" + level])
|
target = patchToolArgs(target, "cxx", ["-O" + level])
|
||||||
|
|
||||||
return target
|
return target
|
||||||
|
|
||||||
|
|
||||||
|
def enableDebug(target: dict) -> dict:
|
||||||
|
target = patchToolArgs(target, "cc", ["-g"])
|
||||||
|
target = patchToolArgs(target, "cxx", ["-g"])
|
||||||
|
|
||||||
|
return target
|
||||||
|
|
||||||
|
|
||||||
def available() -> list:
|
def available() -> list:
|
||||||
return [file.removesuffix(".json") for file in utils.tryListDir("meta/targets")
|
return [file.removesuffix(".json") for file in utils.tryListDir("meta/targets")
|
||||||
if file.endswith(".json")]
|
if file.endswith(".json")]
|
||||||
|
|
||||||
|
|
||||||
VARIANTS = ["debug", "devel", "release", "sanatize"]
|
VARIANTS = ["debug", "devel", "fast", "san"]
|
||||||
|
|
||||||
|
|
||||||
def load(targetId: str, props: dict) -> dict:
|
def load(targetId: str, props: dict) -> dict:
|
||||||
|
@ -135,13 +138,15 @@ def load(targetId: str, props: dict) -> dict:
|
||||||
target = enableColors(target)
|
target = enableColors(target)
|
||||||
|
|
||||||
if targetVariant == "debug":
|
if targetVariant == "debug":
|
||||||
target = enableOptimizer(target, "g")
|
target = enableDebug(target)
|
||||||
|
target = enableOptimizer(target, "0")
|
||||||
elif targetVariant == "devel":
|
elif targetVariant == "devel":
|
||||||
target = enableOptimizer(target, "2")
|
target = enableOptimizer(target, "2")
|
||||||
elif targetVariant == "release":
|
elif targetVariant == "fast":
|
||||||
target = enableOptimizer(target, "3")
|
target = enableOptimizer(target, "3")
|
||||||
elif targetVariant == "sanitize":
|
elif targetVariant == "san":
|
||||||
target = enableOptimizer(target, "g")
|
target = enableOptimizer(target, "g")
|
||||||
|
target = enableDebug(target)
|
||||||
target = enableSan(target)
|
target = enableSan(target)
|
||||||
|
|
||||||
return target
|
return target
|
||||||
|
|
Loading…
Add table
Reference in a new issue