[CMake] Minimal Info.plist

David Cole david.cole at kitware.com
Tue Apr 20 16:25:43 EDT 2010


On Tue, Apr 20, 2010 at 3:53 PM, Clinton Stimpson <clinton at elemtech.com>wrote:

> On Tuesday 20 April 2010 12:59:42 pm Timothy Shead wrote:
> > On 4/20/10 12:53 PM, Clinton Stimpson wrote:
> > > On Tuesday 20 April 2010 11:44:27 am Timothy Shead wrote:
> > >> On 4/20/10 10:11 AM, Ben Medina wrote:
> > >>> What's throwing me off is the wiki says this about the Bundle
> > >>> generator: "Rationale: de-facto standard mechanism for distributing
> > >>> bundles." Unless that's only specifically referencing the previous
> > >>> sentence about distributing a compressed disk image.
> > >>
> > >> Which it is ... not sure what the confusion is?
> > >>
> > >>> Is there any documentation about why one would choose the Bundle
> > >>> generator over DragNDrop?
> > >>
> > >> Sometimes you need more control over the contents of a bundle than
> > >> DragNDrop provides.
> > >> For example, you might have a single bundle
> > >> containing a "main", graphical UI application plus secondary helper
> > >> applications that run in the background.  BundleGenerator gives you
> > >> flexibility to create such a bundle, whereas DragNDrop would create a
> > >> dmg with several bundles, one-per-app.  Of course, the cost is greater
> > >> complexity.
> > >>
> > >> Cheers,
> > >> Tim
> > >
> > > My experience is the other way around.  DragNDrop gives me more
> control,
> > > because Bundle is a specialization of DragNDrop with some additional
> > > automatics built in.  Its fine, if you want those automatics.  I've
> done
> > > your example with DragNDrop, and no, it doesn't make several bundles,
> > > unless the CMakeLists.txt file says so.
> > > All DragNDrop does is take the results of a "make install" and put it
> in
> > > a dmg.  The Bundle generator modifies the results of "make install" and
> > > puts it in a dmg.  Its that modification that gets in my way sometimes.
> > >
> > > Also, one of my first tests of DragNDrop was making a working dmg of
> > > CMake without any modifications which was originally coded for
> > > PackageMaker (and other generators on other platforms).
> >
> > Can you give me an example using DragNDrop to combine two CMake-built
> > executables into a single bundle?  My impression (perhaps dated) is that
> > I'd have to do some magic around making one of them a "source" file of
> > the other, so I could use MACOSX_PACKAGE_LOCATION to embed it in the
> > final bundle.
>
> CMake does that (cmake and ccmake commandline apps get put into the
> cmake-gui
> bundle).
>

Yes, but cmake-gui is a "real" Mac bundle app. We just add the cmake, cpack
and ctest executables into an already functioning bundle as "extra
stuff".... Using the Bundle cpack generator to install an app that is
already a bundle would be a mistake.



> To test, just set CMAKE_INSTALL_PREFIX=/ and run "cpack -G DragNDrop" on
> it.
> Did you need a different example than that?
>
> It does a set(CMAKE_INSTALL_PREFIX=/CMake.app/Contents) trick to put
> everything in the bundle.
> Another way, which I normally do, is to pass around a variable for the
> destination on install() commands.
>

We should probably re-work the way CMake does it so that it is more
accessible to a wide audience as a good example of how to install a bundle
app on the Mac. And so that we could even use the BundleUtilities on cmake
itself and get rid of the customized one that BundleUtilities can trace its
ancestry to.... :-)


David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100420/9967609a/attachment.htm>


More information about the CMake mailing list