[CMake] Small, realistic Cpack example

Shead, Timothy tshead at sandia.gov
Tue Sep 16 12:25:13 EDT 2008


On 9/16/08 9:43 AM, "Boudewijn Rempt" <boud at valdyas.org> wrote:

> On Tue, 16 Sep 2008, Shead, Timothy wrote:

>> K-3D doesn't use Qt, but it's a clean, realistic example of 3rd-parthy
>
> But still seems to want it:
>
>         INCLUDE(FindQt4)

We provide an example of an alternate-user-interface plugin, but we don't
try to install it ;)


>> packaging on Linux, Win32, and MacOS:
>>
>> # Our overall organization for packaging:
>> http://k3d.svn.sourceforge.net/viewvc/k3d/trunk/distribution/
>>
>> # Adding 3rd party libraries to the Win32 install:
>> http://k3d.svn.sourceforge.net/viewvc/k3d/trunk/distribution/win32/CMakeList
>> s.txt?revision=1357&view=markup
>>
>> # Building an NSIS installer:
>> http://k3d.svn.sourceforge.net/viewvc/k3d/trunk/distribution/win32/nsis/CMak
>> eLists.txt?revision=940&view=markup
>
> It is interesting, but definitely not a small example! I'm reading through
> the CMakeLists.txt files and the cmake modules now... Does it also package
> frameworks on OS X, btw?

Hate to say it, but I've gone through this with several projects now, and
there seems to be an irreducible lower-limit on complexity.  You can use
that first link to browse through our entire distribution hierarchy, which
organizes packaging for all three platforms:

distribution/ - source packaging, automated tagging & changelog-generation
  osx/ - installation of OSX-specific 3rd-party dependencies
    bundle/ - generating bundles
    packagemaker/ - generating packagemaker packages
  posix/ - generating binary tarballs
  win32/ - installation of Win32-specific 3rd-party dependencies
    nsis/ - generating NSIS installers

The main observation is that the INSTALL() commands for 3rd-party
dependencies vary enough between platforms that we keep them separate.
Similarly, the resources for different packaging systems (packagemaker
supports a certain subset of HTML for readmes, NSIS requires a splash image
with specific dimensions, etc) are different enough that we keep them
separate, too.

Cheers,
Tim

--
Timothy M. Shead
Scalable Analytics & Visualization (1424)
Sandia National Laboratories
505-284-0139





More information about the CMake mailing list