autc04 / Retro68

a gcc-based cross-compiler for classic 68K and PPC Macintoshes
GNU General Public License v3.0
537 stars 51 forks source link

Specifying an output filename #228

Closed kargaroc closed 5 months ago

kargaroc commented 5 months ago

Okay so I'm aware that you can set the project name, and then that becomes the name of the final executable, but it seems to be linked to the name of the generated output file on the host side. So, say, game.dsk contains game within it. But sometimes, you don't want the two to be exactly the same. On the old Mac you can do crazy stuff with filenames without worrying about it because barely anything breaks. But the host side tends to be more sensitive to weird filenames. So that leads to the question, can I get Rez to generate a disk image of one name, containing an executable of another name? Say, output.dsk containing Wonderful Exciting Game!!! (or whatever) (I'm not using cmake, but I'm not sure that actually matters in this case)

autc04 commented 5 months ago

At this moment, the file name inside the disk image is always the disk image file. Outputting as .dsk is implemented as just another file format in the ResourceFiles library. One would need to add file-format specific options to Rez (something like --mac-file-name=XXX) and pass them along to ResourceFiles.

On the other hand, the disk image support in ResourceFiles is just a very thin wrapper around the hfs library in hfsutil, which also comes with some command line tools. So you could have Rez create your app in MacBinary format, and then use the hformat command to create a disk image and hcopy to put your file on it.