2016-11-04 5:06 GMT+01:00 B. Scott Harper <[email protected]>:

> I have a project where I manage multiple architectures and switch back and
> forth frequently for testing. Full disclosure, I'm using Visual Studio. And
> since I cannot generate a single solution with multiple architectures (per
> everything I've found searching Google and the mailing list), I have two
> separate solution files (one each for x86 and x64). I often open a solution
> using the recent solutions menu, and it would be a lot easier if I could
> name the solution (cmake's "project()" command) differently for each
> architecture I use.
>
> I tried simply
>
> if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
>     set(PLATFORM_TARGET "x64")
> else()
>     set(PLATFORM_TARGET "x86")
> endif()
>
> project(My_Project_${PLATFORM_TARGER})
>
> ...however it seems that CMAKE_SIZEOF_VOID_P isn't filled out until AFTER
> the project command, so I can't use that variable as part of my
> project/solution name.
>

Yes this is a kind of chicken & eggs problem.
The size of VOID_P may not be known before the arch+compiler is known and
for that you need project (+ enable_langage) etc...

Since you already use different CMake generator for your different may be
you can check

CMAKE_GENERATOR
CMAKE_GENERATOR_PLATFORM
CMAKE_GENERATOR_TOOLSET

instead. I guess that those should be (I did not checked) defined before
project command.


> Is there another way to accomplish this? Google only returns documentation
> on the project command in general and the above method seems to be the
> preferred means of detecting build architecture.
>

This is a generator agnostic way to detect 32 vs 64 bits but

You may have a look at CMAKE_SYSTEM_xxxx variables as well, but those may
not be defined before enable language/project command as well.
However CMAKE_GENERATOR_xxx matches should be enough to name your project
properly I guess.
-- 
Eric
-- 

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to