On 06/09/14 16:02, Alexey Petruchik wrote:
> I want to use different library folders for x64/x86/arm architectures.
> Cmake has different generators for each arch: "Visual Studio 12
> 2013", "Visual Studio 12 2013 ARM", "Visual Studio 12 2013 Win64". Is there
> any cmake var to get visual studio target arch? CMAKE_SYSTEM_PROCESSOR is
> always AMD64 for me no matter what generator I'm using.
All the already available stuff in cmake is not sufficient. Especially
if you start to cross compile.
I use the pre-defined C/C++ preprocessor symbols for that:
include(CheckSymbolExists)
if(WIN32)
check_symbol_exists("_M_AMD64" "" RTC_ARCH_X64)
if(NOT RTC_ARCH_X64)
check_symbol_exists("_M_IX86" "" RTC_ARCH_X86)
endif(NOT RTC_ARCH_X64)
# add check for arm here
# see http://msdn.microsoft.com/en-us/library/b0084kay.aspx
else(WIN32)
check_symbol_exists("__i386__" "" RTC_ARCH_X86)
check_symbol_exists("__x86_64__" "" RTC_ARCH_X64)
check_symbol_exists("__arm__" "" RTC_ARCH_ARM)
endif(WIN32)
Now you could write:
if(RTC_ARCH_X64)
set(MY_LIB_DIR x64)
elseif(RTC_ARCH_X86)
set(MY_LIB_DIR x86)
elseif(RTC_ARCH_ARM)
set(MY_LIB_DIR x86)
else()
message(FATAL_ERROR "Unknown architecture")
endif()
I hope this helps.
Thanks,
Gregor
--
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