blob: b596e183361064f19578731e038b17cf428247ad [file] [log] [blame]
bin.chen1a426d32021-10-13 10:52:36 +08001cmake_minimum_required(VERSION 3.13.1)
2
3set(SDK_BASE $ENV{SDK_BASE})
4set(ARCH $ENV{ARCH})
5set(ARCH_DIR ${SDK_BASE}/arch/${ARCH})
6set(BOARD $ENV{BOARD})
7set(BOARD_DIR ${SDK_BASE}/boards/${ARCH}/${BOARD})
8set(CROSS_COMPILER $ENV{CROSS_COMPILER})
9set(KERNEL $ENV{KERNEL})
10set(PRODUCT $ENV{PRODUCT})
11
12set(SDK_OUT ${CMAKE_BINARY_DIR})
13set(PROJECT_BINARY_DIR ${CMAKE_BINARY_DIR})
14set(PROJECT_SOURCE_DIR ${SDK_BASE})
15set(APPLICATION_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
16
17set(CMAKE_EXECUTABLE_SUFFIX ".elf")
18
19if(EXISTS ${APPLICATION_SOURCE_DIR}/prj_${BOARD}.conf)
20 set(CONF_FILE ${APPLICATION_SOURCE_DIR}/prj_${BOARD}.conf)
21
22elseif(EXISTS ${APPLICATION_SOURCE_DIR}/prj.conf)
23 set(CONF_FILE ${APPLICATION_SOURCE_DIR}/prj.conf)
24endif()
25
26set(UNSC_TOOLCHAIN_PATH $ENV{PATH} CACHE INTERNAL "")
27message(STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")
28message(STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
29
30
31if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
32 add_compile_options(-fdiagnostics-color=always)
33elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
34 add_compile_options(-fcolor-diagnostics)
35endif()
36
37include(${SDK_BASE}/build/cmake/extensions.cmake)
38include(${SDK_BASE}/build/cmake/python.cmake)
bin.chen1a426d32021-10-13 10:52:36 +080039include(${SDK_BASE}/build/cmake/kconfig.cmake)
40
41set(TARGET_NAME $ENV{KERNEL})
42
43# Do not prefix the output library file.
44set(CMAKE_STATIC_LIBRARY_PREFIX "")
45
46# Compiler.cmake set compiler flag.
47include(${ARCH_DIR}/compiler.cmake)
48
49message(STATUS TARGET_NAME: ${TARGET_NAME})
50
51add_executable(${TARGET_NAME})
52add_subdirectory(${SDK_BASE} ${SDK_OUT}/obj)
53
54# Linker flags
55target_link_options(
56 ${TARGET_NAME}
57 PUBLIC ${common_flags} ${linker_flags}
58)
59
60target_link_libraries(
61 ${TARGET_NAME}
62 -T"${BOARD_DIR}/lscript.ld"
63 -lgcc
64)
65
66#Generate binary file from elf
67compiler_generate_binary_output(${TARGET_NAME})
68#Generate lst file from lst
69compiler_generate_lst_output(${TARGET_NAME})