cmake_minimum_required(VERSION 3.13) cmake_policy(SET CMP0054 NEW) if (NOT C6416_SDK_PATH) set(C6416_SDK_PATH ${CMAKE_CURRENT_LIST_DIR}) endif() get_filename_component(C6416_SDK_PATH "${C6416_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") set(C6416_SDK_PATH ${CMAKE_CURRENT_LIST_DIR} CACHE PATH "Path to C6416 SDK" FORCE) # set a default build type if none was specified if (NOT DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() if (DEFINED PLAT) set(PLATFORMS ${PLAT}) elseif (DEFINED ENV{PLAT}) set(PLATFORMS $ENV{PLAT}) else() set(PLATFORMS "dsk") endif() # add cmake to module path set(C6416_SDK_PATH ${CMAKE_CURRENT_LIST_DIR}) list(APPEND CMAKE_MODULE_PATH ${C6416_SDK_PATH}/cmake) if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) set(CMAKE_TOOLCHAIN_FILE ${C6416_SDK_PATH}/cmake/c6400-toolchain.cmake) endif() project(c6416_sdk C ASM) set(CMAKE_EXECUTABLE_SUFFIX .elf) set(CMAKE_STATIC_LIBRARY_SUFFIX .lib) set(CMAKE_STATIC_LIBRARY_PREFIX "") set(CMAKE_C_STANDARD 11) set(tgt_name "c6416_sdk") add_library(${tgt_name} STATIC) target_include_directories(${tgt_name} PUBLIC ${C6416_SDK_PATH}/include ) add_subdirectory(${C6416_SDK_PATH}/csl) add_subdirectory(${C6416_SDK_PATH}/dsplib) add_subdirectory(${C6416_SDK_PATH}/imglib) add_subdirectory(${C6416_SDK_PATH}/src) foreach (_plt IN LISTS PLATFORMS) if (x${_plt} STREQUAL x"") message(FATAL_ERROR "platform: please specify PLAT.") endif() message(STATUS "platform: ${_plt}") get_filename_component(plt_dir ${C6416_SDK_PATH}/platforms/${_plt} REALPATH) if (NOT EXISTS ${plt_dir}) message(FATAL_ERROR "platform: ${_plt} isn't exist.") endif() add_subdirectory(${plt_dir}) endforeach() add_custom_command(TARGET ${tgt_name} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${C6416_SDK_PATH}/lib COMMAND ${CMAKE_COMMAND} -E copy_if_different ${tgt_name}.lib ${C6416_SDK_PATH}/lib COMMENT "Copy ${tgt_name}.lib to ${C6416_SDK_PATH}/lib")