mirror of
https://github.com/tianocore/edk2.git
synced 2025-08-26 04:33:51 +00:00

Some checks are pending
CodeQL / Analyze (IA32, CryptoPkg) (push) Waiting to run
CodeQL / Analyze (IA32, MdeModulePkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, DynamicTablesPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, FatPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, FmpDevicePkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, IntelFsp2Pkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, IntelFsp2WrapperPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, MdePkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, PcAtChipsetPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, PrmPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, SecurityPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, ShellPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, SourceLevelDebugPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, StandaloneMmPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, UefiCpuPkg) (push) Waiting to run
CodeQL / Analyze (IA32,X64, UnitTestFrameworkPkg) (push) Waiting to run
CodeQL / Analyze (X64, CryptoPkg) (push) Waiting to run
CodeQL / Analyze (X64, MdeModulePkg) (push) Waiting to run
UPL Build / Build UPL VS2022 (FIT_BUILD=FALSE, windows-latest, 3.12, DEBUG, VS2022) (push) Waiting to run
UPL Build / Build UPL VS2022 (FIT_BUILD=TRUE, windows-latest, 3.12, DEBUG, VS2022) (push) Waiting to run
UPL Build / Build UPL GCC (FIT_BUILD=FALSE, ubuntu-latest, 3.12, DEBUG, GCC) (push) Waiting to run
UPL Build / Build UPL GCC (FIT_BUILD=TRUE, ubuntu-latest, 3.12, DEBUG, GCC) (push) Waiting to run
Disable write strings warning for host-based unit test builds when building modules of type HOST_APPLICATION. Modules of type HOST_APPLICATION may compile and link code under test into the host-based unit test. When building GoogleTest based unit tests, the G++ compiler is used. The G++ compiler is stricter than GCC for passing a const string into a function parameter that is not const. This is not a warning for GCC build of firmware code. But GoogleTest builds that use g++ detect as a warning and that breaks the build. The firmware code under test can not be changed, so the warning -Wno-write-strings is added to CC_FLAGS to ignore this warning. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
102 lines
6.1 KiB
PHP
102 lines
6.1 KiB
PHP
## @file
|
|
# UnitTestFrameworkPkg DSC include file for host based test DSC
|
|
#
|
|
# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
!include UnitTestFrameworkPkg/UnitTestFrameworkPkgCommon.dsc.inc
|
|
|
|
[Defines]
|
|
UNIT_TESTING_ADDRESS_SANITIZER_ENABLE = TRUE
|
|
|
|
[LibraryClasses.common.HOST_APPLICATION]
|
|
BaseLib|MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
|
|
UnitTestHostBaseLib|MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
|
|
CpuLib|MdePkg/Library/BaseCpuLibNull/BaseCpuLibNull.inf
|
|
CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLibNull/BaseCacheMaintenanceLibNull.inf
|
|
CmockaLib|UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf
|
|
GoogleTestLib|UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf
|
|
SubhookLib|UnitTestFrameworkPkg/Library/SubhookLib/SubhookLib.inf
|
|
FunctionMockLib|UnitTestFrameworkPkg/Library/FunctionMockLib/FunctionMockLib.inf
|
|
UnitTestLib|UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf
|
|
DebugLib|UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf
|
|
MemoryAllocationLib|UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
|
HostMemoryAllocationBelowAddressLib|UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
|
UefiBootServicesTableLib|UnitTestFrameworkPkg/Library/UnitTestUefiBootServicesTableLib/UnitTestUefiBootServicesTableLib.inf
|
|
PeiServicesTablePointerLib|UnitTestFrameworkPkg/Library/UnitTestPeiServicesTablePointerLib/UnitTestPeiServicesTablePointerLib.inf
|
|
NULL|UnitTestFrameworkPkg/Library/UnitTestDebugAssertLib/UnitTestDebugAssertLibHost.inf
|
|
NULL|MdePkg/Library/StackCheckLibNull/StackCheckLibNullHostApplication.inf
|
|
|
|
[BuildOptions]
|
|
MSFT:*_*_*_CC_FLAGS = /MTd
|
|
GCC:*_*_*_CC_FLAGS = -fno-pie
|
|
GCC:*_*_*_ASLCC_FLAGS = -fpie
|
|
!if $(UNIT_TESTING_ADDRESS_SANITIZER_ENABLE)
|
|
#
|
|
# Enable Address Sanitizer for VS2019, VS2022, and GCC
|
|
#
|
|
MSFT:*_VS2019_*_CC_FLAGS = /fsanitize=address
|
|
MSFT:*_VS2022_*_CC_FLAGS = /fsanitize=address
|
|
GCC:*_*_*_CC_FLAGS = -fsanitize=address
|
|
!endif
|
|
!ifdef $(UNIT_TESTING_DEBUG)
|
|
MSFT:*_*_*_CC_FLAGS = -D UNIT_TESTING_DEBUG=1
|
|
GCC:*_*_*_CC_FLAGS = -D UNIT_TESTING_DEBUG=1
|
|
XCODE:*_*_*_CC_FLAGS = -D UNIT_TESTING_DEBUG=1
|
|
!endif
|
|
GCC:*_*_*_CC_FLAGS = -fexceptions
|
|
GCC:*_*_*_CC_FLAGS = --coverage
|
|
GCC:*_*_*_DLINK_FLAGS = --coverage
|
|
[BuildOptions.common.EDKII.HOST_APPLICATION]
|
|
#
|
|
# MSFT
|
|
#
|
|
MSFT:*_*_*_CC_FLAGS = /EHs
|
|
MSFT:*_*_*_DLINK_FLAGS == /nologo /SUBSYSTEM:CONSOLE /DEBUG /out:"$(BIN_DIR)\$(MODULE_NAME_GUID).exe" /pdb:"$(BIN_DIR)\$(MODULE_NAME_GUID).pdb" /WHOLEARCHIVE
|
|
|
|
MSFT:*_VS2015_IA32_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%Lib" /LIBPATH:"%VS2015_PREFIX%VC\Lib" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
|
|
MSFT:*_VS2015x86_IA32_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%Lib" /LIBPATH:"%VS2015_PREFIX%VC\Lib" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
|
|
MSFT:*_VS2017_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
|
|
MSFT:*_VS2019_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
|
|
MSFT:*_VS2022_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
|
|
|
|
MSFT:*_VS2015_X64_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%VC\Lib\AMD64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
|
|
MSFT:*_VS2015x86_X64_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%VC\Lib\AMD64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
|
|
MSFT:*_VS2017_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
|
|
MSFT:*_VS2019_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
|
|
MSFT:*_VS2022_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
|
|
|
|
#
|
|
# GCC
|
|
#
|
|
GCC:*_*_*_CC_FLAGS = -Wno-write-strings
|
|
GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/$(MODULE_NAME_GUID) -m32 -no-pie
|
|
GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/$(MODULE_NAME_GUID) -m64 -no-pie
|
|
#
|
|
# Surround our static libraries with whole-archive, so constructor-based test registration works properly.
|
|
# Note that we need to --no-whole-archive before linking system libraries.
|
|
#
|
|
GCC:*_*_*_DLINK_FLAGS = -Wl,--whole-archive
|
|
GCC:*_*_*_DLINK2_FLAGS == -Wl,--no-whole-archive -lgcov -lpthread -lstdc++ -lm
|
|
!if $(UNIT_TESTING_ADDRESS_SANITIZER_ENABLE)
|
|
#
|
|
# Enable Address Sanitizer for GCC for HOST_APPLICATION
|
|
#
|
|
GCC:*_*_*_DLINK_FLAGS = -fsanitize=address
|
|
!endif
|
|
|
|
#
|
|
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
|
|
#
|
|
XCODE:*_*_IA32_DLINK_PATH == gcc
|
|
XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
|
|
XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/$(MODULE_NAME_GUID) -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
|
|
XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
|
|
|
|
XCODE:*_*_X64_DLINK_PATH == gcc
|
|
XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/$(MODULE_NAME_GUID) -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie
|
|
XCODE:*_*_X64_ASM_FLAGS == -g
|
|
XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))"
|