123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # First step is to inherit all properties from gcc, as clang is compatible with most flags.
- include(${ZEPHYR_BASE}/cmake/compiler/gcc/compiler_flags.cmake)
- # Now, let's overwrite the flags that are different in clang.
- # No property flag, clang doesn't understand fortify at all
- set_compiler_property(PROPERTY security_fortify)
- # No property flag, this is used by the native_posix, clang has problems
- # compiling the native_posix with -fno-freestanding.
- check_set_compiler_property(PROPERTY hosted)
- # clang flags for coverage generation
- set_property(TARGET compiler PROPERTY coverage --coverage -fno-inline)
- # clang flag for colourful diagnostic messages
- set_compiler_property(PROPERTY diagnostic -fcolor-diagnostics)
- #######################################################
- # This section covers flags related to warning levels #
- #######################################################
- # clang option standard warning base in Zephyr
- set_compiler_property(PROPERTY warning_base
- -Wall
- -Wformat
- -Wformat-security
- -Wno-format-zero-length
- -Wno-main
- -Wno-typedef-redefinition
- )
- check_set_compiler_property(APPEND PROPERTY warning_base -Wno-pointer-sign)
- # Prohibit void pointer arithmetic. Illegal in C99
- check_set_compiler_property(APPEND PROPERTY warning_base -Wpointer-arith)
- # clang options for warning levels 1, 2, 3, when using `-DW=[1|2|3]`
- set_compiler_property(PROPERTY warning_dw_1
- -Wextra
- -Wunused
- -Wno-unused-parameter
- -Wmissing-declarations
- -Wmissing-format-attribute
- )
- check_set_compiler_property(APPEND PROPERTY warning_dw_1
- -Wold-style-definition
- -Wmissing-prototypes
- -Wmissing-include-dirs
- -Wunused-but-set-variable
- -Wno-missing-field-initializers
- )
- set_compiler_property(PROPERTY warning_dw_2
- -Waggregate-return
- -Wcast-align
- -Wdisabled-optimization
- -Wnested-externs
- -Wshadow
- )
- check_set_compiler_property(APPEND PROPERTY warning_dw_2
- -Wlogical-op
- -Wmissing-field-initializers
- )
- set_compiler_property(PROPERTY warning_dw_3
- -Wbad-function-cast
- -Wcast-qual
- -Wconversion
- -Wpacked
- -Wpadded
- -Wpointer-arith
- -Wredundant-decls
- -Wswitch-default
- )
- check_set_compiler_property(APPEND PROPERTY warning_dw_3
- -Wpacked-bitfield-compat
- -Wvla
- )
- check_set_compiler_property(PROPERTY warning_extended
- #FIXME: need to fix all of those
- -Wno-sometimes-uninitialized
- -Wno-shift-overflow
- -Wno-missing-braces
- -Wno-self-assign
- -Wno-address-of-packed-member
- -Wno-unused-function
- -Wno-initializer-overrides
- -Wno-section
- -Wno-unknown-warning-option
- -Wno-unused-variable
- -Wno-format-invalid-specifier
- -Wno-gnu
- # comparison of unsigned expression < 0 is always false
- -Wno-tautological-compare
- )
- set_compiler_property(PROPERTY warning_error_coding_guideline
- -Werror=vla
- -Wimplicit-fallthrough
- -Wconversion
- -Woverride-init
- )
|