## @file
#  Legacy Boot Maintainence UI module is library for BDS phase.
#
#  Copyright (c) 2015, 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                      = LegacyBootMaintUiLib
  MODULE_UNI_FILE                = LegacyBootMaintUiLib.uni
  FILE_GUID                      = e6f7f038-3ed9-401a-af1f-5ea7bf644d34
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL|DXE_DRIVER UEFI_APPLICATION
  CONSTRUCTOR                    = LegacyBootMaintUiLibConstructor
  DESTRUCTOR                     = LegacyBootMaintUiLibDestructor
#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  LegacyBootMaintUiVfr.h
  LegacyBootMaintUi.h
  LegacyBootMaintUiVfr.Vfr
  LegacyBootMaintUiStrings.uni
  LegacyBootMaintUi.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  DevicePathLib
  BaseLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  DebugLib
  HiiLib
  MemoryAllocationLib
  UefiBootManagerLib
  UefiLib
  PrintLib
  BaseMemoryLib

[Guids]
  gEfiIfrTianoGuid                  ## SOMETIMES_PRODUCES ## UNDEFINED # Extended IFR Guid Opcode
  gEfiIfrBootMaintenanceGuid        ## CONSUMES ## HII # BootMaint HII Package
  gEfiLegacyDevOrderVariableGuid    ## PRODUCES ## Variable:L"LegacyDevOrder"

[Protocols]
  gEfiHiiConfigAccessProtocolGuid             ## PRODUCES
  gEfiLegacyBiosProtocolGuid                  ## CONSUMES
  gEfiHiiConfigRoutingProtocolGuid            ## CONSUMES

[Depex]
  gEfiHiiDatabaseProtocolGuid

