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 |
Gabor Toth | 22d04d6 | 2024-06-25 12:42:34 +0200 | [diff] [blame] | 18 | string(APPEND CMAKE_C_FLAGS_INIT " ${TS_MANDATORY_AARCH_FLAGS}") |
| 19 | string(APPEND CMAKE_CXX_FLAGS_INIT " ${TS_MANDATORY_AARCH_FLAGS}") |
| 20 | string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${TS_MANDATORY_LINKER_FLAGS}") |
| 21 | if(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}") |
| 25 | endif() |
Gyorgy Szing | 34aaf21 | 2022-10-20 07:26:23 +0200 | [diff] [blame] | 26 | |
| 27 | # Set flags affecting all build types supporting debugging. |
Gyorgy Szing | 1ff7d79 | 2024-09-18 13:40:05 +0200 | [diff] [blame] | 28 | foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO DEBUGCOVERAGE) |
Gyorgy Szing | 34aaf21 | 2022-10-20 07:26:23 +0200 | [diff] [blame] | 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}") |
| 31 | endforeach() |
| 32 | |
| 33 | # Build type specific flags |
| 34 | string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " -O0") |
| 35 | string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -Os") |
| 36 | string(APPEND CMAKE_C_FLAGS_MINSIZWITHDEBINFO_INIT " -Os") |
| 37 | string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -O2") |
| 38 | string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -O2") |
Gyorgy Szing | 1ff7d79 | 2024-09-18 13:40:05 +0200 | [diff] [blame] | 39 | string(APPEND CMAKE_C_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage") |
Gyorgy Szing | 34aaf21 | 2022-10-20 07:26:23 +0200 | [diff] [blame] | 40 | string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " -O0") |
| 41 | string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -Os") |
| 42 | string(APPEND CMAKE_CXX_FLAGS_MINSIZWITHDEBINFO_INIT " -Os") |
| 43 | string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -O2") |
| 44 | string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -O2") |
Gyorgy Szing | 1ff7d79 | 2024-09-18 13:40:05 +0200 | [diff] [blame] | 45 | string(APPEND CMAKE_CXX_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage") |
Gyorgy Szing | 34aaf21 | 2022-10-20 07:26:23 +0200 | [diff] [blame] | 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) |