[CMake] Detecting 32/64 bit systems

Yngve Inntjore Levinsen yngve.levinsen at gmail.com
Mon Feb 14 03:57:14 EST 2011


I have done the same thing myself, using size of INT instead of P which is of course following the exact same logic. 
After attempting several strategies I found this one to be the safest way to detect 32/64bit systems, so I recommend using SIZEOF as well.

Cheers,
Yngve

On Sunday 13 February 2011 08:00:41 PM Ryan Pavlik wrote:
> Yep CMAKE_SIZEOF_VOID_P will be 4 if you've chosen a generator like "Visual
> Studio 9.0 2008", and 8 if you've chosen "Visual Studio 9.0 2008 Win64"
> 
> Ryan
> 
> On Sat, Feb 12, 2011 at 11:41 AM, Dominik Szczerba <dominik at itis.ethz.ch>wrote:
> 
> > Quite right.
> >
> > So you claim that on Windows CMAKE_SIZEOF_VOID will tell me the
> > *target* build system, not the physical one, while it will mach
> > CMAKE_SYSTEM_PROCESSOR if the both are the same?
> >
> > Many thanks for the clarification.
> >
> > Dominik
> >
> > On Sat, Feb 12, 2011 at 6:34 PM, Ryan Pavlik <rpavlik at iastate.edu> wrote:
> > > CMAKE_SIZEOF_VOID_P will tell you the difference between target
> > bit-widths:
> > > 8 (for 64 bit) vs 4 (for 32 bit) - remember that just because you're
> > running
> > > on a 64-bit system doesn't mean you're compiling a 64-bit binary.
> > > Ryan
> > >
> > > On Sat, Feb 12, 2011 at 11:29 AM, Dominik Szczerba <dominik at itis.ethz.ch
> > >
> > > wrote:
> > >>
> > >> OK, got it experimentally. You have
> > >>
> > >> CMAKE_SYSTEM_PROCESSOR
> > >>
> > >> But wait, is the description below correct?
> > >>
> > >> http://www.cmake.org/Wiki/CMake_Useful_Variables
> > >>
> > >> Opposed to the explanations there, which I saw, but took as not what I
> > >> need, on my systems it amounts to i686 and x86_64, exactly what I
> > >> need.
> > >>
> > >> Dominik
> > >>
> > >> On Sat, Feb 12, 2011 at 6:19 PM, Dominik Szczerba <dominik at itis.ethz.ch
> > >
> > >> wrote:
> > >> > Hi,
> > >> >
> > >> > I can't really find a clear solution in google: how would one go about
> > >> > detecting if the system is 32 or 64 bit? There are UNIX, WIN32 etc.
> > >> > flags, but nothing really for the architecture.
> > >> >
> > >> > Thanks a lot,
> > >> > Dominik
> > >> >
> > >> _______________________________________________
> > >> 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
> > >
> > >
> > >
> > > --
> > > Ryan Pavlik
> > > HCI Graduate Student
> > > Virtual Reality Applications Center
> > > Iowa State University
> > >
> > > rpavlik at iastate.edu
> > > http://academic.cleardefinition.com
> > > Internal VRAC/HCI Site: http://tinyurl.com/rpavlik
> > >
> >
> 
> 
> 
> 


More information about the CMake mailing list