1#
2# Arm SCP/MCP Software
3# Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8add_library(${SCP_MODULE_TARGET} SCP_MODULE)
9
10target_include_directories(${SCP_MODULE_TARGET}
11                           PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
12
13target_sources(${SCP_MODULE_TARGET}
14         PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/mod_scmi_power_capping.c")
15
16target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-power-allocator)
17target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-power-meter)
18target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-power-coordinator)
19
20if(SCP_EXCLUDE_SCMI_POWER_CAPPING_STD_COMMANDS AND
21    (NOT SCP_ENABLE_SCMI_POWER_CAPPING_FAST_CHANNELS_COMMANDS))
22     message( FATAL_ERROR "Non fast channels commands and fast channels commands can't be excluded simultaneously" )
23endif()
24
25if(NOT SCP_EXCLUDE_SCMI_POWER_CAPPING_STD_COMMANDS)
26    add_definitions(-BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS)
27    target_sources(${SCP_MODULE_TARGET}
28             PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/scmi_power_capping_protocol.c")
29
30    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-scmi)
31endif()
32
33if("resource-perms" IN_LIST SCP_MODULES)
34    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-resource-perms)
35endif()
36
37if(SCP_ENABLE_SCMI_POWER_CAPPING_FAST_CHANNELS_COMMANDS)
38    target_sources(
39        ${SCP_MODULE_TARGET}
40        PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/scmi_power_capping_fast_channels.c")
41    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-transport)
42endif()
43