mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
ef9d2655ca
CMAKE_CL_64 will never be set when cross-compiling with clang-cl, since CMake relies on an actual VS environment in order to determine it. Instead, use the size of a void pointer to determine the bit width of the host compiler (and therefore the host triple), which works for both native and cross compilation. Note that, with the impending advent of Windows on AArch64, assuming that a 64-bit host == x86_64 isn't correct either, but that's something to be addressed in a follow-up. Differential Revision: https://reviews.llvm.org/D41155 llvm-svn: 320615
30 lines
857 B
CMake
30 lines
857 B
CMake
# Returns the host triple.
|
|
# Invokes config.guess
|
|
|
|
function( get_host_triple var )
|
|
if( MSVC )
|
|
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
|
set( value "x86_64-pc-win32" )
|
|
else()
|
|
set( value "i686-pc-win32" )
|
|
endif()
|
|
elseif( MINGW AND NOT MSYS )
|
|
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
|
set( value "x86_64-w64-mingw32" )
|
|
else()
|
|
set( value "i686-pc-mingw32" )
|
|
endif()
|
|
else( MSVC )
|
|
set(config_guess ${LLVM_MAIN_SRC_DIR}/cmake/config.guess)
|
|
execute_process(COMMAND sh ${config_guess}
|
|
RESULT_VARIABLE TT_RV
|
|
OUTPUT_VARIABLE TT_OUT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if( NOT TT_RV EQUAL 0 )
|
|
message(FATAL_ERROR "Failed to execute ${config_guess}")
|
|
endif( NOT TT_RV EQUAL 0 )
|
|
set( value ${TT_OUT} )
|
|
endif( MSVC )
|
|
set( ${var} ${value} PARENT_SCOPE )
|
|
endfunction( get_host_triple var )
|