blob: 957070ed01a75584ff5b165a403cfe681e7fba84 [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)
39include(${SDK_BASE}/build/cmake/git.cmake)
40include(${SDK_BASE}/build/cmake/kconfig.cmake)
41
42set(TARGET_NAME $ENV{KERNEL})
43
44# Do not prefix the output library file.
45set(CMAKE_STATIC_LIBRARY_PREFIX "")
46
47# Compiler.cmake set compiler flag.
48include(${ARCH_DIR}/compiler.cmake)
49
50message(STATUS TARGET_NAME: ${TARGET_NAME})
51
52add_executable(${TARGET_NAME})
53add_subdirectory(${SDK_BASE} ${SDK_OUT}/obj)
54
55# Linker flags
56target_link_options(
57 ${TARGET_NAME}
58 PUBLIC ${common_flags} ${linker_flags}
59)
60
61target_link_libraries(
62 ${TARGET_NAME}
63 -T"${BOARD_DIR}/lscript.ld"
64 -lgcc
65)
66
67#Generate binary file from elf
68compiler_generate_binary_output(${TARGET_NAME})
69#Generate lst file from lst
70compiler_generate_lst_output(${TARGET_NAME})