[CMake] cpack bundle generator qq
Michael Jackson
mike.jackson at bluequartz.net
Fri Jan 16 11:12:54 EST 2009
On Jan 16, 2009, at 11:01 AM, Clinton Stimpson wrote:
> Michael Jackson wrote:
>> On Jan 16, 2009, at 10:06 AM, Mike Arthur wrote:
>>
>>> On Friday 16 January 2009 15:05:55 Clinton Stimpson wrote:
>>>> Another question, can I have the bundle generator make another sub
>>>> folder, then I put two .app bundles in there, then when the user
>>>> opens
>>>> the dmg, they see one folder they can drag to their /Applications
>>>> which
>>>> contains multiple .app's. But there's still the problem of
>>>> specifying
>>>> different plist, icons, etc... from global variables instead of
>>>> just
>>>> using the ones I already set on the executables.
>>>>
>>>> Or does it not make sense to create installers like this?
>>> I think it makes sense, personally, but the Bundle generator
>>> doesn't support
>>> it. If you wanted to do it that way I guess I'd add component
>>> support (like
>>> the PackageMaker/NSIS installers support) to the Bundle generator.
>>>
>>> --
>>> Cheers,
>>> Mike Arthur
>>> http://mikearthur.co.uk/
>>
>> You may end up having to create a shell script to create your
>> distribution. Have CMake configure the shell script appropriately
>> and then have CMake run the shell script to move everything into
>> the proper location when CPack runs.
>
> I've already done this, so when I do a "make install," I get all my
> bundles with install names fixed, with prerequisites, etc... It
> works fine with CPack/PackageMaker generator which also makes the
> top level folder to contain all the apps, so it installs nicely
> except for a root ownership problem. But it doesn't work with the
> CPack/Bundle generator since it tries to re-bundle the bundles that
> I've already got. I guess I could take the last two easy steps,
> make the /Applications link and the dmg myself. Seems to me those
> two steps is all the cpack bundle generator needs to be doing, and
> the rest of the work of creating the bundle be done by the "make
> install" step. No? Maybe a new cpack/dmg generator that just takes
> what make install gives, optionally adds a softlink such as /
> Applications, and makes a dmg?
>
> I was impressed that what I had done to make a nice NSIS installer
> also worked just fine with PackageMaker. I like that consistency.
> I didn't see that with the bundle generator.
>
> Clint
>
There was talk long ago (maybe on the ParaView list) about making a
DMG generator for CPack. My personal opinion is that developers that
are creating straight forward OS X applications that _only_ need to be
installed into /Applications or where ever the user wants should be
using a Drag and Drop DMG installer and NOT the actual OS X installer.
For more complex applications that require putting files in several
locations (like data base apps, server apps .. ) need the power of the
actual installer.
I think there are places on the internet with example scripts and
such that create the DMG, copy files and then close the DMG file. I
think Apple even has some examples of DMG's that present the a license
agreement when they are launched. I think the FireFox repository has
some scripts that might be useful. Also using a DMG for Drag and Drop
installation makes the ownership less of an issue although it should
really be set correctly to root:admin as it would only be your apps
top level folder with the wrong permissions and NOT the entire /
Applications folder.
Mike
More information about the CMake
mailing list