blob: daabba869b4ed909cf7d7ba371956df51edcae4e [file] [log] [blame]
# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Need support for CMAKE_C_COMPILER_TARGET
cmake_minimum_required(VERSION 3.0)
set(CMAKE_SYSTEM_NAME Fuchsia)
set(CMAKE_SYSROOT ${FUCHSIA_SYSROOT})
if(NOT DEFINED FUCHSIA_TOOLCHAIN)
string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} HOST_SYSTEM_PROCESSOR)
if(HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(HOST_SYSTEM_PROCESSOR "x64")
elseif(HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")
set(HOST_SYSTEM_PROCESSOR "arm64")
endif()
string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} HOST_SYSTEM_NAME)
if(HOST_SYSTEM_NAME STREQUAL "darwin")
set(HOST_SYSTEM_NAME "mac")
endif()
set(FUCHSIA_TOOLCHAIN "${CMAKE_CURRENT_LIST_DIR}/../buildtools/${HOST_SYSTEM_NAME}-${HOST_SYSTEM_PROCESSOR}/clang")
endif()
if(NOT DEFINED FUCHSIA_COMPILER_TARGET)
set(FUCHSIA_COMPILER_TARGET "${FUCHSIA_SYSTEM_PROCESSOR}-fuchsia")
endif()
set(CMAKE_C_COMPILER "${FUCHSIA_TOOLCHAIN}/bin/clang")
set(CMAKE_C_COMPILER_TARGET ${FUCHSIA_COMPILER_TARGET} CACHE STRING "")
set(CMAKE_CXX_COMPILER "${FUCHSIA_TOOLCHAIN}/bin/clang++")
set(CMAKE_CXX_COMPILER_TARGET ${FUCHSIA_COMPILER_TARGET} CACHE STRING "")
set(CMAKE_ASM_COMPILER "${FUCHSIA_TOOLCHAIN}/bin/clang")
set(CMAKE_ASM_COMPILER_TARGET ${FUCHSIA_COMPILER_TARGET} CACHE STRING "")
set(CMAKE_LINKER "${FUCHSIA_TOOLCHAIN}/bin/ld.lld" CACHE PATH "")
set(CMAKE_AR "${FUCHSIA_TOOLCHAIN}/bin/llvm-ar" CACHE PATH "")
set(CMAKE_RANLIB "${FUCHSIA_TOOLCHAIN}/bin/llvm-ranlib" CACHE PATH "")
set(CMAKE_NM "${FUCHSIA_TOOLCHAIN}/bin/llvm-nm" CACHE PATH "")
set(CMAKE_OBJCOPY "${FUCHSIA_TOOLCHAIN}/bin/llvm-objcopy" CACHE PATH "")
set(CMAKE_OBJDUMP "${FUCHSIA_TOOLCHAIN}/bin/llvm-objdump" CACHE PATH "")
set(CMAKE_STRIP "${FUCHSIA_TOOLCHAIN}/bin/llvm-strip" CACHE PATH "")
set(CMAKE_FIND_ROOT_PATH ${FUCHSIA_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)