12 Commits

Author SHA1 Message Date
quarrel07 aa6c9c10ca macOS: package the game as a proper SpaghettiKart.app bundle (#724)
* macOS: package the game as a proper SpaghettiKart.app bundle

Turns the bare Spaghettify executable into a self-contained SpaghettiKart.app:

- cmake/macos/apple_bundle.cmake: bundle metadata (using the existing
  Info.plist, which already described a bundle), app icon, runtime resources
  (config.yml, yamls, meta, spaghetti.o2r) into Contents/Resources, dylib
  relinking for local Homebrew builds (no-op with static vcpkg deps), and
  ad-hoc codesigning so the app launches without 'damaged app' warnings
- App icon: on Xcode 26+ the Icon Composer package (SpaghettiKartIcon.icon,
  drawn from the existing HM ship-kart icon.png art) compiles with actool
  into an Assets.car, giving the native Liquid Glass look on macOS 26+, plus
  a flattened icns for older systems; older Xcode falls back to the previous
  sips/iconutil flat icon. Supersedes the CreateOSXIcons target.
- Game.cpp: default SHIP_HOME to ~/Library/Application Support/SpaghettiKart
  on macOS so first-run extraction, saves, config, and mods land there
  instead of scattering into the user's home folder; a user-set SHIP_HOME
  still wins
- Info.plist: NSHighResolutionCapable for proper Retina rendering
- CI: mac jobs now ship the .app (ditto zip so the executable bit survives
  artifact upload)
- the yamls-next-to-exe copy is scoped to non-Darwin; on macOS those files
  live in Contents/Resources instead

* macOS: ship prebuilt icon artifacts instead of compiling them at build time

Commits the compiled Assets.car (Liquid Glass icon for macOS 26+) and the
flattened SpaghettiKart.icns, both built from the in-repo Icon Composer
package. The build now just copies them into the bundle, which removes the
actool machinery and the Xcode 26 requirement entirely: every build on any
machine, including CI, gets the real icon.

Also adds a staleness guard: the artifacts carry a hash stamp of the
icon.png they were made from, and if icon.png ever changes without them
being regenerated, the build automatically generates a flat icns from the
current icon.png instead, so updating the logo never requires any macOS
work and an outdated icon can never ship. Regeneration steps are documented
in apple_bundle.cmake.

* Rename the icon layer to ship-kart-layer.png

Group 2.png was the design tool's default layer name; name it for what it
is. Verified the Icon Composer package still compiles with actool after the
rename; the committed Assets.car is unaffected (compiled, self-contained).

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2026-08-01 19:35:51 -06:00
coco875 4c24ae2bc2 Refactor cmake (#721)
* some start of refactor

* Update SetFlags.cmake

* Update SetCmakeVar.cmake

* Update SetFlags.cmake

* Fix error int-convertion

* more refactor

* clean up include and source file

* fix link of lib

* fix a warning

* fix include in src/actors

* fix include in src/debug

* fix include in src/ending

* fix include in src/engine/actors

* fix include in src/engine/cameras

* fix include in src/engine/editor

* fix include in src/engine/objects

* fix include in src/engine/tracks

* fix include in src/port/ui

* fix include in src/racing

* fix include in src/engine/vehicles

* fix include in subfolder of src/engine

* fix include in src/engine

* fix include in src/enhancements

* fix include in src

* fix switch

* invert common and findlib

* Update SetFlags.cmake

* clean up some workflow

* some splification

* Update build.sh

* Update Game.h

* add header back

* Delete test_check.cmake

* continue

* Update common.cmake
2026-07-22 18:02:58 -06:00
coco875 73a7938046 use matrix instead 2025-07-19 14:10:51 +02:00
Thomas Rohloff 859835a162 Rename PR workflows
Signed-off-by: Thomas Rohloff <v10lator@myway.de>
2025-07-19 13:08:19 +02:00
Thomas Rohloff 425d6cdffb Add debug workflows
Signed-off-by: Thomas Rohloff <v10lator@myway.de>
2025-07-19 13:01:27 +02:00
V10lator 4c6e68aa8a Add version and debug state (#437)
* cmake: Correctly set PROJECT_VERSION

This needs CI to adjust

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Log version

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Show version and debug state

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Log debug mode toggling

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Finish version string

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Update CMakeLists.txt

* Update CMakeLists.txt

* Try to fix execute_process() from within CI

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* CI: Checkout with tags

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Fix PR CIs, too

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

* Add config button for version

Signed-off-by: Thomas Rohloff <v10lator@myway.de>

---------

Signed-off-by: Thomas Rohloff <v10lator@myway.de>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-07-13 13:26:50 -06:00
Maciek Baron 3585aa7ae4 Fix MacOS build in GitHub workflow (#415) 2025-07-04 15:16:36 -06:00
Nikita 8132405bab Add vcpkg.json, change MacOS CI to use that (#346)
* add vcpkg support for installing dependencies

* Change macos CI to use vcpkg for dependencies

* actually fix CI for macos

* fix SDL_net linking

SDL_net was being linked twice

* update baseline
2025-06-24 10:50:46 -06:00
TheOliveOli 9a9a18999d Build macOS release as Universal Binary (#267)
* Update CMakeLists.txt

* Edit output filename to reflect building as Universal binary
2025-06-21 17:37:31 -06:00
Lywx bdf5ca8d60 Updated MacOS build 2025-05-15 20:43:18 -06:00
MegaMech bb90ff8531 Fix Compile (#188)
* Fix freecam rotation smoothing

* Configure freecam controller

* Fix cont z button and impl freecam on/off events

* Add torch static comp

* Fixed cmake

* Copied yamls

* Fixed cmake

* Added github workflows

* Update CMakeLists.txt

---------

Co-authored-by: KiritoDv <kiritodev01@gmail.com>
2025-02-07 23:48:36 -07:00
coco875 e2c19fd4bc use github actions instead (#605)
* Create actions
2024-04-12 18:54:59 -06:00