##  @file
# Provides Shell 'dp' dynamic command.
#
# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010006
  BASE_NAME                      = dpDynamicCommand
  FILE_GUID                      = 0253F9FA-129A-4A8D-B12E-7DC2B6376302
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = DpCommandInitialize
  UNLOAD_IMAGE                   = DpUnload
#
#  This flag specifies whether HII resource section is generated into PE image.
#
  UEFI_HII_RESOURCE_SECTION      = TRUE

[Sources.common]
  Dp.uni
  Dp.c
  Dp.h
  Literals.h
  Literals.c
  DpInternal.h
  DpUtilities.c
  DpTrace.c
  DpDynamicCommand.c

[Packages]
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseLib
  BaseMemoryLib
  DebugLib
  ShellLib
  UefiLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  SortLib
  PrintLib
  DevicePathLib
  PerformanceLib
  DxeServicesLib
  PeCoffGetEntryPointLib

[Guids]
  gPerformanceProtocolGuid                                ## CONSUMES ## SystemTable
  gEdkiiFpdtExtendedFirmwarePerformanceGuid               ## CONSUMES ## SystemTable

[Protocols]
  gEfiLoadedImageProtocolGuid                             ## CONSUMES
  gEfiDriverBindingProtocolGuid                           ## SOMETIMES_CONSUMES
  gEfiComponentName2ProtocolGuid                          ## SOMETIMES_CONSUMES
  gEfiLoadedImageDevicePathProtocolGuid                   ## SOMETIMES_CONSUMES
  gEfiHiiPackageListProtocolGuid                          ## CONSUMES
  gEfiShellDynamicCommandProtocolGuid                     ## PRODUCES

[DEPEX]
  TRUE
