## @file
# GOP driver
#
# Copyright (c) 2020, Rebecca Cran <rebecca@bsdio.com>
# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2011, Apple Inc. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 1.29
  BASE_NAME                      = EmuGopDxe
  FILE_GUID                      = 1b290126-5760-424e-8aa2-3faf4d0d7978
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeEmuGop

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#
#  DRIVER_BINDING                =  gEmuGopDriverBinding
#  COMPONENT_NAME                =  gEmuGopComponentName
#

[Sources]
  ComponentName.c
  Gop.h
  GopDriver.c
  GopScreen.c
  VbeShim.c

[Packages]
  MdePkg/MdePkg.dec
  OvmfPkg/OvmfPkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  BaseLib
  BaseMemoryLib
  BltLib
  DebugLib
  DevicePathLib
  MemoryAllocationLib
  PciLib
  PcdLib
  PrintLib
  UefiLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint

[Protocols]
  gEfiGraphicsOutputProtocolGuid   # PROTOCOL BY_START
  gEfiDevicePathProtocolGuid       # PROTOCOL TO_START
  gEfiPciIoProtocolGuid            # PROTOCOL TO_START

[Pcd]
#  gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution

