On Aug 17, 2009, at 2:16 PM, Michael Wild wrote:


On 17. Aug, 2009, at 18:40, Michael Jackson wrote:


On Aug 17, 2009, at 12:30 PM, ML wrote:

Hi Mike,

The double __LP64__ is making sure it (__LP64__) is both DEFINED and TRUE.

# if defined ((__APPLE__)) && defined(__LP64__) && __LP64__
typedef CIconHandle  OSColorIcon;  // Mac CIcon
#else

To to help me fine tune a bit..

Wouldn't (__APPLE__) be automatically defined if I am compiling on OS X?

Is there a place where I can see what others like __LP64__ are available?

-Jason



The last email will default to 32 bit i386 compiles:

echo | gcc -arch x86_64 -E -dM -

for 64 bit intel builds

Mike


My favorite for i386 is:

gcc -arch i386 -E -dM - < /dev/null

if I want to see the x86_64 stuff I do

gcc -arch x86_64 -E -dM - < /dev/null


If you want to force a 32 bit compile, set the CMAKE_OSX_ARCHITECTURES variable to i386 and/or ppc and you're done! You can check that you're compiling for 32 bit in your source files, but you can't FORCE it. You have to do that in your build system. You can do something like this in your CMake-code:

list( FIND CMAKE_OSX_ARCHITECTURES x86_64 __HAS_X86_64 )
list( FIND CMAKE_OSX_ARCHITECTURES ppc64 __HAS_PPC64 OR CMAKE_SIZEOF_VOID_P EQUALS 8 )
if( __HAS_X86_64 OR __HAS_PPC64 OR )
message( SEND_ERROR "NO 64-bit architectures allowed! Adjust CMAKE_OSX_ARCHITECTURES" )
endif()

Michael

he _could_ force an error on 64 bit compile:

#if defined (__LP64__) && (__LP64__)
#error NO 64 BIT COMPILES ALLOWED.
#endif

I agree that catching it at the build system level would be better but if he _really_ wanted to stop the compilation dead in its tracks then the above _should_ do the trick.

Mike Jackson

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to