Files
StepMotorCtrl/CMakeLists.txt
T

64 lines
2.3 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.10)
project(StepMotorCtrl C ASM)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_ASM_COMPILER_OPTIONS "")
SET(CMAKE_EXECUTABLE_SUFFIX ".elf")
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/libs/device/py32md530.ld)
set(CMAKE_C_FLAGS "-mcpu=cortex-m0plus -mthumb -Wall -Wextra -Wpedantic -Wno-unused-parameter -ffunction-sections -fdata-sections -O0 -g -MMD -MP" CACHE STRING "" FORCE)
set(CMAKE_ASM_FLAGS "-mcpu=cortex-m0plus -mthumb -x assembler-with-cpp" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "-mcpu=cortex-m0plus -mthumb -T${LINKER_SCRIPT} -Wl,--gc-sections -Wl,--print-memory-usage -u _printf_float -specs=nano.specs -specs=nosys.specs" CACHE STRING "" FORCE)
include_directories(
${CMAKE_SOURCE_DIR}/libs
${CMAKE_SOURCE_DIR}/libs/CMSIS
${CMAKE_SOURCE_DIR}/libs/device
${CMAKE_SOURCE_DIR}/config
${CMAKE_SOURCE_DIR}/bsp
${CMAKE_SOURCE_DIR}/bsp/device/led
${CMAKE_SOURCE_DIR}/bsp/device/key
${CMAKE_SOURCE_DIR}/bsp/device/eeprom
${CMAKE_SOURCE_DIR}/bsp/device/limit_switch
${CMAKE_SOURCE_DIR}/bsp/device/as5600
${CMAKE_SOURCE_DIR}/bsp/device/id
${CMAKE_SOURCE_DIR}/bsp/modbus
${CMAKE_SOURCE_DIR}/drv/system
${CMAKE_SOURCE_DIR}/drv/timer
${CMAKE_SOURCE_DIR}/drv/uart
${CMAKE_SOURCE_DIR}/drv/i2c
${CMAKE_SOURCE_DIR}/drv/adc
${CMAKE_SOURCE_DIR}/drv/gpio
${CMAKE_SOURCE_DIR}/drv/log
${CMAKE_SOURCE_DIR}/app
${CMAKE_SOURCE_DIR}/app/tasks
${CMAKE_SOURCE_DIR}/app/stepper
)
file(GLOB_RECURSE SOURCES
${CMAKE_SOURCE_DIR}/app/*.c
${CMAKE_SOURCE_DIR}/bsp/*.c
${CMAKE_SOURCE_DIR}/bsp/device/*/*.c
${CMAKE_SOURCE_DIR}/bsp/modbus/*.c
${CMAKE_SOURCE_DIR}/drv/*/*.c
${CMAKE_SOURCE_DIR}/libs/device/*.c
${CMAKE_SOURCE_DIR}/libs/device/*.s
)
add_executable(${PROJECT_NAME} ${SOURCES})
set(ELF_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.elf)
set(HEX_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.hex)
set(BIN_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin)
add_custom_command(OUTPUT ${HEX_FILE} ${BIN_FILE}
COMMAND ${CMAKE_OBJCOPY} -O ihex ${ELF_FILE} ${HEX_FILE}
COMMAND ${CMAKE_OBJCOPY} -O binary ${ELF_FILE} ${BIN_FILE}
DEPENDS ${PROJECT_NAME}
COMMENT "Generating hex and bin files..."
)
add_custom_target(hex ALL DEPENDS ${HEX_FILE} ${BIN_FILE})