forked from OSchip/llvm-project
54 lines
1.5 KiB
CMake
54 lines
1.5 KiB
CMake
# Define functions to get the host and target triple.
|
|
|
|
function(get_host_triple out out_arch out_vendor out_os)
|
|
# Get the architecture.
|
|
set(arch ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
|
if (arch STREQUAL "x86")
|
|
set(arch "i686")
|
|
endif()
|
|
# Get the vendor.
|
|
if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
|
|
set(vendor "apple")
|
|
else()
|
|
set(vendor "pc")
|
|
endif()
|
|
# Get os.
|
|
if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
|
|
set(os "win32")
|
|
else()
|
|
string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} os)
|
|
endif()
|
|
set(triple "${arch}-${vendor}-${os}")
|
|
set(${out} ${triple} PARENT_SCOPE)
|
|
set(${out_arch} ${arch} PARENT_SCOPE)
|
|
set(${out_vendor} ${vendor} PARENT_SCOPE)
|
|
set(${out_os} ${os} PARENT_SCOPE)
|
|
message(STATUS "Host triple: ${triple}")
|
|
endfunction()
|
|
|
|
function(get_target_triple out out_arch out_vendor out_os)
|
|
# Get the architecture.
|
|
set(arch ${CMAKE_SYSTEM_PROCESSOR})
|
|
if (arch STREQUAL "x86")
|
|
set(arch "i686")
|
|
endif()
|
|
# Get the vendor.
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
set(vendor "apple")
|
|
else()
|
|
set(vendor "pc")
|
|
endif()
|
|
# Get os.
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
|
set(os "win32")
|
|
else()
|
|
string(TOLOWER ${CMAKE_SYSTEM_NAME} os)
|
|
endif()
|
|
set(triple "${arch}-${vendor}-${os}")
|
|
set(${out} ${triple} PARENT_SCOPE)
|
|
set(${out_arch} ${arch} PARENT_SCOPE)
|
|
set(${out_vendor} ${vendor} PARENT_SCOPE)
|
|
set(${out_os} ${os} PARENT_SCOPE)
|
|
message(STATUS "Target triple: ${triple}")
|
|
endfunction()
|