[squeak-dev] All-in-ones

Bert Freudenberg bert at freudenbergs.de
Wed Jan 9 22:28:11 UTC 2013


On 09.01.2013, at 13:55, Frank Shearar <frank.shearar at gmail.com> wrote:

> Where did those files come from? How do you put them together? What magic plists need to have metadata updated?


It's not magic, but we are simply using the Mac OS X application bundle format:

http://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html

There is a single Info.plist for the Mac app meta data. It has been created by John McIntosh many years ago and then modified. For a new version, only the entries containing version-dependent strings need to be modified (for Etoys that's CFBundleGetInfoString, CFBundleName, CFBundleShortVersionString, and CFBundleVersion).

The image/sources go into the Contents/Resources/ folder because that's where "misc" files go in the bundle format.

Windows and Linux do not have a bundle format, so there the bundle appears just as a directory. We stuff the VMs for these platforms inside the bundle structure because the Mac just ignores the files it doesn't need.

The Linux shell script sets up the path to the right VM (e.g. Intel/ARM/64 bit) and to the image. On Windows, the VM.ini file does the same (it would be nicer if the Windows VM + plugins were in a separate directory, but I hear that is not easy). If these files had version strings in them, they would have to be updated just like the Mac's Info.plist.

So in short, the all-in-one is a Mac VM with some other VMs stuffed inside.

HTH,

- Bert -




More information about the Squeak-dev mailing list