[CMake] Configure Mac OS X for 32-bit
Karl Merkley
karl at elemtech.com
Mon May 3 12:27:35 EDT 2010
On May 3, 2010, at 10:11 AM, Sean McBride wrote:
> On Mon, 3 May 2010 09:59:36 -0600, Karl Merkley said:
>
>> I just read through this entire thread and I would like to expand it a
>> little. Regardless of platform, what is the right way to determine the
>> right build architecture? I run on a 32 bit Linux box but I use distcc
>> which distributes the build to some 64 bit machines. I always just
>> edit the CMakeCache.txt manually and add the -m32 flag. Some of my
>> customers don't like that approach and would like to automate the
>> decision for Mac, Linux and Windows. So I need to determine whether the
>> platform that cmake runs on is 32 bit or 64 bit and then set the correct
>> flags for that platform.
>
> For Mac anyway, the 32/64 'bitness' of the building machine is
> irrelevant. PPC Macs can build Intel code, 32 bit Macs can build 64 bit
> code, and vice versa, and etc.
>
> Your code needs to be written such that it 1) supports both endiannesses
> 2) understands both 32 and 64 bit pointers 3) doesn't make invalid
> assumptions about the size of int, long, void*, etc. Only if your code
> is properly written can it be built as either 32 or 64 bit. Then I
> guess the person doing the building also has to decide which kinds of
> machines he's building for.
The code currently builds and runs in 32 or 64 bit on Linux, Mac and Windows. What I would like to be able to do is to detect the build environment that the user starts cmake in and configure correctly for that environment. For example, if I am building on my 32-bit Linux box I want to detect that gcc needs the -m32 flag and have that added automatically to my build process without having the user specify the architecture. I'm not looking at supporting cross-platform builds on one system, I just want to build correctly on the system that the user starts the build on without any further user intervention. It should work the same way if I am on my older Intel MacBook or a 64-bit Windows system.
-- Karl
More information about the CMake
mailing list