## @file
#  HII Library implementation using UEFI HII protocols and services.
#
#  Copyright (c) 2006 - 2018, 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                      = UefiHiiLib
  MODULE_UNI_FILE                = UefiHiiLib.uni
  FILE_GUID                      = 3143687A-7C80-404e-B5FE-2D88980E1B1C
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = HiiLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  HiiLib.c
  HiiString.c
  HiiLanguage.c
  InternalHiiLib.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseMemoryLib
  BaseLib
  DebugLib
  UefiBootServicesTableLib
  DevicePathLib
  UefiLib
  UefiHiiServicesLib
  PrintLib

[Protocols]
  gEfiFormBrowser2ProtocolGuid ## SOMETIMES_CONSUMES
  gEfiDevicePathProtocolGuid   ## SOMETIMES_CONSUMES

[Guids]
  gEdkiiIfrBitVarstoreGuid       ## SOMETIMES_CONSUMES ## GUID
