blob: ee0743efda006d06c646d5e55aa10ce17c0c94a5 [file] [log] [blame]
xiaohu.huanga1268fd2022-06-07 11:10:48 +08001# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
2
3# SPDX-License-Identifier: MIT
4
5include("${CMAKE_CURRENT_LIST_DIR}/find_compiler.cmake")
6
7set(CMAKE_SYSTEM_NAME Generic)
8
9if(CONFIG_CROSS_TOOLCHAIN_CLANG)
10 # Find CLANG for ARM.
11 message(STATUS "Override the cross toolchain with CLANG")
12 aml_find_compiler(COMPILER_CC_CLANG clang)
13 aml_find_compiler(COMPILER_CXX_CLANG clang)
14 set(COMPILER_ASM "${COMPILER_CC_CLANG}" CACHE INTERNAL "" FORCE)
15 aml_find_compiler(COMPILER_OBJCOPY_CLANG clang)
16 aml_find_compiler(COMPILER_OBJDUMP_CLANG clang)
17
18 # Specify the cross compiler.
19 set(CMAKE_C_COMPILER ${COMPILER_CC_CLANG} CACHE FILEPATH "C compiler" FORCE)
20 set(CMAKE_CXX_COMPILER ${COMPILER_CXX_CLANG} CACHE FILEPATH "C++ compiler" FORCE)
21 #set(CMAKE_C_LINK_EXECUTABLE ${COMPILER_LD} CACHE FILEPATH "LD linker" FORCE)
22 set(CMAKE_OBJCOPY_COMPILER ${COMPILER_OBJCOPY_CLANG} CACHE FILEPATH "objcopy compiler" FORCE)
23 set(CMAKE_OBJDUMP_COMPILER ${COMPILER_OBJDUMP_CLANG} CACHE FILEPATH "objdump compiler" FORCE)
24 # Disable compiler checks.
25 set(CMAKE_C_COMPILER_FORCED TRUE FORCE)
26 set(CMAKE_CXX_COMPILER_FORCED TRUE FORCE)
27
28 # Add target system root to cmake find path.
29 get_filename_component(COMPILER_DIR "${COMPILER_CC_CLANG}" DIRECTORY)
30 get_filename_component(CMAKE_FIND_ROOT_PATH "${COMPILER_DIR}" DIRECTORY)
31
32 # Look for includes and libraries only in the target system prefix.
33 #set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
34 #set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
35
36 # Helper variables to abstracts some common compiler flags.
37 set(COMPILER_NO_WARNINGS "-w" CACHE INTERNAL "" FORCE)
38else()
39 # Find GCC for ARM.
40 message(STATUS "Override the cross toolchain with GCC")
41 aml_find_compiler(COMPILER_CC aarch64-none-elf-gcc)
42 aml_find_compiler(COMPILER_CXX aarch64-none-elf-g++)
43 set(COMPILER_ASM "${COMPILER_CC}" CACHE FILEPATH "" FORCE)
44 aml_find_compiler(COMPILER_OBJCOPY aarch64-none-elf-objcopy)
45 aml_find_compiler(COMPILER_OBJDUMP aarch64-none-elf-objdump)
46
47 # Specify the cross compiler.
48 set(CMAKE_C_COMPILER ${COMPILER_CC} CACHE FILEPATH "C compiler" FORCE)
49 set(CMAKE_CXX_COMPILER ${COMPILER_CXX} CACHE FILEPATH "C++ compiler" FORCE)
50 set(CMAKE_ASM_COMPILER ${COMPILER_ASM} CACHE FILEPATH "ASM compiler" FORCE)
51 #set(CMAKE_C_LINK_EXECUTABLE ${COMPILER_LD} CACHE FILEPATH "LD linker" FORCE)
52 set(CMAKE_OBJCOPY_COMPILER ${COMPILER_OBJCOPY} CACHE FILEPATH "objcopy compiler" FORCE)
53 set(CMAKE_OBJDUMP_COMPILER ${COMPILER_OBJDUMP} CACHE FILEPATH "objdump compiler" FORCE)
54 # Disable compiler checks.
55 set(CMAKE_C_COMPILER_FORCED TRUE FORCE)
56 set(CMAKE_CXX_COMPILER_FORCED TRUE FORCE)
57
58 # Add target system root to cmake find path.
59 get_filename_component(COMPILER_DIR "${COMPILER_CC}" DIRECTORY)
60 get_filename_component(CMAKE_FIND_ROOT_PATH "${COMPILER_DIR}" DIRECTORY)
61
62 # Look for includes and libraries only in the target system prefix.
63 #set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
64 #set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
65
66 # Helper variables to abstracts some common compiler flags.
67 set(COMPILER_NO_WARNINGS "-w" CACHE INTERNAL "" FORCE)
68endif()