## @file\r
# process depex section generation\r
#\r
-# Copyright (c) 2007, Intel Corporation\r
+# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
#\r
-# All rights reserved. This program and the accompanying materials\r
+# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
from GenFdsGlobalVariable import GenFdsGlobalVariable\r
import subprocess\r
from Ffs import Ffs\r
-import os\r
+import Common.LongFilePathOs as os\r
from CommonDataClass.FdfClass import DepexSectionClassObject\r
from AutoGen.GenDepex import DependencyExpression\r
-import shutil\r
from Common import EdkLogger\r
from Common.BuildToolError import *\r
+from Common.Misc import PathClass\r
\r
## generate data section\r
#\r
\r
def __FindGuidValue(self, CName):\r
for Arch in GenFdsGlobalVariable.ArchList:\r
- for PkgDb in GenFdsGlobalVariable.WorkSpace.PackageList:\r
+ PkgList = GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform,\r
+ Arch,\r
+ GenFdsGlobalVariable.TargetName,\r
+ GenFdsGlobalVariable.ToolChainTag)\r
+ for Inf in GenFdsGlobalVariable.FdfParser.Profile.InfList:\r
+ ModuleFile = PathClass(Inf, GenFdsGlobalVariable.WorkSpaceDir)\r
+ ModuleData = GenFdsGlobalVariable.WorkSpace.BuildObject[\r
+ ModuleFile,\r
+ Arch,\r
+ GenFdsGlobalVariable.TargetName,\r
+ GenFdsGlobalVariable.ToolChainTag\r
+ ]\r
+ for Pkg in ModuleData.Packages:\r
+ if Pkg not in PkgList:\r
+ PkgList.append(Pkg)\r
+ for PkgDb in PkgList:\r
if CName in PkgDb.Ppis:\r
return PkgDb.Ppis[CName]\r
if CName in PkgDb.Protocols:\r
# @param Dict dictionary contains macro and its value\r
# @retval tuple (Generated file name list, section alignment)\r
#\r
- def GenSection(self, OutputPath, ModuleName, SecNum, keyStringList, FfsFile = None, Dict = {}):\r
+ def GenSection(self, OutputPath, ModuleName, SecNum, keyStringList, FfsFile = None, Dict = {}, IsMakefile = False):\r
\r
if self.ExpressionProcessed == False:\r
self.Expression = self.Expression.replace("\n", " ").replace("\r", " ")\r
OutputFile = os.path.join (OutputPath, ModuleName + 'SEC' + SecNum + '.dpx')\r
OutputFile = os.path.normpath(OutputFile)\r
\r
- GenFdsGlobalVariable.GenerateSection(OutputFile, [InputFile], Section.Section.SectionType.get (SecType))\r
+ GenFdsGlobalVariable.GenerateSection(OutputFile, [InputFile], Section.Section.SectionType.get (SecType), IsMakefile=IsMakefile)\r
FileList = [OutputFile]\r
return FileList, self.Alignment\r