## @file
#  This library is only intended to be used by PlatformBootManagerLib
#  to show progress bar and logo.
#
#  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) 2016, Microsoft Corporation<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BootLogoLib
  MODULE_UNI_FILE                = BootLogoLib.uni
  FILE_GUID                      = 85CDAFAD-13BE-422A-A8E5-55A249600DC3
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = BootLogoLib|DXE_DRIVER UEFI_APPLICATION

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  BootLogoLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  UefiLib
  BaseMemoryLib
  DebugLib
  PrintLib
  PcdLib

[Protocols]
  gEfiGraphicsOutputProtocolGuid                ## SOMETIMES_CONSUMES
  gEfiBootLogoProtocolGuid                      ## SOMETIMES_CONSUMES
  gEdkiiBootLogo2ProtocolGuid                   ## SOMETIMES_CONSUMES
  gEfiUserManagerProtocolGuid                   ## CONSUMES
  gEdkiiPlatformLogoProtocolGuid                ## CONSUMES
