[mojosetup] CMake curses stuff [diff attached]

Gary Briggs chunky at icculus.org
Mon Mar 1 17:43:07 EST 2010


On Mon, Mar 01, 2010 at 09:03:58PM +0100, Steffen Pankratz wrote:
> 
> > # !!! FIXME: correct this to new policy and bump minimum cmake requirement.
> 
> The only line in CMakeLists.txt which triggers this policy is:
> 
> ADD_DEFINITIONS(-DAPPREV="${MOJOSETUP_VERSION}")
> 
> I did some testing:
> 
> old behavior
> -DAPPREV="hg-750:38f5bc09d1ee"
> mojosetup, revision hg-750:38f5bc09d1ee, built Mar  1 2010 20:34:11, by
> GCC 4.1.2
> 
> new behavior
> -DAPPREV=\"hg-750:38f5bc09d1ee\
> mojosetup, revision "hg-750:38f5bc09d1ee", built Mar  1 2010 20:35:42,
> by GCC 4.1.2
> 
> policy workaround removed, min cmake req set to 2.6 (new behavior is default in 2.6)
> -DAPPREV=\"hg-750:38f5bc09d1ee\"
> mojosetup, revision "hg-750:38f5bc09d1ee", built Mar  1 2010 20:29:10, by GCC 4.1.2
> 
> policy workaround removed, and "" removed (ADD_DEFINITIONS(-DAPPREV=${MOJOSETUP_VERSION}))
> -DAPPREV=hg-750:38f5bc09d1ee
> mojosetup, revision hg-750:38f5bc09d1ee, built Mar  1 2010 20:37:25, by
> GCC 4.1.2
> 
> 
> So whats the big deal?
> Worth reading:
> http://www.vtk.org/Wiki/CMake_Policies#Fixing_an_Interface_Breaks_Work-Arounds

The problems is that forcing users to use a newer build tool than the
one in their system repository really sucks. Ubuntu still has a really
old version of 2.6 in 9.04; fink also has a really old version of 2.6
[or 2.4 if you use the binary version]. gamehenge has 2.6 installed :-)

There's a magical fix that works for all versions of cmake with all
generated build types, which is the extra config.h file. Thus, that's
the one I use for my own projects.

You are correct that in the ideal world, we'd set a version 2.8
requirement, and use the new standard. I don't feel that adds anything
over the config.h approach, but I do feel that it subtracts for
certain users [until 2.8 becomes the standard version in ubuntu, fink,
fedora, etc]

Gary (-;


More information about the mojosetup mailing list