Files
Linux_Drivers/freertos/cvitek/driver/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

96 lines
2.4 KiB
CMake

cmake_minimum_required(VERSION 3.16.5)
project(driver C)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
set(KERNEL_SOURCE ${TOP_DIR}/../Source)
set(CMAKE_INSTALL_PREFIX ${TOP_DIR}/install)
set(CMAKE_INSTALL_INC_PREFIX ${TOP_DIR}/install/include)
set(CMAKE_DRIVER_DIR ${TOP_DIR}/driver)
set(SAFETY_FLAGS "-Wall -Wextra -fno-strict-aliasing")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAFETY_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAFETY_FLAGS}")
set(DRIVER_UART_DIR ${CMAKE_DRIVER_DIR}/uart)
set(DRIVER_GPIO_DIR ${CMAKE_DRIVER_DIR}/gpio)
set(DRIVER_I2C_DIR ${CMAKE_DRIVER_DIR}/i2c)
include(${TOP_DIR}/scripts/ParseConfiguration.cmake)
ParseConfiguration("${BUILD_ENV_PATH}/.config")
if(CONFIG_BOARD STREQUAL "cv181x_fpga" OR CONFIG_BOARD STREQUAL "cv181x_fpga_c906")
add_compile_definitions(FPGA_PORTING)
endif()
add_compile_definitions(F18)
if (CONFIG_CHIP_ARCH_cv181x STREQUAL "y")
add_compile_definitions(__CV181X__)
endif()
if (CONFIG_CHIP_ARCH_cv180x STREQUAL "y")
add_compile_definitions(__CV180X__)
endif()
if (CONFIG_FAST_IMAGE_TYPE STRGREATER "0")
add_compile_definitions(FAST_IMAGE_ENABLE)
endif()
if (CONFIG_CHIP_ARCH_cv181x STREQUAL "y" OR CONFIG_CHIP_ARCH_cv180x STREQUAL "y")
add_compile_definitions(ARCH_RTOS_CV181X)
endif()
if (CONFIG_BOARD_wevb_0007a_spinor STREQUAL "y" OR
CONFIG_BOARD_wevb_0007a_emmc STREQUAL "y" OR
CONFIG_BOARD_wevb_0007a_spinand STREQUAL "y")
add_compile_definitions(BOARD_WEVB_007A)
message("use BOARD_WEVB_007A")
elseif (CONFIG_BOARD_wevb_0006a_spinor STREQUAL "y" OR
CONFIG_BOARD_wevb_0006a_emmc STREQUAL "y" OR
CONFIG_BOARD_wevb_0006a_spinand STREQUAL "y")
add_compile_definitions(BOARD_WEVB_006A)
message("use BOARD_WEVB_006A")
else()
message("find no board")
endif()
# add driver folder here
if (RUN_ARCH STREQUAL "riscv64")
set(DRIVER_UART_DIR ${CMAKE_DRIVER_DIR}/uart)
set(DRIVER_SPINLOCK_DIR ${CMAKE_DRIVER_DIR}/spinlock)
set(DRIVER_RTOS_CMDQU_DIR ${CMAKE_DRIVER_DIR}/rtos_cmdqu)
set(driver_list
common
pinmux
uart
spinlock
gpio
rtos_cmdqu
)
else()
set(DRIVER_BASE_DIR ${CMAKE_DRIVER_DIR}/base)
set(DRIVER_SYS_DIR ${CMAKE_DRIVER_DIR}/sys)
set(driver_list
common
base
i2c
uart
pinmux
sys
)
endif()
add_library(driver STATIC dummy.c)
foreach(build_drv ${driver_list})
add_subdirectory(${build_drv})
endforeach()
target_link_libraries(driver ${driver_list})
install(TARGETS driver DESTINATION lib)