blob: d7a194ff5662a1bc4e857c4d15ac85e22620b456 [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
xiaohu.huang8e311612024-11-12 14:56:26 +08009if("${COMPILER}" STREQUAL "clang+llvm")
xiaohu.huanga1268fd2022-06-07 11:10:48 +080010 # Find CLANG for ARM.
xiaohu.huanga1268fd2022-06-07 11:10:48 +080011 aml_find_compiler(COMPILER_CC_CLANG clang)
xiaohu.huang929bf972022-12-19 14:38:39 +080012 aml_find_compiler(COMPILER_CXX_CLANG clang++)
13 aml_find_compiler(COMPILER_LD lld)
14 message(STATUS "@@COMPILER_LD: ${COMPILER_LD}")
15 message(STATUS "@@COMPILER_CC_CLANG: ${COMPILER_CC_CLANG}")
16 message(STATUS "@@COMPILER_CXX_CLANG: ${COMPILER_CXX_CLANG}")
xiaohu.huanga1268fd2022-06-07 11:10:48 +080017 set(COMPILER_ASM "${COMPILER_CC_CLANG}" CACHE INTERNAL "" FORCE)
xiaohu.huang929bf972022-12-19 14:38:39 +080018 aml_find_compiler(COMPILER_OBJCOPY_CLANG llvm-objcopy)
19 aml_find_compiler(COMPILER_OBJDUMP_CLANG llvm-objdump)
xiaohu.huanga1268fd2022-06-07 11:10:48 +080020
xiaohu.huangf2eb3582022-06-08 11:30:17 +080021 # Specify the compiler.
xiaohu.huanga1268fd2022-06-07 11:10:48 +080022 set(CMAKE_C_COMPILER ${COMPILER_CC_CLANG} CACHE FILEPATH "C compiler" FORCE)
23 set(CMAKE_CXX_COMPILER ${COMPILER_CXX_CLANG} CACHE FILEPATH "C++ compiler" FORCE)
xiaohu.huang929bf972022-12-19 14:38:39 +080024 set(CMAKE_ASM_COMPILER ${COMPILER_ASM} CACHE FILEPATH "ASM compiler" FORCE)
25 set(CMAKE_LINKER ${COMPILER_LD} CACHE FILEPATH "LD linker" FORCE)
xiaohu.huanga1268fd2022-06-07 11:10:48 +080026 set(CMAKE_OBJCOPY_COMPILER ${COMPILER_OBJCOPY_CLANG} CACHE FILEPATH "objcopy compiler" FORCE)
27 set(CMAKE_OBJDUMP_COMPILER ${COMPILER_OBJDUMP_CLANG} CACHE FILEPATH "objdump compiler" FORCE)
xiaohu.huang929bf972022-12-19 14:38:39 +080028 SET (CMAKE_OBJDUMP ${COMPILER_OBJDUMP_CLANG} CACHE FILEPATH "objdump compiler" FORCE)
29 SET (CMAKE_OBJCOPY ${COMPILER_OBJCOPY_CLANG} CACHE FILEPATH "objcopy compiler" FORCE)
xiaohu.huanga1268fd2022-06-07 11:10:48 +080030 # Disable compiler checks.
31 set(CMAKE_C_COMPILER_FORCED TRUE FORCE)
32 set(CMAKE_CXX_COMPILER_FORCED TRUE FORCE)
33
34 # Add target system root to cmake find path.
35 get_filename_component(COMPILER_DIR "${COMPILER_CC_CLANG}" DIRECTORY)
36 get_filename_component(CMAKE_FIND_ROOT_PATH "${COMPILER_DIR}" DIRECTORY)
37
38 # Look for includes and libraries only in the target system prefix.
39 #set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
40 #set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
41
42 # Helper variables to abstracts some common compiler flags.
43 set(COMPILER_NO_WARNINGS "-w" CACHE INTERNAL "" FORCE)
44else()
45 # Find GCC for ARM.
xiaohu.huanga1268fd2022-06-07 11:10:48 +080046 aml_find_compiler(COMPILER_CC aarch64-none-elf-gcc)
47 aml_find_compiler(COMPILER_CXX aarch64-none-elf-g++)
48 set(COMPILER_ASM "${COMPILER_CC}" CACHE FILEPATH "" FORCE)
shijie.xiong2e72fb92024-08-29 18:14:43 +080049 aml_find_compiler(COMPILER_NM aarch64-none-elf-nm)
xiaohu.huanga1268fd2022-06-07 11:10:48 +080050 aml_find_compiler(COMPILER_OBJCOPY aarch64-none-elf-objcopy)
51 aml_find_compiler(COMPILER_OBJDUMP aarch64-none-elf-objdump)
52
xiaohu.huangf2eb3582022-06-08 11:30:17 +080053 # Specify the compiler.
xiaohu.huanga1268fd2022-06-07 11:10:48 +080054 set(CMAKE_C_COMPILER ${COMPILER_CC} CACHE FILEPATH "C compiler" FORCE)
55 set(CMAKE_CXX_COMPILER ${COMPILER_CXX} CACHE FILEPATH "C++ compiler" FORCE)
56 set(CMAKE_ASM_COMPILER ${COMPILER_ASM} CACHE FILEPATH "ASM compiler" FORCE)
57 #set(CMAKE_C_LINK_EXECUTABLE ${COMPILER_LD} CACHE FILEPATH "LD linker" FORCE)
shijie.xiong2e72fb92024-08-29 18:14:43 +080058 set(CMAKE_NM_COMPILER ${COMPILER_NM} CACHE FILEPATH "nm compiler" FORCE)
xiaohu.huanga1268fd2022-06-07 11:10:48 +080059 set(CMAKE_OBJCOPY_COMPILER ${COMPILER_OBJCOPY} CACHE FILEPATH "objcopy compiler" FORCE)
60 set(CMAKE_OBJDUMP_COMPILER ${COMPILER_OBJDUMP} CACHE FILEPATH "objdump compiler" FORCE)
61 # Disable compiler checks.
62 set(CMAKE_C_COMPILER_FORCED TRUE FORCE)
63 set(CMAKE_CXX_COMPILER_FORCED TRUE FORCE)
64
65 # Add target system root to cmake find path.
66 get_filename_component(COMPILER_DIR "${COMPILER_CC}" DIRECTORY)
67 get_filename_component(CMAKE_FIND_ROOT_PATH "${COMPILER_DIR}" DIRECTORY)
68
69 # Look for includes and libraries only in the target system prefix.
70 #set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
71 #set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
72
73 # Helper variables to abstracts some common compiler flags.
74 set(COMPILER_NO_WARNINGS "-w" CACHE INTERNAL "" FORCE)
75endif()