[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