BaseTools/Build: Consider only build-specified architectures
When building for any specific architecture, the build script today is loading DSC sections for other architectures not in the build. The build process should disregard DSC sections that are not relevant to the build. This fixes scenario whereby a build occurs in a source tree that was been cleaned of non-essential directories. For instance, X64 builds do not require the ArmPkg directory to build a firmware image. This condition (build break when ArmPkg is absent) occurs when included DSCs have sections for multiple architectures. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
committed by
Yonghong Zhu
parent
0b42d7d8a3
commit
7717798408
@ -2,6 +2,7 @@
|
||||
# This file is used to create a database used by build tool
|
||||
#
|
||||
# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<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
|
||||
@ -543,6 +544,13 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
Macros["EDK_SOURCE"] = GlobalData.gEcpSource
|
||||
for Record in RecordList:
|
||||
DuplicatedFile = False
|
||||
|
||||
# process only records COMMON and self.Arch
|
||||
SectionArch = Record[3].upper()
|
||||
if SectionArch != 'COMMON':
|
||||
if SectionArch != self.Arch:
|
||||
continue
|
||||
|
||||
ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch)
|
||||
ModuleId = Record[5]
|
||||
LineNo = Record[6]
|
||||
|
Reference in New Issue
Block a user