Skip to content

ci(macos): Add App Bundle artifacts and runtime data discovery#2050

Closed
TmLev wants to merge 2 commits into
OpenXRay:devfrom
TmLev:tmlev/1780-macos-app-bundle
Closed

ci(macos): Add App Bundle artifacts and runtime data discovery#2050
TmLev wants to merge 2 commits into
OpenXRay:devfrom
TmLev:tmlev/1780-macos-app-bundle

Conversation

@TmLev

@TmLev TmLev commented Feb 11, 2026

Copy link
Copy Markdown
Contributor
  • Add macOS Release CI step that creates OpenXRay.app plus .app.zip and .dmg artifacts

  • Install dylibbundler on macOS runners and include bundle step success in artifact upload gating

  • Add misc/macos/make_app_bundle.sh to assemble bundle, bundle dylibs, and package outputs

  • Bundle only open-source resources from repository (res/fsgame.ltx and res/gamedata), no proprietary game assets

  • Add macOS runtime best-effort data resolution for app bundles: check App Support, app-neighbor root, common install paths, then prompt user to choose folder

  • When bundle resources exist, use in-bundle openxray resources for fsgame.ltx and shaders symlink targets

- Add macOS Release CI step that creates OpenXRay.app plus .app.zip and
.dmg artifacts

- Install `dylibbundler` on macOS runners and include bundle step
success in artifact upload gating

- Add `misc/macos/make_app_bundle.sh` to assemble bundle, bundle dylibs,
and package outputs

- Bundle only open-source resources from repository (`res/fsgame.ltx`
and `res/gamedata`), no proprietary game assets

- Add macOS runtime best-effort data resolution for app bundles: check
App Support, app-neighbor root, common install paths, then prompt user
to choose folder

- When bundle resources exist, use in-bundle openxray resources for
`fsgame.ltx` and shaders symlink targets

@Xottab-DUTY Xottab-DUTY left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to reuse the functionality available in CMake?

Comment thread src/xrCore/LocatorAPI.cpp
xr_sprintf(tmp_link, "%s/fsgame.ltx", resourcesRoot);
else
#endif
xr_sprintf(tmp_link, "%s/openxray/fsgame.ltx", CMAKE_INSTALL_FULL_DATAROOTDIR);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always enclose the else body into {} when if and else are under the #ifdef.

Suggested change
xr_sprintf(tmp_link, "%s/openxray/fsgame.ltx", CMAKE_INSTALL_FULL_DATAROOTDIR);
{
xr_sprintf(tmp_link, "%s/openxray/fsgame.ltx", CMAKE_INSTALL_FULL_DATAROOTDIR);
}

Comment thread src/xrCore/LocatorAPI.cpp
xr_sprintf(tmp_link, "%s/gamedata/shaders/gl", resourcesRoot);
else
#endif
xr_sprintf(tmp_link, "%s/openxray/gamedata/shaders/gl", CMAKE_INSTALL_FULL_DATAROOTDIR);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always enclose the else body into {} when if and else are under the #ifdef.

Suggested change
xr_sprintf(tmp_link, "%s/openxray/gamedata/shaders/gl", CMAKE_INSTALL_FULL_DATAROOTDIR);
{
xr_sprintf(tmp_link, "%s/openxray/gamedata/shaders/gl", CMAKE_INSTALL_FULL_DATAROOTDIR);
}

@TmLev

TmLev commented Feb 11, 2026

Copy link
Copy Markdown
Contributor Author

Appreciate the early review, but this is still in draft :)

@TmLev TmLev closed this May 1, 2026
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Roadmap May 1, 2026
@TmLev

TmLev commented May 1, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #2090.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants