#----------------------------------------------------------------------------
#  Copyright (c) 2022 Arm Limited. All rights reserved.
#  SPDX-License-Identifier: Apache-2.0
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#----------------------------------------------------------------------------

#####################################################################
#  Interface library for platform performance monitoring unit       #
#####################################################################
cmake_minimum_required(VERSION 3.16.3)

project(platform_pmu
    DESCRIPTION     "Header/interface for platform PMU"
    LANGUAGES       C)

# Interface library:
set(PLATFORM_PMU_TARGET platform_pmu)
add_library(${PLATFORM_PMU_TARGET} INTERFACE)
target_include_directories(${PLATFORM_PMU_TARGET} INTERFACE include)
