## @file
#  NULL class library to register var check HII handler.
#
#  Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions
#  of the BSD License which accompanies this distribution.  The
#  full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = VarCheckHiiLib
  MODULE_UNI_FILE                = VarCheckHiiLib.uni
  FILE_GUID                      = A34FBDD0-05D3-4AF7-A720-560E91AC8CDF
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL|DXE_RUNTIME_DRIVER DXE_SMM_DRIVER
  CONSTRUCTOR                    = VarCheckHiiLibNullClassConstructor

[Sources]
  VarCheckHiiLibNullClass.c
  VarCheckHii.h
  VarCheckHiiGenFromFv.c
  VarCheckHiiGenFromHii.c
  VarCheckHiiGen.c
  VarCheckHiiGen.h
  InternalVarCheckStructure.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  BaseMemoryLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  PcdLib
  VarCheckLib

[Guids]
  gEdkiiIfrBitVarstoreGuid                  ## SOMETIMES_CONSUMES  ## GUID

[Protocols]
  gEfiFirmwareVolume2ProtocolGuid           ## SOMETIMES_CONSUMES
  gEfiFirmwareVolumeBlock2ProtocolGuid      ## SOMETIMES_CONSUMES
  gEfiHiiDatabaseProtocolGuid               ## SOMETIMES_CONSUMES

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdVarCheckVfrDriverGuidArray   ## SOMETIMES_CONSUMES
