## @file
#  Provides FSP measurement functions.
#
#  This library provides MeasureFspFirmwareBlob() to measure FSP binary.
#
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = FspMeasurementLib
  FILE_GUID                      = 890B12B4-56CC-453E-B062-4597FC6D3D8C
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = FspMeasurementLib

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  FspMeasurementLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  SecurityPkg/SecurityPkg.dec
  IntelFsp2Pkg/IntelFsp2Pkg.dec
  IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  PrintLib
  PcdLib
  PeiServicesLib
  PeiServicesTablePointerLib
  FspWrapperApiLib
  TcgEventLogRecordLib
  HashLib

[Ppis]
  gEdkiiTcgPpiGuid                                                   ## CONSUMES

[Pcd]
  gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig            ## CONSUMES
  gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress                 ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision        ## CONSUMES

