##  @file
# Provides shell level 3 functions
# Note that the interactive versions of the time, date, and timezone functions are handled in the level 2 library.
#
# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.
# Copyright (c) 2009-2011, 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                      = UefiShellLevel3CommandsLib
  FILE_GUID                      = 71374B42-85D7-4753-AD17-AA84C3A0EB93
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL|UEFI_APPLICATION UEFI_DRIVER
  CONSTRUCTOR                    = ShellLevel3CommandsLibConstructor
  DESTRUCTOR                     = ShellLevel3CommandsLibDestructor

[Sources.common]
# note that time, timezone, and date are part of the level 2 library
  Type.c
  Touch.c
  Ver.c
  UefiShellLevel3CommandsLib.uni
  UefiShellLevel3CommandsLib.c
  UefiShellLevel3CommandsLib.h
  Cls.c
  Alias.c
  Echo.c
  Pause.c
  GetMtc.c
  Help.c


[Packages]
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseLib
  BaseMemoryLib
  DebugLib
  ShellCommandLib
  ShellLib
  UefiLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  PcdLib
  HiiLib
  FileHandleLib

[Guids]
  gEfiFileInfoGuid
  gShellLevel3HiiGuid

[Pcd.common]
  gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel
  gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize
  gEfiShellPkgTokenSpaceGuid.PcdShellSupplier

