## @file
# The DXE driver produces FORM DISPLAY ENGIEN protocol.
#
# Copyright (c) 2007 - 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                      = DisplayEngine
  MODULE_UNI_FILE                = DisplayEngine.uni
  FILE_GUID                      = E660EA85-058E-4b55-A54B-F02F83A24707
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeDisplayEngine
  UNLOAD_IMAGE                   = UnloadDisplayEngine
#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  FormDisplayStr.uni
  FormDisplay.c
  FormDisplay.h
  ProcessOptions.c
  InputHandler.c
  Popup.c
  
[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  
[LibraryClasses]
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  DebugLib
  BaseMemoryLib
  BaseLib
  PrintLib
  HiiLib
  MemoryAllocationLib
  CustomizedDisplayLib

[Protocols]
  gEdkiiFormDisplayEngineProtocolGuid   ## PRODUCES
  gEdkiiFormBrowserEx2ProtocolGuid      ## CONSUMES
  gEfiHiiPopupProtocolGuid              ## PRODUCES

[Depex]
  gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid AND gEdkiiFormBrowserEx2ProtocolGuid
  
[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserGrayOutTextStatement     ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdBrowerGrayOutReadOnlyMenu       ## CONSUMES

[UserExtensions.TianoCore."ExtraFiles"]
  DisplayEngineExtra.uni
