diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 2b4ba52e09..8c62ac8e72 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -3160,8 +3160,10 @@ class ModuleAutoGen(AutoGen): # dependent libraries will be created # def CreateMakeFile(self, CreateLibraryMakeFile=True): + # Ignore generating makefile when it is a binary module if self.IsBinaryModule: return + if self.IsMakeFileCreated: return diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 8252a3180d..638df1f6ed 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -2051,6 +2051,11 @@ class InfBuildData(ModuleBuildClassObject): return False ## Retrieve source files def _GetSourceFiles(self): + #Ignore all source files in a binary build mode + if GlobalData.gIgnoreSource: + self._Sources = [] + return self._Sources + if self._Sources == None: self._Sources = [] RecordList = self._RawData[MODEL_EFI_SOURCE_FILE, self._Arch, self._Platform] diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index e463a57a91..2f8bfb42b1 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -736,6 +736,8 @@ class Build(): self.BuildReport = BuildReport(BuildOptions.ReportFile, BuildOptions.ReportType) self.TargetTxt = TargetTxtClassObject() self.ToolDef = ToolDefClassObject() + #Set global flag for build mode + GlobalData.gIgnoreSource = BuildOptions.IgnoreSources if BuildOptions.DisableCache: self.Db = WorkspaceDatabase(":memory:") else: @@ -1903,6 +1905,7 @@ def MyOptionParser(): "This option can also be specified by setting *_*_*_BUILD_FLAGS in [BuildOptions] section of platform DSC. If they are both specified, this value "\ "will override the setting in [BuildOptions] section of platform DSC.") Parser.add_option("-N", "--no-cache", action="store_true", dest="DisableCache", default=False, help="Disable build cache mechanism") + Parser.add_option("--ignore-sources", action="store_true", dest="IgnoreSources", default=False, help="Focus to a binary build and ignore all source files") (Opt, Args)=Parser.parse_args() return (Opt, Args)