[CMake] Re: CMake Marketing

E. Wing ewmailing at gmail.com
Tue Dec 20 23:26:38 EST 2005


On 12/20/05, William A. Hoffman <billlist at nycap.rr.com> wrote:
> At 09:09 PM 12/20/2005, E. Wing wrote:
>
>
> >Also being able to pregenerate a stand-alone project that could be
> >copied to other systems would be a handy feature for OS X. On OS X,
> >paths are generally extremely predictable so this is actually possible
> >unlike Windows. Having an intermediate step of always having to run
> >CMake can be uninviting to new users who download some source code
> >they got on the internet for the first time. (Having to install CMake
> >is another issue, but there probably isn't much that could be done
> >about this.)
>
> Mac paths are no more or less predicable than any other OS.  The problem is
> that if you use any of the FIND_* stuff or TRY_COMPILE stuff in CMake, the
> resulting makefiles/project files can not be safely moved to another
> computer.
> autoconf gets away with this, because it uses /bin/sh, grep, and a bunch
> of other unix tools at system inspection time, and generates the makefiles
> right
> then.  So, for autotools, as long as you are on a UNIX like system, there is
> nothing extra to install.

Sorry, I should have been a little more specific: In my little subset
of the world where I use standard Apple supplied components and all
3rd party stuff is in Frameworks, and I don't need to run checks
because I know I'm on an OS X system and I know how things are
configured, then this feature is really handy. Even though this is a
subset of things, in practice, it actually comes up quite often for
me. This is how we are able to prepare Xcode projects for projects
like SDL and OpenSceneGraph. We know what's already preinstalled, and
3rd party frameworks are always installed to /Library/Frameworks or
$(HOME)/Library/Frameworks. We just add those two paths to the search
path (Xcode lets you use the variable $(HOME)), and everything
generally works everywhere. If the framework isn't installed, then the
build process fails, but it usually is pretty obvious what happened at
that point so the user knows they need to install the missing
framework.


> There are two solutions for this problem:
>
> 1. Create a minimal cmake distribution that can be distributed in source
> code
> with a project.  It would use the cmake bootstrap script to first build
> cmake for
> the project, then it would run the cmake it just built on the project.  This
> would
> only make sense for larger projects.  You would not want the build of cmake
> to take
> longer than the build of the project.  This is how Qt uses qmake.
>
> 2. CMake becomes so popular that it is installed on almost all machines by
> default.
>
I like the second option more, but I don't have control over such things.

> Although, if you are comparing CMake with Scons, scons requires both python
> and
> scons to be installed before using it.
>

I think SCons provides an embedded Python with their distribution now
if you need it.

Thanks,
Eric


More information about the CMake mailing list