From 56e86c626df3dbf74c1021210636a7c5d92a49ce Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Tue, 30 Oct 2018 16:31:29 +0100 Subject: move to cmake Signed-off-by: Dominik Sliwa --- CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ba09020 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,82 @@ +set(CMAKE_VERBOSE_MAKEFILE on) +set(CMAKE_COLOR_MAKEFILE on) +set(CMAKE_ERROR_DEPRECATED on) + +cmake_minimum_required(VERSION 3.6.0) +project(apalis-tk1-k20 C ASM) + +set(TARGET ${CMAKE_PROJECT_NAME}) + +set(PROCESSOR_FAMILY ARM_CM3) + +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/startup + ${CMAKE_CURRENT_SOURCE_DIR}/utilities + ${CMAKE_CURRENT_SOURCE_DIR}/CMSIS + ${CMAKE_CURRENT_SOURCE_DIR}/CMSIS/Include + ${CMAKE_CURRENT_SOURCE_DIR}/freertos/include + ${CMAKE_CURRENT_SOURCE_DIR}/freertos/src/portable/GCC/${PROCESSOR_FAMILY}/ + ${CMAKE_CURRENT_SOURCE_DIR}/app/include + ${CMAKE_CURRENT_SOURCE_DIR}/board/include + ${CMAKE_CURRENT_SOURCE_DIR}/drivers/include + ) + +set(SOURCES + startup/startup_MK20D10.S startup/system_MK20D10.c + utilities/fsl_debug_console.c + ) + +include(freertos/CMakeLists.txt) +include(drivers/CMakeLists.txt) +include(app/CMakeLists.txt) +include(board/CMakeLists.txt) + +add_executable(${TARGET} ${SOURCES}) + +# Set a default build type if none was specified +set(default_build_type "Release") + +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(WARNING "Setting build type to '${default_build_type}' as none was specified.") + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE + STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Release") +endif() + +SET(CMAKE_C_FLAGS "-mthumb -fno-builtin -mcpu=cortex-m4 -mfloat-abi=soft -Wall -DCPU_MK20DN512VLK10 -DNDEBUG -std=gnu99 -ffunction-sections -fdata-sections -fomit-frame-pointer -mabi=aapcs -fno-unroll-loops -ffast-math -ftree-vectorize" CACHE INTERNAL "c compiler flags") +SET(CMAKE_ASM_FLAGS "-mthumb -mcpu=cortex-m4 -mfloat-abi=soft -Wa,--no-warn -Wall -DCPU_MK20DN512VLK10 -DNDEBUG -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections -mthumb --specs=nano.specs --specs=nosys.specs -Wl,-Map,\"${TARGET}.map\"" CACHE INTERNAL "executable linker flags") + +IF(NOT CROSS_COMPILE_PREFIX) + SET(CROSS_COMPILE_PREFIX "arm-none-eabi-") + MESSAGE(WARNING "No CROSS_COMPILE_PREFIX specified, using default: " ${CROSS_COMPILE_PREFIX}) +ENDIF() + +SET(CMAKE_C_COMPILER "${CROSS_COMPILE_PREFIX}gcc") +set(CMAKE_ASM_COMPILER "${CROSS_COMPILE_PREFIX}gcc") +SET(CMAKE_OBJCOPY "${CROSS_COMPILE_PREFIX}objcopy" CACHE INTERNAL "objcopy tool") +SET(CMAKE_OBJDUMP "${CROSS_COMPILE_PREFIX}objdump" CACHE INTERNAL "objdump tool") + +SET(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "c compiler flags debug") +SET(CMAKE_ASM_FLAGS_DEBUG "-g" CACHE INTERNAL "asm compiler flags debug") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "linker flags debug") + +SET(CMAKE_C_FLAGS_RELEASE "-O2 -flto" CACHE INTERNAL "c compiler flags release") +SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm compiler flags release") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto" CACHE INTERNAL "linker flags release") + +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/MK20DN512xxx10_flash.ld ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld) + +GET_TARGET_PROPERTY(TARGET_LD_FLAGS ${TARGET} LINK_FLAGS) +IF(TARGET_LD_FLAGS) + SET(TARGET_LD_FLAGS "\"-T${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld\" ${TARGET_LD_FLAGS}") +ELSE() + SET(TARGET_LD_FLAGS "\"-T${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_flash.ld\"") +ENDIF() +SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS ${TARGET_LD_FLAGS}) + +SET(FILENAME "${TARGET}") +ADD_CUSTOM_TARGET(${TARGET}.bin ALL DEPENDS ${TARGET} COMMAND ${CMAKE_OBJCOPY} -Obinary ${FILENAME} ${FILENAME}.bin) -- cgit v1.2.3