CMake stuff

This commit is contained in:
Norym
2020-05-21 00:07:11 +02:00
parent 19eda0554c
commit 64adb557c8
3 changed files with 51 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
cmake_minimum_required (VERSION 3.16)
SET(CMAKE_CXX_STANDARD 20)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror=pedantic -Wextra -Os")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror=pedantic -Wextra")
SET(PROJECT_NAME "app")
project(${PROJECT_NAME})
@@ -15,10 +15,19 @@ add_executable(${PROJECT_NAME}
target_link_libraries (${PROJECT_NAME} target womolin)
add_custom_command(OUTPUT ${PROJECT_NAME}.bin
COMMAND "${CMAKE_OBJCOPY} ARGS -O ihex ${PROJECT_NAME} ${PROJECT_NAME}.hex"
add_custom_target(${PROJECT_NAME}.hex ALL DEPENDS ${PROJECT_NAME})
add_custom_command(TARGET ${PROJECT_NAME}.hex
COMMAND ${CMAKE_C_OBJCOPY} ARGS -O ihex ${PROJECT_NAME} ${PROJECT_NAME}.hex
DEPENDS ${PROJECT_NAME}
COMMENT "objcopying ${PROJECT_NAME} to ${PROJECT_NAME}.hex")
add_custom_target(${PROJECT_NAME}.hex ALL DEPENDS ${PROJECT_NAME})
add_custom_target(${PROJECT_NAME}.bin ALL DEPENDS ${PROJECT_NAME})
add_custom_command(TARGET ${PROJECT_NAME}.bin
COMMAND ${CMAKE_C_OBJCOPY} ARGS -S -O binary ${PROJECT_NAME} ${PROJECT_NAME}.bin
DEPENDS ${PROJECT_NAME}
COMMENT "objcopying ${PROJECT_NAME} to ${PROJECT_NAME}.bin")

View File

@@ -59,3 +59,20 @@ cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} \
make
###########################
# mainunit release version
###########################
WOMOLIN_TARGET="TARGET_MAINUNIT"
TARGET_FOLDER="${BUILD_MAINUNIT_ROOT}/${RELEASE}"
CMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_MAINUNIT}"
mkdir -p "${TARGET_FOLDER}"
cd ${TARGET_FOLDER}
cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} \
-DCMAKE_BUILD_TYPE=${RELEASE} \
${FIRMWARE_ROOT}
make

View File

@@ -1,17 +1,34 @@
SET(WOMOLIN_TARGET "TARGET_MAINUNIT")
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_SYSTEM_PROCESSOR arm)
SET(CMAKE_CROSSCOMPILING 1)
SET(CMAKE_C_COMPILER /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc)
SET(CMAKE_CXX_COMPILER "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++")
SET(CMAKE_OBJCOPY "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-objcopy")
SET(CMAKE_C_OBJCOPY "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-objcopy")
SET(CMAKE_CXX_FLAGS -D${WOMOLIN_TARGET})
SET(CMAKE_EXE_LINKER_FLAGS "-specs=nosys.specs")
SET(CPU "cortex-m4")
SET(COMMON_COMPILE_FLAGS "-mcpu=cortex-m4 \
-mthumb-interwork \
-mfloat-abi=hard \
-mlong-calls \
-ffunction-sections \
-fno-exceptions \
-fdata-sections \
-DSTM32L476xx \
-DUSE_HAL_DRIVER")
SET(COMMON_COMPILE_FLAGS "-mcpu=${CPU} -mthumb -DSTM32L476xx -DUSE_HAL_DRIVER")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILE_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILE_FLAGS}")
ADD_COMPILE_OPTIONS("-Tdrv/system/cmsis/STM32L476RGTx_FLASH.ld")
set(CMAKE_C_FLAGS_RELEASE "-Os")
set(CMAKE_CXX_FLAGS_RELEASE "-Os")
set(CMAKE_C_FLAGS_DEBUG "-Og -g -gdwarf-3 -gstrict-dwarf")
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g -gdwarf-3 -gstrict-dwarf")
ADD_COMPILE_OPTIONS("-Wl, -T\"${CMAKE_SOURCE_DIR}/target/mainunit/drv/system/STM32L476RGTx_FLASH.ld\"")
#set(CMAKE_EXE_LINKER_FLAGS "-Wl, -T\"${CMAKE_SOURCE_DIR}/target/mainunit/drv/system/STM32L476RGTx_FLASH.ld\"")