1#------------------------------------------------------------------------------- 2# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8# Since we append to default compilation flags stop multiple inclusion to avoid 9# flags being added multiple times. 10include_guard(GLOBAL) 11 12set(TS_DEBUG_INFO_FLAGS "-fdiagnostics-show-option -gdwarf-2" CACHE STRING "Compiler flags to add debug information.") 13set(TS_MANDATORY_AARCH_FLAGS "" CACHE STRING "Compiler flags configuring architecture specific ") 14set(TS_WARNING_FLAGS "-Wall -Werror" CACHE STRING "Compiler flags affecting generating warning messages.") 15set(TS_MANDATORY_LINKER_FLAGS "" CACHE STRING "Linker flags needed for correct builds.") 16 17# Set flags affecting all build types 18string(APPEND CMAKE_C_FLAGS_INIT " ${TS_MANDATORY_AARCH_FLAGS}") 19string(APPEND CMAKE_CXX_FLAGS_INIT " ${TS_MANDATORY_AARCH_FLAGS}") 20string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${TS_MANDATORY_LINKER_FLAGS}") 21if(DEFINED TS_ROOT) 22 # Flags not to be used with external components. 23 string(APPEND CMAKE_C_FLAGS_INIT " ${TS_WARNING_FLAGS}") 24 string(APPEND CMAKE_CXX_FLAGS_INIT " ${TS_WARNING_FLAGS}") 25endif() 26 27# Set flags affecting all build types supporting debugging. 28foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO DEBUGCOVERAGE) 29 string(APPEND CMAKE_C_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}") 30 string(APPEND CMAKE_CXX_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}") 31endforeach() 32 33# Build type specific flags 34string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " -O0") 35string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -Os") 36string(APPEND CMAKE_C_FLAGS_MINSIZWITHDEBINFO_INIT " -Os") 37string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -O2") 38string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -O2") 39string(APPEND CMAKE_C_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage") 40string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " -O0") 41string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -Os") 42string(APPEND CMAKE_CXX_FLAGS_MINSIZWITHDEBINFO_INIT " -Os") 43string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -O2") 44string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -O2") 45string(APPEND CMAKE_CXX_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage") 46 47include($ENV{TS_ROOT}/tools/cmake/compiler/GCC.cmake REQUIRED) 48include($ENV{TS_ROOT}/tools/cmake/compiler/config_iface.cmake REQUIRED) 49