Skip to content

Commit 836c883

Browse files
committed
Merge remote-tracking branch 'dtk-template/main' into pr/dtk-template
2 parents 711349d + 2f94ccb commit 836c883

File tree

2 files changed

+31
-30
lines changed

2 files changed

+31
-30
lines changed

configure.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@
167167
config.binutils_tag = "2.42-1"
168168
config.compilers_tag = "20240706"
169169
config.dtk_tag = "v0.9.6"
170-
config.objdiff_tag = "v2.0.0-beta.6"
170+
config.objdiff_tag = "v2.0.0"
171171
config.sjiswrap_tag = "v1.1.1"
172172
config.wibo_tag = "0.6.11"
173173

tools/project.py

+30-29
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,13 @@ def is_windows() -> bool:
213213
EXE = ".exe" if is_windows() else ""
214214

215215

216-
def make_flags_str(cflags: Union[str, List[str]]) -> str:
217-
if isinstance(cflags, list):
218-
return " ".join(cflags)
216+
def make_flags_str(flags: Optional[Union[str, List[str]]]) -> str:
217+
if flags is None:
218+
return ""
219+
elif isinstance(flags, list):
220+
return " ".join(flags)
219221
else:
220-
return cflags
222+
return flags
221223

222224

223225
# Load decomp-toolkit generated config.json
@@ -234,14 +236,14 @@ def versiontuple(v: str) -> Tuple[int, ...]:
234236
build_config: Dict[str, Any] = json.load(f)
235237
config_version = build_config.get("version")
236238
if config_version is None:
237-
# Invalid config.json
239+
print("Invalid config.json, regenerating...")
238240
f.close()
239241
os.remove(build_config_path)
240242
return None
241243

242244
dtk_version = str(config.dtk_tag)[1:] # Strip v
243245
if versiontuple(config_version) < versiontuple(dtk_version):
244-
# Outdated config.json
246+
print("Outdated config.json, regenerating...")
245247
f.close()
246248
os.remove(build_config_path)
247249
return None
@@ -282,7 +284,7 @@ def generate_build_ninja(
282284
# Variables
283285
###
284286
n.comment("Variables")
285-
n.variable("ldflags", " ".join(config.ldflags or []))
287+
n.variable("ldflags", make_flags_str(config.ldflags))
286288
if config.linker_version is None:
287289
sys.exit("ProjectConfig.linker_version missing")
288290
n.variable("mw_version", Path(config.linker_version))
@@ -1188,7 +1190,6 @@ def generate_objdiff_config(
11881190
}
11891191

11901192
# decomp.me compiler name mapping
1191-
# Commented out versions have not been added to decomp.me yet
11921193
COMPILER_MAP = {
11931194
"GC/1.0": "mwcc_233_144",
11941195
"GC/1.1": "mwcc_233_159",
@@ -1365,16 +1366,11 @@ class ProgressUnit:
13651366
def __init__(self, name: str) -> None:
13661367
self.name: str = name
13671368
self.code_total: int = 0
1368-
self.code_fancy_frac: int = config.progress_code_fancy_frac
1369-
self.code_fancy_item: str = config.progress_code_fancy_item
13701369
self.code_progress: int = 0
13711370
self.data_total: int = 0
1372-
self.data_fancy_frac: int = config.progress_data_fancy_frac
1373-
self.data_fancy_item: str = config.progress_data_fancy_item
13741371
self.data_progress: int = 0
1375-
self.objects_progress: int = 0
1376-
self.objects_total: int = 0
13771372
self.objects: Set[Object] = set()
1373+
self.objects_progress: int = 0
13781374

13791375
def add(self, build_obj: Dict[str, Any]) -> None:
13801376
self.code_total += build_obj["code_size"]
@@ -1384,7 +1380,6 @@ def add(self, build_obj: Dict[str, Any]) -> None:
13841380
include_object = build_obj["name"] not in self.objects
13851381
if include_object:
13861382
self.objects.add(build_obj["name"])
1387-
self.objects_total += 1
13881383

13891384
if build_obj["autogenerated"]:
13901385
# Skip autogenerated objects
@@ -1460,33 +1455,39 @@ def add_unit(id: str, unit: Dict[str, Any]) -> None:
14601455
print("Progress:")
14611456

14621457
for unit in progress_units.values():
1463-
if unit.objects_total == 0:
1458+
if len(unit.objects) == 0:
14641459
continue
14651460

14661461
code_frac = unit.code_frac()
14671462
data_frac = unit.data_frac()
14681463
print(
1469-
f" {unit.name}: {code_frac:.2%} code, {data_frac:.2%} data ({unit.objects_progress} / {unit.objects_total} files)"
1464+
f" {unit.name}: {code_frac:.2%} code, {data_frac:.2%} data ({unit.objects_progress} / {len(unit.objects)} files)"
14701465
)
14711466
print(f" Code: {unit.code_progress} / {unit.code_total} bytes")
14721467
print(f" Data: {unit.data_progress} / {unit.data_total} bytes")
1473-
if config.progress_use_fancy:
1474-
code_items = math.floor(code_frac * unit.code_fancy_frac)
1475-
print(
1476-
"\nYou have {} out of {} {} and {} out of {} {}.".format(
1477-
math.floor(code_frac * unit.code_fancy_frac),
1478-
unit.code_fancy_frac,
1479-
unit.code_fancy_item,
1480-
math.floor(data_frac * unit.data_fancy_frac),
1481-
unit.data_fancy_frac,
1482-
unit.data_fancy_item,
1483-
)
1468+
1469+
if config.progress_use_fancy:
1470+
unit = progress_units.get("all") or progress_units.get("dol")
1471+
if unit is None or len(unit.objects) == 0:
1472+
return
1473+
1474+
code_frac = unit.code_frac()
1475+
data_frac = unit.data_frac()
1476+
print(
1477+
"\nYou have {} out of {} {} and {} out of {} {}.".format(
1478+
math.floor(code_frac * config.progress_code_fancy_frac),
1479+
config.progress_code_fancy_frac,
1480+
config.progress_code_fancy_item,
1481+
math.floor(data_frac * config.progress_data_fancy_frac),
1482+
config.progress_data_fancy_frac,
1483+
config.progress_data_fancy_item,
14841484
)
1485+
)
14851486

14861487
# Generate and write progress.json
14871488
progress_json: Dict[str, Any] = {}
14881489
for id, unit in progress_units.items():
1489-
if unit.objects_total == 0:
1490+
if len(unit.objects) == 0:
14901491
continue
14911492
progress_json[id] = {
14921493
"code": unit.code_progress,

0 commit comments

Comments
 (0)