# Configure System
#===============================================================================
-# Get triples.
-include(GetTriple)
-get_host_triple(LIBCXX_HOST_TRIPLE
- LIBCXX_HOST_ARCH
- LIBCXX_HOST_VENDOR
- LIBCXX_HOST_OS
- )
-set(LIBCXX_HOST_TRIPLE ${LIBCXX_HOST_TRIPLE} CACHE STRING "Host triple.")
-get_target_triple(LIBCXX_TARGET_TRIPLE
- LIBCXX_TARGET_ARCH
- LIBCXX_TARGET_VENDOR
- LIBCXX_TARGET_OS
- )
-set(LIBCXX_TARGET_TRIPLE ${LIBCXX_TARGET_TRIPLE} CACHE STRING "Target triple.")
-
set(LIBCXX_COMPILER ${CMAKE_CXX_COMPILER})
set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
endif()
-list(APPEND LIBCXX_CXX_FLAGS "-target ${LIBCXX_TARGET_TRIPLE}")
+append_if(LIBCXX_CXX_FLAGS LIBCXX_TARGET_TRIPLE
+ "-target ${LIBCXX_TARGET_TRIPLE}")
append_if(LIBCXX_CXX_FLAGS LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}")
append_if(LIBCXX_CXX_FLAGS LIBCXX_GCC_TOOLCHAIN
"-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}")
+++ /dev/null
-# 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()