Fix NSIS installer build: absolute paths via defines, space-free installed exe, BMP ICO
Full build / Import + headless tests (push) Successful in 31s
Full build / Full desktop build + optional release (push) Successful in 3m44s

- makensis resolves relative -DICON/-DARTIFACT against the script directory,
  so CI now passes $PWD-based absolute paths (reproduced locally in the same
  ubuntu:24.04 container; installer builds, 7z shows step-line.exe +
  uninstall.exe)
- Install as step-line.exe (no spaces: NSIS /oname splits on whitespace)
- OutFile overridable via -DOUT
- tools/generate_textures.py icon.ico now produced via ImageMagick with
  classic BMP entries (NSIS-compatible); PIL PNG-compressed ICOs rejected by
  NSIS
This commit is contained in:
zwitschi committed 2026-10-31 14:22:55 +01:00
1 parent 8bc84c1f36
commit 0f076205af
12 files changed
+41 -15

No files matched your search

+5 -3
View File
@@ -140,7 +140,7 @@ func _init() -> void:
# --- body-camera overlay (REC + shift clock + corner brackets, top right) ---
var cam_box := VBoxContainer.new()
cam_box.set_anchors_preset(Control.PRESET_TOP_RIGHT)
cam_box.position = Vector2(-180, 12)
cam_box.position = Vector2(-180, 50)
cam_box.alignment = BoxContainer.ALIGNMENT_END
add_child(cam_box)
var rec_row := HBoxContainer.new()
@@ -380,6 +380,7 @@ func show_inspection(controller: Object, artifacts: Array, result: Dictionary) -
continue
var card := TextureRect.new()
card.texture = tex
card.expand_mode = TextureRect.EXPAND_IGNORE_SIZE
card.custom_minimum_size = Vector2(92, 58)
card.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
card.tooltip_text = artifact.summary()
@@ -388,7 +389,8 @@ func show_inspection(controller: Object, artifacts: Array, result: Dictionary) -
card_row.add_child(card)
added_card = true
if added_card:
inspect_panel.add_child(card_row)
var content := inspect_panel.get_child(0) as VBoxContainer
content.add_child(card_row)
var lines: Array[String] = []
for artifact in artifacts:
lines.append(" • " + artifact.summary())
@@ -409,7 +411,7 @@ func _clear_card_row() -> void:
return
var row := inspect_panel.find_child("INSPECT_CARD_ROW", true, false) as Control
if row:
inspect_panel.remove_child(row)
row.get_parent().remove_child(row)
row.queue_free()
func show_wand(controller: Object, result: Dictionary) -> void: