Files
Linux_Drivers/freertos/cvitek/kernel/CMakeLists.txt
carbon ca03037500 freertos: release the generic version source code
freertos runs on the second core (small one) of the CPU
2023-10-19 14:31:43 +08:00

91 lines
3.6 KiB
CMake

cmake_minimum_required(VERSION 3.16.5)
project(arch C ASM)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
set(KERNEL_SOURCE ${TOP_DIR}/../Source)
set(TRACE_SOURCE ${TOP_DIR}/../Tracealyzer)
set(CMAKE_INSTALL_PREFIX ${TOP_DIR}/install)
set(CMAKE_INSTALL_INC_PREFIX ${TOP_DIR}/install/include)
set(SAFETY_FLAGS "-Wall -Wextra -fno-strict-aliasing -static --specs=nosys.specs -D__BUILD_RTOS_KERNEL__")
#set(SAFETY_FLAGS "-Werror -Wall -Wextra -fno-strict-aliasing")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAFETY_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAFETY_FLAGS}")
if (RUN_ARCH STREQUAL "riscv64")
file(GLOB _SOURCES
"${KERNEL_SOURCE}/*.c"
"${KERNEL_SOURCE}/portable/GCC/RISC-V/*.c"
"${KERNEL_SOURCE}/portable/GCC/RISC-V/*.S"
"${KERNEL_SOURCE}/portable/MemMang/heap_4.c"
"${TRACE_SOURCE}/src/*.c"
)
include_directories(include/${RUN_ARCH})
include_directories(${CMAKE_INSTALL_INC_PREFIX}/arch)
include_directories(${CMAKE_INSTALL_INC_PREFIX}/common)
include_directories(${KERNEL_SOURCE}/portable/GCC/RISC-V)
include_directories(${KERNEL_SOURCE}/portable/GCC/RISC-V/chip_specific_extensions/thead_c906_rv64imafdc/)
include_directories(${KERNEL_SOURCE}/include)
include_directories(${TRACE_SOURCE}/include)
include_directories(${TRACE_SOURCE}/config)
file(GLOB _HEADERS "include/${RUN_ARCH}/*.h"
"${KERNEL_SOURCE}/include/*.h"
"${KERNEL_SOURCE}/portable/GCC/RISC-V/*.h"
"${KERNEL_SOURCE}/portable/GCC/RISC-V/chip_specific_extensions/thead_c906_rv64imafdc/*.h"
"${TRACE_SOURCE}/include/*.h"
"${TRACE_SOURCE}/config/*.h"
)
add_library(kernel STATIC ${_SOURCES})
install(TARGETS kernel DESTINATION lib)
install(FILES ${_HEADERS} DESTINATION include/kernel)
else()
file(GLOB _SOURCES
"src/*.c"
"${KERNEL_SOURCE}/*.c"
"${KERNEL_SOURCE}/portable/GCC/ARM_CA53_64_BIT/*.c"
"${KERNEL_SOURCE}/portable/GCC/ARM_CA53_64_BIT/*.S"
"${KERNEL_SOURCE}/portable/MemMang/heap_4.c"
"${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/FreeRTOS-Plus-POSIX/source/*.c"
)
include_directories(include/${CHIP})
include_directories(${CMAKE_INSTALL_INC_PREFIX}/arch)
include_directories(${CMAKE_INSTALL_INC_PREFIX}/common)
include_directories(${KERNEL_SOURCE}/portable/GCC/ARM_CA53_64_BIT)
include_directories(${KERNEL_SOURCE}/include)
include_directories(${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/include/)
include_directories(${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/include/private)
include_directories(${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/FreeRTOS-Plus-POSIX/include)
include_directories(${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/FreeRTOS-Plus-POSIX/include/portable)
file(GLOB _HEADERS "include/${CHIP}/*.h"
"${KERNEL_SOURCE}/include/*.h"
"${KERNEL_SOURCE}/portable/GCC/ARM_CA53_64_BIT/*.h"
"${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/include/private/*.h"
"${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/FreeRTOS-Plus-POSIX/include/*.h"
"${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/FreeRTOS-Plus-POSIX/include/portable/*.h"
)
file(GLOB _POSIX_HEADERS "${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX/*.h")
file(GLOB _POSIX_SYS_HEADERS "${KERNEL_SOURCE}/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX/sys/*.h")
add_library(kernel STATIC ${_SOURCES})
install(TARGETS kernel DESTINATION lib)
install(FILES ${_HEADERS} DESTINATION include/kernel)
install(FILES ${_POSIX_HEADERS} DESTINATION include/kernel/FreeRTOS_POSIX)
install(FILES ${_POSIX_SYS_HEADERS} DESTINATION include/kernel/FreeRTOS_POSIX/sys)
endif()