Setting the application name on OSX

I have my application, developed on Linux and ported to Windows, now working on OSX — it basically compiled out-of-the-box and works flawlessly. Which is great!

…except that the name of the application which appears in the Apple menus is based on the executable name, which isn’t really human readable. I’ve tried changing argv[0] before calling SDL_Init() but that doesn’t help. Is there any easy way to override this from my program?

(I’m aware that the correct way to do this is to compile my own customised copy of SDLMain.m and pass in a .nib file, but I really don’t want to do that at this stage: that will require me to set up an OSX build environment and generate app bundles and probably install xcode etc, etc. Currently I want something which can be simply integrated into my existing cross-platform command-line build system.)

You can’t do it without putting your app in an app bundle, AFAIK.

But that’s OK, because honestly that’s what you should be doing in the first place. And besides, you can’t notarize an app that isn’t in an app bundle. You can have Xcode build things from the command line, and app bundles are just folders with special layouts and certain files in the right places.

Aargh. I don’t want to have to figure out how to make app bundles to fix this one thing — this is intended to be a build-it-yourself program, or distributed by Homebrew, and I really don’t care about the Apple app ecosystem. Maybe in the future, but it’s not on the roadmap for now.