61 lines
1.3 KiB
Python
61 lines
1.3 KiB
Python
def build_target_dag(project, targets):
|
|
|
|
dag = []
|
|
|
|
for target in targets:
|
|
|
|
dag.append({
|
|
"name": f"{target.system}-{target.arch}",
|
|
"target": target,
|
|
"steps": generate_steps(project, target)
|
|
})
|
|
|
|
return dag
|
|
|
|
|
|
def generate_steps(project, target):
|
|
|
|
steps = []
|
|
|
|
# -----------------------------
|
|
# SYSTEM-SPECIFIC BUILD LOGIC
|
|
# -----------------------------
|
|
|
|
if target.system == "gentoo":
|
|
steps.append({
|
|
"name": "emerge",
|
|
"command": f"emerge -e {project['name']}"
|
|
})
|
|
|
|
elif target.system == "buildroot":
|
|
steps.append({
|
|
"name": "buildroot",
|
|
"command": "make"
|
|
})
|
|
|
|
elif target.system == "openwrt":
|
|
steps.append({
|
|
"name": "openwrt",
|
|
"command": "make world"
|
|
})
|
|
|
|
elif target.system == "alfs":
|
|
steps.append({
|
|
"name": "alfs",
|
|
"command": "./build-lfs.sh"
|
|
})
|
|
|
|
elif target.system == "sourcemage":
|
|
steps.append({
|
|
"name": "sorcery",
|
|
"command": "cast " + project["name"]
|
|
})
|
|
|
|
elif target.system == "lunar":
|
|
steps.append({
|
|
"name": "lunar",
|
|
"command": "lunar build " + project["name"]
|
|
})
|
|
|
|
return steps
|