mirror of
https://github.com/muccc/WomoLIN.git
synced 2026-02-20 02:21:18 +01:00
CMake stuff
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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\"")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user