Add start of cmake clang toolchain
Finding programs and setting cmake variables
This commit is contained in:
parent
23b5166c32
commit
81f7fa485a
40
cmake/clang.cmake
Normal file
40
cmake/clang.cmake
Normal file
@ -0,0 +1,40 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
find_program(CMAKE_ASM_COMPILER clang)
|
||||
find_program(CMAKE_C_COMPILER clang)
|
||||
find_program(CMAKE_CXX_COMPILER clang++)
|
||||
find_program(CMAKE_LINKER lld)
|
||||
find_program(CMAKE_AR llvm-ar)
|
||||
find_program(CMAKE_RANLIB llvm-ranlib)
|
||||
find_program(CMAKE_STRIP llvm-strip)
|
||||
|
||||
# Get host triplet, in case the target isn't set we'll use it as a default
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE HOST_TRIPLET)
|
||||
message(STATUS "Host target triplet: ${HOST_TRIPLET}")
|
||||
|
||||
if(NOT TARGET_TRIPLET)
|
||||
message(WARNING "TARGET_TRIPLET not set, defaulting to host system (${HOST_TRIPLET})")
|
||||
set(TARGET_TRIPLET ${HOST_TRIPLET})
|
||||
endif()
|
||||
|
||||
string(REGEX MATCH "^[^-]*" TARGET_PROCESSOR ${TARGET_TRIPLET})
|
||||
|
||||
if(NOT CMAKE_SYSTEM_NAME)
|
||||
# Cmake uses Generic as system name for embedded systems, use that here if
|
||||
# working on embedded systems
|
||||
message(WARNING "CMAKE_SYSTEM_NAME name not set, defaulting to host system name (${CMAKE_HOST_SYSTEM_NAME})")
|
||||
set(CMAKE_SYSTEM_NAME ${CMAKE_HOST_SYSTEM_NAME})
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SYSTEM_VERSION)
|
||||
set(CMAKE_SYSTEM_VERSION ${CMAKE_HOST_SYSTEM_VERSION})
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SYSTEM_PROCESSOR)
|
||||
# Getting processor from target triplet, should not be setting CMAKE_SYSTEM_PROCESSOR
|
||||
set(CMAKE_SYSTEM_PROCESSOR ${TARGET_PROCESSOR})
|
||||
endif()
|
||||
|
||||
message(STATUS "Target: ${TARGET_TRIPLET}")
|
||||
message(STATUS "Target system name: ${CMAKE_SYSTEM_NAME}")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user