## @file
#  BrotliCustomDecompressLib produces BROTLI custom decompression algorithm.
#
#  It is based on the Brotli v0.5.2.
#  Brotli was released on the website https://github.com/google/brotli.
#
#  Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BrotliDecompressLib
  MODULE_UNI_FILE                = BrotliDecompressLib.uni
  FILE_GUID                      = 69EC7DB2-B0DD-493A-963A-C5F330131BAA
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL
  CONSTRUCTOR                    = BrotliDecompressLibConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  GuidedSectionExtraction.c
  BrotliDecUefiSupport.c
  BrotliDecUefiSupport.h
  BrotliDecompress.c
  BrotliDecompressLibInternal.h
  # Wrapper header files start #
  stddef.h
  stdint.h
  stdlib.h
  string.h
  # Wrapper header files end #
  brotli/c/common/dictionary.c
  brotli/c/common/transform.c
  brotli/c/dec/bit_reader.c
  brotli/c/dec/decode.c
  brotli/c/dec/huffman.c
  brotli/c/dec/state.c
  brotli/c/include/brotli/decode.h
  brotli/c/include/brotli/port.h
  brotli/c/include/brotli/types.h
  brotli/c/common/constants.h
  brotli/c/common/context.h
  brotli/c/common/dictionary.h
  brotli/c/common/platform.h
  brotli/c/common/transform.h
  brotli/c/common/version.h
  brotli/c/dec/bit_reader.h
  brotli/c/dec/huffman.h
  brotli/c/dec/state.h
  brotli/c/dec/prefix.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[Guids]
  gBrotliCustomDecompressGuid  ## PRODUCES  ## UNDEFINED # specifies BROTLI custom decompress algorithm.

[LibraryClasses]
  BaseLib
  DebugLib
  BaseMemoryLib
  ExtractGuidedSectionLib
