##  @file
#  This is the shell application
#
#  (C) Copyright 2013 Hewlett-Packard Development Company, L.P.<BR>
#  Copyright (c) 2009 - 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                    = 0x00010006
  BASE_NAME                      = Shell
  FILE_GUID                      = 7C04A583-9E3E-4f1c-AD65-E05268D0B4D1
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UefiMain

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  Shell.c
  Shell.h
  ShellParametersProtocol.c
  ShellParametersProtocol.h
  ShellProtocol.c
  ShellProtocol.h
  FileHandleWrappers.c
  FileHandleWrappers.h
  FileHandleInternal.h
  ShellEnvVar.c
  ShellEnvVar.h
  ShellManParser.c
  ShellManParser.h
  Shell.uni
  ConsoleLogger.c
  ConsoleLogger.h
  ConsoleWrappers.c
  ConsoleWrappers.h

[Packages]
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  UefiApplicationEntryPoint
  UefiLib
  DebugLib
  MemoryAllocationLib
  ShellCommandLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  DevicePathLib
  BaseMemoryLib
  PcdLib
  FileHandleLib
  PrintLib
  HiiLib
  SortLib
  HandleParsingLib

[Guids]
  gShellVariableGuid                                      ## CONSUMES ## GUID
  gShellMapGuid                                           ## CONSUMES ## GUID
  gShellAliasGuid                                         ## CONSUMES ## GUID

[Protocols]
  gEfiShellProtocolGuid                                   ## PRODUCES
                                                          ## SOMETIMES_CONSUMES
  gEfiShellParametersProtocolGuid                         ## PRODUCES
                                                          ## SOMETIMES_CONSUMES

#  gEfiShellEnvironment2Guid                              ## SOMETIMES_PRODUCES
#  gEfiShellInterfaceGuid                                 ## SOMETIMES_PRODUCES

  gEfiSimpleTextInputExProtocolGuid                       ## CONSUMES
  gEfiSimpleTextInProtocolGuid                            ## CONSUMES
  gEfiSimpleTextOutProtocolGuid                           ## CONSUMES
  gEfiSimpleFileSystemProtocolGuid                        ## CONSUMES
  gEfiLoadedImageProtocolGuid                             ## CONSUMES
  gEfiComponentName2ProtocolGuid                          ## CONSUMES
  gEfiUnicodeCollation2ProtocolGuid                       ## CONSUMES
  gEfiDevicePathProtocolGuid                              ## CONSUMES

[Pcd]
  gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel         ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellSupportOldProtocols  ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellRequireHiiPlatform   ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellSupportFrameworkHii  ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellPageBreakDefault     ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize    ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellInsertModeDefault    ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellScreenLogCount       ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength        ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellPrintBufferSize      ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellForceConsole         ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellSupplier             ## CONSUMES

