|  | # Overview of used compiler properties for gcc / g++ compilers. | 
|  | # | 
|  | # Define the flags your toolchain support, and keep the unsupported flags empty. | 
|  |  | 
|  | ##################################################### | 
|  | # This section covers flags related to optimization # | 
|  | ##################################################### | 
|  | set_compiler_property(PROPERTY no_optimization) | 
|  |  | 
|  | set_compiler_property(PROPERTY optimization_debug) | 
|  |  | 
|  | set_compiler_property(PROPERTY optimization_speed) | 
|  |  | 
|  | set_compiler_property(PROPERTY optimization_size) | 
|  |  | 
|  | ####################################################### | 
|  | # This section covers flags related to warning levels # | 
|  | ####################################################### | 
|  |  | 
|  | # Property for standard warning base in Zephyr, this will always bet set when compiling. | 
|  | set_compiler_property(PROPERTY warning_base) | 
|  |  | 
|  | # GCC options for warning levels 1, 2, 3, when using `-DW=[1|2|3]` | 
|  | # Property for warning levels 1, 2, 3 in Zephyr when using `-DW=[1|2|3]` | 
|  | set_compiler_property(PROPERTY warning_dw_1) | 
|  |  | 
|  | set_compiler_property(PROPERTY warning_dw_2) | 
|  |  | 
|  | set_compiler_property(PROPERTY warning_dw_3) | 
|  |  | 
|  | # Extended warning set supported by the compiler | 
|  | set_compiler_property(PROPERTY warning_extended) | 
|  |  | 
|  | # Compiler property that will issue error if a declaration does not specify a type | 
|  | set_compiler_property(PROPERTY warning_error_implicit_int) | 
|  |  | 
|  | # Compiler flags to use when compiling according to MISRA | 
|  | set_compiler_property(PROPERTY warning_error_misra_sane) | 
|  |  | 
|  | ########################################################################### | 
|  | # This section covers flags related to C or C++ standards / standard libs # | 
|  | ########################################################################### | 
|  |  | 
|  | # Compiler flags for C standard. The specific standard must be appended by user. | 
|  | # For example, gcc specifies this as: set_compiler_property(PROPERTY cstd -std=) | 
|  | set_compiler_property(PROPERTY cstd) | 
|  |  | 
|  | # Compiler flags for disabling C standard include and instead specify include | 
|  | # dirs in nostdinc_include to use. | 
|  | set_compiler_property(PROPERTY nostdinc) | 
|  | set_compiler_property(PROPERTY nostdinc_include) | 
|  |  | 
|  | # Compiler flags for disabling C++ standard include. | 
|  | set_compiler_property(TARGET compiler-cpp PROPERTY nostdincxx) | 
|  |  | 
|  | # Required C++ flags when compiling C++ code | 
|  | set_property(TARGET compiler-cpp PROPERTY required) | 
|  |  | 
|  | # Compiler flags to use for specific C++ dialects | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp98) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp11) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp14) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp17) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp2a) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp20) | 
|  | set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b) | 
|  |  | 
|  | # Flag for disabling strict aliasing rule in C and C++ | 
|  | set_compiler_property(PROPERTY no_strict_aliasing) | 
|  |  | 
|  | # Extra warnings options for twister run | 
|  | set_property(TARGET compiler PROPERTY warnings_as_errors) | 
|  | set_property(TARGET asm PROPERTY warnings_as_errors) | 
|  |  | 
|  | # Flag for disabling exceptions in C++ | 
|  | set_property(TARGET compiler-cpp PROPERTY no_exceptions) | 
|  |  | 
|  | # Flag for disabling rtti in C++ | 
|  | set_property(TARGET compiler-cpp PROPERTY no_rtti) | 
|  |  | 
|  | # Flag for disabling optimizations around printf return value | 
|  | set_compiler_property(PROPERTY no_printf_return_value) | 
|  |  | 
|  | ################################################### | 
|  | # This section covers all remaining C / C++ flags # | 
|  | ################################################### | 
|  |  | 
|  | # Flags for coverage generation | 
|  | set_compiler_property(PROPERTY coverage) | 
|  |  | 
|  | # Security canaries flags. | 
|  | set_compiler_property(PROPERTY security_canaries) | 
|  |  | 
|  | set_compiler_property(PROPERTY security_fortify_compile_time) | 
|  | set_compiler_property(PROPERTY security_fortify_run_time) | 
|  |  | 
|  | # Flag for a hosted (no-freestanding) application | 
|  | set_compiler_property(PROPERTY hosted) | 
|  |  | 
|  | # gcc flag for a freestanding application | 
|  | set_compiler_property(PROPERTY freestanding) | 
|  |  | 
|  | # Flag to include debugging symbol in compilation | 
|  | set_compiler_property(PROPERTY debug) | 
|  |  | 
|  | set_compiler_property(PROPERTY no_common) | 
|  |  | 
|  | # Flags for imacros. The specific header must be appended by user. | 
|  | set_compiler_property(PROPERTY imacros) | 
|  |  | 
|  | # Compiler flag for turning off thread-safe initialization of local statics | 
|  | set_property(TARGET compiler-cpp PROPERTY no_threadsafe_statics) | 
|  |  | 
|  | # Required ASM flags when compiling | 
|  | set_property(TARGET asm PROPERTY required) | 
|  |  | 
|  | # Compiler flag for disabling pointer arithmetic warnings | 
|  | set_compiler_property(PROPERTY warning_no_pointer_arithmetic) | 
|  |  | 
|  | # Compiler flags for disabling position independent code / executable | 
|  | set_compiler_property(PROPERTY no_position_independent) | 
|  |  | 
|  | # Compiler flag to avoid combine more than one global variable into a single aggregate. | 
|  | # gen_kobject_list.py is does not understand it and end up identifying objects as if | 
|  | # they had the same address. | 
|  | set_compiler_property(PROPERTY no_global_merge) |