## @file
#  EFI_REGULAR_EXPRESSION_PROTOCOL Implementation
#
#  Copyright (c) 2018-2020, Intel Corporation. All rights reserved.
#  (C) Copyright 2015 Hewlett Packard Enterprise Development LP
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
  INF_VERSION     = 0x00010018
  BASE_NAME       = RegularExpressionDxe
  FILE_GUID       = 3E197E9C-D8DC-42D3-89CE-B04FA9833756
  MODULE_TYPE     = UEFI_DRIVER
  VERSION_STRING  = 1.0
  ENTRY_POINT     = RegularExpressionDxeEntry
[Sources]
  RegularExpressionDxe.c
  RegularExpressionDxe.h
  OnigurumaUefiPort.h
  OnigurumaUefiPort.c
# Wrapper header files start #
  stdio.h
  stdarg.h
  stddef.h
  stdlib.h
  string.h
  config.h
# Wrapper header files end #
# Upstream Oniguruma code
  oniguruma/src/onig_init.c
  oniguruma/src/oniguruma.h
  oniguruma/src/regcomp.c
  oniguruma/src/regenc.c
  oniguruma/src/regenc.h
  oniguruma/src/regerror.c
  oniguruma/src/regexec.c
  oniguruma/src/oniggnu.h
  oniguruma/src/reggnu.c
  oniguruma/src/regint.h
  oniguruma/src/regparse.c
  oniguruma/src/regparse.h
  oniguruma/src/regposerr.c
  oniguruma/src/onigposix.h
  oniguruma/src/regposix.c
  oniguruma/src/regsyntax.c
  oniguruma/src/regtrav.c
  oniguruma/src/regversion.c
  oniguruma/src/st.c
  oniguruma/src/st.h
# Supported Character Encodings
  oniguruma/src/ascii.c
  oniguruma/src/unicode.c
  oniguruma/src/unicode_fold1_key.c
  oniguruma/src/unicode_fold2_key.c
  oniguruma/src/unicode_fold3_key.c
  oniguruma/src/unicode_unfold_key.c
  oniguruma/src/utf16_le.c
  oniguruma/src/utf8.c
  oniguruma/src/utf16_be.c
  oniguruma/src/euc_jp.c
  oniguruma/src/sjis.c
  oniguruma/src/sjis_prop.c
  oniguruma/src/euc_jp_prop.c
[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  MemoryAllocationLib
  BaseMemoryLib
  DebugLib
  PrintLib
[Guids]
  gEfiRegexSyntaxTypePosixExtendedGuid    ## CONSUMES  ## GUID
  gEfiRegexSyntaxTypePerlGuid             ## CONSUMES  ## GUID
[Protocols]
  gEfiRegularExpressionProtocolGuid       ## PRODUCES
[BuildOptions]
  # Enable STDARG for variable arguments
  *_*_*_CC_FLAGS = -DHAVE_STDARG_H -U_WIN32 -DONIG_VARIADIC_FUNC_ATTR=EFIAPI
  # Override MSFT build option to remove /Oi and /GL
  MSFT:*_*_*_CC_FLAGS          = /GL-
  INTEL:*_*_*_CC_FLAGS         = /Oi-
  # Oniguruma: potentially uninitialized local variable used
  MSFT:*_*_*_CC_FLAGS = /wd4701 /wd4703
  # Oniguruma: intrinsic function not declared
  MSFT:*_*_*_CC_FLAGS = /wd4164
  # Oniguruma: old style declaration in st.c
  MSFT:*_*_*_CC_FLAGS = /wd4131
  # Oniguruma: 'type cast' : truncation from 'OnigUChar *' to 'unsigned int'
  MSFT:*_*_*_CC_FLAGS = /wd4305 /wd4306
  # Oniguruma: nameless union declared in regparse.h
  MSFT:*_*_*_CC_FLAGS = /wd4201
  # Oniguruma: 'type cast' : "int" to "OnigUChar", function pointer to "void *"
  MSFT:*_*_*_CC_FLAGS = /wd4244 /wd4054
  # Oniguruma: previous local declaration
  MSFT:*_*_*_CC_FLAGS = /wd4456
  # Oniguruma: signed and unsigned mismatch/cast
  MSFT:*_*_*_CC_FLAGS = /wd4018 /wd4245 /wd4389 /wd4090
  # Oniguruma: tag_end in parse_callout_of_name
  GCC:*_*_*_CC_FLAGS = -Wno-error=maybe-uninitialized
  # Oniguruma: implicit conversion from 'UINTN' (aka 'unsigned long long') to 'long'
  GCC:*_CLANGPDB_*_CC_FLAGS = -Wno-error=constant-conversion
  # Not add -Wno-error=maybe-uninitialized option for XCODE
  # XCODE doesn't know this option
  XCODE:*_*_*_CC_FLAGS =