1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 01:05:10 +03:00

Added WARNINGS_AS_ERRORS cmake option for radio firmware

This commit is contained in:
Damjan Adamic 2016-10-12 22:05:29 +02:00
parent e5a5a6319f
commit 0d74148d70
2 changed files with 98 additions and 94 deletions

View file

@ -23,6 +23,7 @@ option(SIMU_AUDIO "Enable simulator audio" OFF)
option(SIMU_DISKIO "Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses \"./sdcard.image\" file as image of SD card. This file must contain whole SD card from first to last sector" OFF) option(SIMU_DISKIO "Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses \"./sdcard.image\" file as image of SD card. This file must contain whole SD card from first to last sector" OFF)
option(FAS_PROTOTYPE "Support of old FAS prototypes (different resistors)" OFF) option(FAS_PROTOTYPE "Support of old FAS prototypes (different resistors)" OFF)
option(TEMPLATES "Model templates menu" OFF) option(TEMPLATES "Model templates menu" OFF)
option(WARNINGS_AS_ERRORS "Treat all compiler warnings as error" OFF)
enable_language(ASM) enable_language(ASM)
set(OPT s) set(OPT s)
@ -317,6 +318,9 @@ add_definitions(-DCORRECT_NEGATIVE_SHIFTS)
if(NOT WIN32) if(NOT WIN32)
add_definitions(-Wall -Wno-strict-aliasing -Wformat -Wreturn-type -Wunused -Wuninitialized -Wunknown-pragmas -Wno-switch -Wtype-limits) add_definitions(-Wall -Wno-strict-aliasing -Wformat -Wreturn-type -Wunused -Wuninitialized -Wunknown-pragmas -Wno-switch -Wtype-limits)
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS -Werror)
endif(WARNINGS_AS_ERRORS)
else() else()
add_definitions(-DHAVE_STRUCT_TIMESPEC) add_definitions(-DHAVE_STRUCT_TIMESPEC)
endif() endif()
@ -338,7 +342,7 @@ set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LI
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET>") set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET>")
if(NOT MSVC) if(NOT MSVC)
if(ARCH STREQUAL ARM) if(ARCH STREQUAL ARM)
cmake_force_c_compiler(arm-none-eabi-gcc GNU) cmake_force_c_compiler(arm-none-eabi-gcc GNU)
cmake_force_cxx_compiler(arm-none-eabi-g++ GNU) cmake_force_cxx_compiler(arm-none-eabi-g++ GNU)
set(CMAKE_ASM_COMPILER arm-none-eabi-as) set(CMAKE_ASM_COMPILER arm-none-eabi-as)
@ -348,12 +352,12 @@ if(ARCH STREQUAL ARM)
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -o <OBJECT> <SOURCE>") set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -o <OBJECT> <SOURCE>")
set(COMMON_FLAGS "-mcpu=${MCU} -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms=firmware.lst -O${OPT} -gdwarf-2 -DHSE_VALUE=${HSE_VALUE} -fno-exceptions -fdata-sections -ffunction-sections ${WARNING_FLAGS}") set(COMMON_FLAGS "-mcpu=${MCU} -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms=firmware.lst -O${OPT} -gdwarf-2 -DHSE_VALUE=${HSE_VALUE} -fno-exceptions -fdata-sections -ffunction-sections ${WARNING_FLAGS}")
# Remove once the minimum cmake version is set to 3.1 in the main CmakeLists.tx # Remove once the minimum cmake version is set to 3.1 in the main CmakeLists.tx
if (${CMAKE_VERSION} VERSION_LESS 3.1.0}) if (${CMAKE_VERSION} VERSION_LESS 3.1.0})
set(COMMON_CPP_FLAGS "${COMMON_FLAGS} -std=gnu++11") set(COMMON_CPP_FLAGS "${COMMON_FLAGS} -std=gnu++11")
else() else()
set(COMMON_CPP_FLAGS ${COMMON_FLAGS}) set(COMMON_CPP_FLAGS ${COMMON_FLAGS})
endif() endif()
set(CMAKE_C_FLAGS "${COMMON_FLAGS} -Wimplicit") set(CMAKE_C_FLAGS "${COMMON_FLAGS} -Wimplicit")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${COMMON_FLAGS} -Wimplicit -g") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${COMMON_FLAGS} -Wimplicit -g")
set(CMAKE_C_FLAGS_RELEASE "${COMMON_FLAGS} -Wimplicit") set(CMAKE_C_FLAGS_RELEASE "${COMMON_FLAGS} -Wimplicit")
@ -382,15 +386,15 @@ endif()
COMMAND arm-none-eabi-objcopy -O binary firmware.elf firmware.bin COMMAND arm-none-eabi-objcopy -O binary firmware.elf firmware.bin
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
else() else()
cmake_force_c_compiler(avr-gcc GNU) cmake_force_c_compiler(avr-gcc GNU)
cmake_force_cxx_compiler(avr-gcc GNU) cmake_force_cxx_compiler(avr-gcc GNU)
set(CMAKE_CXX_FLAGS "-mmcu=${MCU} -DF_CPU=16000000UL -O${OPT} -gdwarf-2 -fno-exceptions -flto -fwhole-program -fno-inline-small-functions -mstrict-X ${WARNING_FLAGS}") set(CMAKE_CXX_FLAGS "-mmcu=${MCU} -DF_CPU=16000000UL -O${OPT} -gdwarf-2 -fno-exceptions -flto -fwhole-program -fno-inline-small-functions -mstrict-X ${WARNING_FLAGS}")
# Remove once the minimum cmake version is set to 3.1 in the main CmakeLists.tx # Remove once the minimum cmake version is set to 3.1 in the main CmakeLists.tx
if (${CMAKE_VERSION} VERSION_LESS 3.1.0}) if (${CMAKE_VERSION} VERSION_LESS 3.1.0})
set(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}")
endif() endif()
include_directories(storage gui/${GUI_DIR}) include_directories(storage gui/${GUI_DIR})
@ -422,9 +426,9 @@ endif()
DEPENDS firmware DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
endif() endif()
if(CPU_FAMILY STREQUAL STM32) if(CPU_FAMILY STREQUAL STM32)
add_custom_target(flash add_custom_target(flash
COMMAND dfu-util --alt 0 --dfuse-address 0x08000000:leave -d 0483:df11 -D firmware.bin COMMAND dfu-util --alt 0 --dfuse-address 0x08000000:leave -d 0483:df11 -D firmware.bin
DEPENDS firmware DEPENDS firmware
@ -436,5 +440,5 @@ if(CPU_FAMILY STREQUAL STM32)
DEPENDS firmware DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
endif() endif()
endif() endif(NOT MSVC)

View file

@ -113,14 +113,14 @@ make -j${CORES} gtests ; ./gtests
# OpenTX on Horus beta boards # OpenTX on Horus beta boards
rm -rf * rm -rf *
cmake ${COMMON_OPTIONS} -DPCB=HORUS -DPCBREV=10 -DHELI=YES -DLUA=YES -DGVARS=YES ${SRCDIR} cmake ${COMMON_OPTIONS} -DPCB=HORUS -DPCBREV=10 -DHELI=YES -DLUA=YES -DGVARS=YES -DWARNINGS_AS_ERRORS=YES ${SRCDIR}
make -j${CORES} firmware make -j${CORES} firmware
make -j${CORES} simu make -j${CORES} simu
make -j${CORES} gtests ; ./gtests make -j${CORES} gtests ; ./gtests
# OpenTX on Horus # OpenTX on Horus
rm -rf * rm -rf *
cmake ${COMMON_OPTIONS} -DPCB=HORUS -DHELI=YES -DLUA=YES -DGVARS=YES ${SRCDIR} cmake ${COMMON_OPTIONS} -DPCB=HORUS -DHELI=YES -DLUA=YES -DGVARS=YES -DWARNINGS_AS_ERRORS=YES ${SRCDIR}
make -j${CORES} firmware make -j${CORES} firmware
make -j${CORES} simu make -j${CORES} simu
make -j${CORES} gtests ; ./gtests make -j${CORES} gtests ; ./gtests