1#
2# Arm SCP/MCP Software
3# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8include("${CMAKE_CURRENT_LIST_DIR}/GNU-Base.cmake")
9include("${CMAKE_CURRENT_LIST_DIR}/Generic-Baremetal.cmake")
10
11foreach(language IN ITEMS ASM C CXX)
12
13    if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
14        if(DEFINED SCP_AARCH64_PROCESSOR_TARGET)
15            string(APPEND CMAKE_${language}_FLAGS_INIT
16               "-mcpu=${SCP_AARCH64_PROCESSOR_TARGET} ")
17        endif()
18        string(APPEND CMAKE_${language}_FLAGS_INIT
19            "-mstrict-align -fno-builtin -DAARCH64 -D__ASSEMBLY__ ")
20    endif()
21
22    if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m(3|7|33|55)")
23        string(APPEND CMAKE_${language}_FLAGS_INIT "-mthumb ")
24        string(APPEND CMAKE_${language}_FLAGS_INIT
25            "-mcpu=${CMAKE_SYSTEM_PROCESSOR} ")
26    endif()
27
28    string(APPEND CMAKE_${language}_FLAGS_INIT "-ffunction-sections ")
29    string(APPEND CMAKE_${language}_FLAGS_INIT "-fdata-sections ")
30    string(APPEND CMAKE_${language}_FLAGS_INIT "-fshort-enums ")
31    string(APPEND CMAKE_${language}_FLAGS_INIT "-Wall -Werror -Wextra ")
32    string(APPEND CMAKE_${language}_FLAGS_INIT
33           "-Wno-error=deprecated-declarations ")
34    string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-unused-parameter ")
35    string(APPEND CMAKE_${language}_FLAGS_INIT
36           "-Wno-missing-field-initializers ")
37
38    string(APPEND CMAKE_${language}_FLAGS_DEBUG_INIT "-Og")
39endforeach()
40
41string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--gc-sections ")
42