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