[CMake] OS X architecture changes interfere with CheckTypeSize()?

Erik Lindahl lindahl at cbr.su.se
Wed Aug 11 12:08:35 EDT 2010


Hi cmake-list,

We've run into a minor problem when adapting our source code Gromacs to use CMake for the default build environment.

CMake 2.8 doesn't use any string for the default OS X architecture, which on Snow Leopard is interpreted as the default x86_64.
All the CheckTypeSize() tests then seem to run directly when e.g. ccmake is invoked, and they thus set all SIZEOF_XXX defines to the 64-bit values (e.g. 8 for "long int").

Even if I set the architecture to "i386" the very first thing I do in ccmake, the 64-bit values appear to be cached(?), and we then happily continue to create a 32-bit build with 64-bit SIZEOF_XXX values, which tends to break things in a hard way :-)

If we use -DCMAKE_OSX_ARCHITECTURES=i386 on the command line when starting a new build tree everything works fine.  


Is there any way we can work around this? My main worry is that people will simply start ccmake, set the architecture, and then produce a bad build without getting any warnings about it... 
(we tend to use i386 pretty frequently since we need to create compatible versions for distributed computing).


Cheers,

Erik 

----------------------------------------------------------
Erik Lindahl <lindahl at cbr.su.se>
Professor, Computational Structural Biology
Center for Biomembrane Research & Swedish e-Science Research Center
Department of Biochemistry & Biophysics, Stockholm University
Tel: +468164675 Cell: +46703844534



More information about the CMake mailing list