public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [RFC] Add Platform Include path in modules
@ 2018-02-26  6:28 Pankaj Bansal
  2018-02-26  7:42 ` Kinney, Michael D
  2018-02-26 12:55 ` [RFC v2] " Pankaj Bansal
  0 siblings, 2 replies; 10+ messages in thread
From: Pankaj Bansal @ 2018-02-26  6:28 UTC (permalink / raw)
  To: edk2-devel; +Cc: Pankaj Bansal, Yonghong Zhu, Liming Gao

When we are writing the drivers for IP modules, then sometimes we want
that Platform specific customizations or platform dependent values be
supplied to IP module driver. normally we achieve this using Pcd values.

But sometimes we want to use header files for such data.e.g. if the
values are complex structures.

we need a mechanism that platform be able to supply these header files
to a module, without changing module code.

This patch is an attempt to achieve this functionality.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 405bfa1..de4a17c 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -3783,6 +3783,18 @@ class ModuleAutoGen(AutoGen):
                 for Inc in IncludesList:
                     if Inc not in self._IncludePathList:
                         self._IncludePathList.append(str(Inc))
+            PackageFile = PathClass(os.path.join(self.PlatformInfo.MetaFile.SubDir, self.PlatformInfo.MetaFile.BaseName + '.dec'), self.PlatformInfo.MetaFile.Root)
+            Package = self.BuildDatabase[PackageFile, self.Arch, self.BuildTarget, self.ToolChain]
+            PackageDir = mws.join(self.WorkspaceDir, Package.MetaFile.Dir)
+            if PackageDir not in self._IncludePathList:
+                self._IncludePathList.append(PackageDir)
+            IncludesList = Package.Includes
+            if Package._PrivateIncludes:
+                if not self.MetaFile.Path.startswith(PackageDir):
+                    IncludesList = list(set(Package.Includes).difference(set(Package._PrivateIncludes)))
+            for Inc in IncludesList:
+                if Inc not in self._IncludePathList:
+                    self._IncludePathList.append(str(Inc))
         return self._IncludePathList
 
     def _GetIncludePathLength(self):
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-03-09 17:23 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-26  6:28 [RFC] Add Platform Include path in modules Pankaj Bansal
2018-02-26  7:42 ` Kinney, Michael D
2018-02-26 10:55   ` Pankaj Bansal
2018-02-26 15:55     ` Laszlo Ersek
2018-02-26 17:25       ` Kinney, Michael D
2018-02-27  7:39         ` Pankaj Bansal
2018-02-27 11:21           ` Gao, Liming
2018-03-09 10:54             ` Pankaj Bansal
2018-03-09 17:29               ` Kinney, Michael D
2018-02-26 12:55 ` [RFC v2] " Pankaj Bansal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox