1#
2# Arm SCP/MCP Software
3# Copyright (c) 2021-2024, 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(
14    ${SCP_MODULE_TARGET}
15    PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/mod_scmi_perf.c")
16
17if(NOT SCP_TARGET_EXCLUDE_SCMI_PERF_PROTOCOL_OPS)
18    add_definitions(-DBUILD_HAS_SCMI_PERF_PROTOCOL_OPS)
19
20    target_sources(
21        ${SCP_MODULE_TARGET}
22        PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/scmi_perf_protocol_ops.c")
23endif()
24
25if(SCP_ENABLE_SCMI_PERF_FAST_CHANNELS)
26    target_sources(
27        ${SCP_MODULE_TARGET}
28        PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/scmi_perf_fastchannels.c")
29endif()
30
31if(SCP_ENABLE_PLUGIN_HANDLER)
32    if(NOT SCP_ENABLE_SCMI_PERF_FAST_CHANNELS)
33        MESSAGE(FATAL_ERROR
34                "ERROR: Plugin-handler requires SCMI-perf FastChannels")
35    endif()
36
37    target_sources(
38        ${SCP_MODULE_TARGET}
39        PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/perf_plugins_handler.c")
40endif()
41
42target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-dvfs module-scmi
43                                                   module-timer
44                                                   module-perf-controller)
45
46if("resource-perms" IN_LIST SCP_MODULES)
47    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-resource-perms)
48endif()
49
50if("statistics" IN_LIST SCP_MODULES)
51    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-statistics)
52endif()
53
54if("transport" IN_LIST SCP_MODULES)
55    target_link_libraries(${SCP_MODULE_TARGET} PRIVATE module-transport)
56endif()
57