Merge branch 'main' of https://github.com/devse-org/osdk
This commit is contained in:
commit
1f5cddb55f
|
@ -55,6 +55,21 @@ def runCmd(opts: dict, args: list[str]) -> None:
|
|||
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:
|
||||
props = propsFromOptions(opts)
|
||||
allTargets = opts.get('all-targets', False)
|
||||
|
@ -135,6 +150,10 @@ CMDS = {
|
|||
"func": runCmd,
|
||||
"desc": "Run a component on the host",
|
||||
},
|
||||
"debug": {
|
||||
"func": debugCmd,
|
||||
"desc": "Run a component on the host in debug mode",
|
||||
},
|
||||
"build": {
|
||||
"func": buildCmd,
|
||||
"desc": "Build one or more components",
|
||||
|
|
|
@ -26,6 +26,8 @@ def filter(manifests: dict, target: dict) -> dict:
|
|||
if not req in target["props"] or \
|
||||
not target["props"][req] in manifest["requires"][req]:
|
||||
accepted = False
|
||||
print(
|
||||
f"Disabling {id} because it requires {req}: {manifest['requires'][req]}")
|
||||
break
|
||||
|
||||
manifest["enabled"] = accepted
|
||||
|
|
|
@ -48,8 +48,6 @@ def enableSan(target: dict) -> dict:
|
|||
|
||||
|
||||
def enableColors(target: dict) -> dict:
|
||||
target = copy.deepcopy(target)
|
||||
|
||||
if (target["props"]["toolchain"] == "clang"):
|
||||
target = patchToolArgs(target, "cc", ["-fcolor-diagnostics"])
|
||||
target = patchToolArgs(target, "cxx", ["-fcolor-diagnostics"])
|
||||
|
@ -61,20 +59,25 @@ def enableColors(target: dict) -> dict:
|
|||
|
||||
|
||||
def enableOptimizer(target: dict, level: str) -> dict:
|
||||
target = copy.deepcopy(target)
|
||||
|
||||
target = patchToolArgs(target, "cc", ["-O" + level])
|
||||
target = patchToolArgs(target, "cxx", ["-O" + level])
|
||||
|
||||
return target
|
||||
|
||||
|
||||
def enableDebug(target: dict) -> dict:
|
||||
target = patchToolArgs(target, "cc", ["-g"])
|
||||
target = patchToolArgs(target, "cxx", ["-g"])
|
||||
|
||||
return target
|
||||
|
||||
|
||||
def available() -> list:
|
||||
return [file.removesuffix(".json") for file in utils.tryListDir("meta/targets")
|
||||
if file.endswith(".json")]
|
||||
|
||||
|
||||
VARIANTS = ["debug", "devel", "release", "sanatize"]
|
||||
VARIANTS = ["debug", "devel", "fast", "san"]
|
||||
|
||||
|
||||
def load(targetId: str, props: dict) -> dict:
|
||||
|
@ -135,13 +138,15 @@ def load(targetId: str, props: dict) -> dict:
|
|||
target = enableColors(target)
|
||||
|
||||
if targetVariant == "debug":
|
||||
target = enableOptimizer(target, "g")
|
||||
target = enableDebug(target)
|
||||
target = enableOptimizer(target, "0")
|
||||
elif targetVariant == "devel":
|
||||
target = enableOptimizer(target, "2")
|
||||
elif targetVariant == "release":
|
||||
elif targetVariant == "fast":
|
||||
target = enableOptimizer(target, "3")
|
||||
elif targetVariant == "sanitize":
|
||||
elif targetVariant == "san":
|
||||
target = enableOptimizer(target, "g")
|
||||
target = enableDebug(target)
|
||||
target = enableSan(target)
|
||||
|
||||
return target
|
||||
|
|
Loading…
Reference in a new issue