From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.1.89; helo=eur01-ve1-obe.outbound.protection.outlook.com; envelope-from=pankaj.bansal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0089.outbound.protection.outlook.com [104.47.1.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B907D209574FD for ; Mon, 26 Feb 2018 04:51:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CoBtb8T5R1/msbpsWcOqyjth/H7oh+ui7YQpYXxz988=; b=M4i3666m9642tSLWdOEzJ9bYZ/tTTuSVT9Hyq9Cv6+H84XmwuGKSIiD926uf8SUEZNjTIBw5EUO//3X/Rvl+Zi1mkwv/NNWPYNIbDPnYTr9HGFSaKWPwzC7lZlfFkPxKHxHJXtDl26A3sWpg16BjSZQYLdnQ8747KX/Dmtm5Q58= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=pankaj.bansal@nxp.com; Received: from uefi-workstation.ap.freescale.net (14.142.187.166) by DB3PR0402MB3948.eurprd04.prod.outlook.com (2603:10a6:8:10::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Mon, 26 Feb 2018 12:57:09 +0000 From: Pankaj Bansal To: edk2-devel@lists.01.org Cc: Pankaj Bansal , Yonghong Zhu , Liming Gao Date: Mon, 26 Feb 2018 18:25:53 +0530 Message-Id: <1519649753-29666-1-git-send-email-pankaj.bansal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519626521-15902-1-git-send-email-pankaj.bansal@nxp.com> References: <1519626521-15902-1-git-send-email-pankaj.bansal@nxp.com> MIME-Version: 1.0 X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: BMXPR01CA0038.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::24) To DB3PR0402MB3948.eurprd04.prod.outlook.com (2603:10a6:8:10::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 512a30cb-4eb4-4685-0d58-08d57d1872aa X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DB3PR0402MB3948; X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3948; 3:DYvoG5/F4gmFcyNzCe33aezXhqJrWdAuVRz75e0Vm56W9xxW7foKK8YSbObK/bmgEDPl0c3XuE635eiZxfICcWOg+Yh2PZK6FEjPrvbFAAZgMfHLHisgdyI4qpch8B/lsd/2C+IeSc0nXLrpAmcv4sENNTJPtrSj7wRhkmnbX0MC07rVjaTXMsSIvN1xIHSpldLmEVMVeFERTTWVIbn0+HR4XVQVZYHu+AN7JiCrXSZz3UNxECMWv10QSO7Gd8F5; 25:pQX03VC+wRi8AVr72qc1xT6YHFflet/qIe6RuEkW6vkqS02GpQ+NgkokABylUtKT0yQE5OElbgqVjuAkQ8L3oPL1uvfiG5uc2brC7hMKCJ1j//luwYObNpSudo5fRu9do21RdIxnELcuSoN4slNyz5+XUTVHcJpWgz5oZf76eMq+Lh1RcNqHPA+qvEJZqe0nB7ZhQC7YYA6jztzU222AfI81WsjtHKYZmjmNiuisn4rtsNVpCUWYnHir+iRJLiB4rvAFoSpcRaMzKmtdE0jDcA74tSGF5OcPMO+tYnBDks7PLIqDRqtUmMgpzPZg42BsvC48V8ZAnCSzBpneImD0IA==; 31:ty7jRB+yqsr93wew9R8/tSDn1maLL6aoaKJ0TdzIZ6cmqVBwoiWU2yKSB6+UJRBjL2a99CvdPgG97yRIeR3GN4tIEyp9rmzZXTm1El5WgIKQTrgErNpgXmmi633ZOt86iPDBix431x2MuCIq1B19hkuWQRBQwtm60++xYS6v12Ad4y91WSL62Bcj6MPrmxBGmTI/Xi/5D+WFE8ABUrKEuhcnZNrQwwCyuZ8UZPO+/X8= X-MS-TrafficTypeDiagnostic: DB3PR0402MB3948: X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3948; 20:1b7q2gqHoTfAFK8pasxWMqK9Vy9HMZomgT2lv/+Fg1nnoY7ew3V7Au7auKtWyccFk+XcWjbps4APlh80TUyWydpu55qW6czipU6vsUjgGI/DjqK/Se6QmW8kIIcgWmfa3QIVYGGEV3fcbCVg0Ajoop9D877O++x43BEoXZs/wYy9DN5+u/nyFWgI6hMQpDyPnRKwqA0IF4WK4cgsx3MdE2EgfWbwMDWH3RIDTL2qRh14CLowGz/DnRFXBYZlXXLgs1h+pI8XjFwP1bRoDpsysmyGJCvlTXAm1ZTuECdck6gayDnfsCXpSiSnIITlISgn0mnkXi83+GPWbwKu0NYe6i/0l+Mxtqk0Zv8VZle6ZVP815mbFRL/+oJ8RCNfikUZIaCoal2gh1snJgmu566Ob0gEjavomi/+PC6Q0zCR0wVnTtvOBt3BbzQgRyQSAiT5HceloonDiapmk+lKFUzldmx+D8uViIRGDFZWsN6Ym8h7MWAzwTqnhoGhIhqI/ple; 4:d2v0EqRUy7BbxtAIDpqdoZ8mzxwDi+FhUy199ruOMS+Z53Sv1ge4pqJ/gV7ErQShXwR4i9JlGel/7r9kFkbSf3LUFs9XJaV1JfdqL+c8r0DJ/rhm6+XNtVORdghOafJjRj+odpXupudB5yvYdxZbAaJPUjUSEQQIJO7TfUb0bgww/NqQVJzvSZ3j8YwPvqCBBnkkNguLNArqK7gOaBAD6eK9Iy0MDAgiQl9H6vlFT1rIPeMXlwJURBRs4vYqP/FNbD7uOp/EISYEYddhCM43ej96iBkxBYBiXmReUHdd1aKUxDwD8LMPQyB8Ytl+BwVA0zwNbGHV2qSicLD5svBt8lwLKRD7oOh4ci9TSIyLuic= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231220)(944501161)(10201501046)(6055026)(6041288)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:DB3PR0402MB3948; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0402MB3948; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(346002)(366004)(39860400002)(376002)(396003)(199004)(189003)(6916009)(7736002)(68736007)(54906003)(97736004)(55236004)(105586002)(26005)(305945005)(50226002)(386003)(478600001)(186003)(106356001)(8676002)(4326008)(81156014)(25786009)(3846002)(50466002)(81166006)(316002)(16586007)(48376002)(86362001)(6116002)(47776003)(6512007)(2906002)(8936002)(53936002)(5660300001)(2361001)(5009440100003)(6486002)(6666003)(36756003)(51416003)(52116002)(2950100002)(6506007)(76176011)(66066001)(2351001)(16526019)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3948; H:uefi-workstation.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB3PR0402MB3948; 23:7yyHCnzEhawUsPCORcaDVJl27XENKqABhx4kbq5?= =?us-ascii?Q?5CF4bWX0J6QV+ZWOJc6xRxDAj68xe7KIoYmySUNjqbRPvWnAGMS+st4Lhsot?= =?us-ascii?Q?CYOkIJjxa++p1g00iRefE1fvQOh994SqDoi5yNl6rEl0JjZAy/g0xQ1u99kl?= =?us-ascii?Q?SYIzMHeBF7WNFmeriMj6EMbJo3h9RMexD//+vW97pxK8F5gjPrFx5CeiGCbp?= =?us-ascii?Q?QWkCpEZUygOHn9JuofAAXTqsVZ//IjdR6rOcIV//qzoIMtkw3ElsBrLY0o9S?= =?us-ascii?Q?skJZI1zk3WmRJlB8P/2LMH9y5SLYwCZp6jm8WhOtkwR7YQVSh+ldLsKQtJIg?= =?us-ascii?Q?L3sfS4NqeFlg9vpDFsXEEJrzq28wHZJN21YMpVp5HAedCdb7hK1yz1fFGqDo?= =?us-ascii?Q?EyFVQ1qzPPCN0+/hLPrLPUcFDIAehKBsv/AZYY4oEdQj4eet8G6AVVS1p+C1?= =?us-ascii?Q?JRzR5ThqnenPhZo1T17wuSJXc839tRofTfyaD9QlBGXXPHGaJ+Yw1lWulQ1h?= =?us-ascii?Q?Z4iuNB085FtR/mZPmb6asqRSueCgB+KLLART57YNDnXRiEojS5C8jOhEhk/r?= =?us-ascii?Q?Vuo3IXgz/qutT6FWihm6mO8Mo9OPJomuuks8Pv+kmk3EPiHHDjDEGEaW/HMx?= =?us-ascii?Q?x3Uq5HOAQ+IWQpIlAZpSJJHiSNGG0HSv02JIZKdel746Zqt54P7p1R/6UsK0?= =?us-ascii?Q?dDuDjqlSX90/ZlUqpFEiIdz3JFoFgB4i20tTRDnYtYwI+Y0o4jqvD+4t80hi?= =?us-ascii?Q?4dm/syihimNTI1hqWruO/WCqqzPkSs/L/yHT9RdWJu/QzwppIflKo+6OC/9Y?= =?us-ascii?Q?1qzy9w3qLap+fgzuvHm+Qcgo0jKvlMXGNUcBMcobx29So0MieftQaJ4QgdmW?= =?us-ascii?Q?FWvM/pVFB3jqV95tS8M6hfqzWjo3KqcduqFpz4VPJFuGlt/ETbMKk5zF8hXK?= =?us-ascii?Q?r838+vZwktyFldpEFUzjpaXeA2Cb1Q/3/fboqMflmieyZXfn/kvYIax+oDGU?= =?us-ascii?Q?I9YDgYPGIejcardi6Yi5468IOUV8noTF9goREzJKzG3zLD6lFF50lia8aBLb?= =?us-ascii?Q?DFuQpcIEQe1SZj2ZMxLJHP9fYj6XfuXbikMpxBJpO25vrLrAURltsOuuyABr?= =?us-ascii?Q?Tx6KuhWvJ0keQXH0w0ZyHx0livXE+m/2HWzayUkoZcKjwDylglCklX/Q7UPZ?= =?us-ascii?Q?xPdroWlQBbMKbFp5BQ/SPWFfGi0v2j/L0wOu1p42V9DUnVf7+Ch302f05bQ?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3948; 6:E5FqtPWdECGOzT+QxvJq/GJw7QUf0bvbJ8VGljL67NfjVbPwWCsbr5GpgOjQzEQKqDA35h86V1eY+lnXo8RlaYk9m2Rz1DrG9ExcTfTeLQ37PWPujt2wMynG7/bJxYTN+eInAZb9FMiEHEDiM05SWB1ZTxd3wdWFdICAh7UvFpC5PblFcm6Ql+WEEMFYn0QSy4Q00YFJKDmSscYkhVdOGsAyI7ivODgGByDAEPKc1hz8pPtim3WjdLfK8p5ggpYopbpIyy8O87L+hpUQMHc0apRXmDxvxx6PSLxCshOsJTWJNISNqfBWMIFUAEl4X+uFtcuB86yqzoe9m/m8oqr6/PKdRdONExdr0W5yhuha4Ds=; 5:aTRQco80vRvMvIqbn5RC89I749sxyDRy4AM1/MkWSNL8dYxOJbMBQx9xGHGOzbl8eevcQdWHEuJEewoVdOjXRnSex0GAW8VEqxBc/FgqKZLXdLTr4fro+wHF0ocM4H0XPHAnjazZoCMf4vwsPQn4u+XARmXlqXxxnXDWdmmnrIM=; 24:A9G/EpC3EAVUmKJ5o6ry/ckndZFIBs543Z/xLqV63qB5bnJpvXu+vZajoWZ6lbKnivUGPl8w3VLDa6rsbV0bBuJskDHKmUD0A+9RnYsvXtg=; 7:zKcAMnyJKcCAgpTmnVu8e+HxdYhIJcuKzNkHd+nkyrw1Gzf0dVtdGFrEd011X/tSWIEcwcXjoSYHRop1RzkCp+ONU5q5TGOcRFfPFcYSE6/4DWwzdpbJiDpvqXJ1BQt1MVbrB9BW8ig1iRWGe7JCwmcAcilLVd82PU7qu+EvtQU3/FSlYhRR7ePbz6aNcFAL4djbV+qzLfq6ubBEv5aLS/7v6KH2hacgUYoq3r9aHnYnci1wXgBMUHNLtFnHE8/S SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 12:57:09.0008 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 512a30cb-4eb4-4685-0d58-08d57d1872aa X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3948 Subject: [RFC v2] Add Platform Include path in modules X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Feb 2018 12:51:09 -0000 Content-Type: text/plain 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 Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pankaj Bansal --- Notes: V2: -check if .dec file exist before appending include paths to include path list BaseTools/Source/Python/AutoGen/AutoGen.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 405bfa1..4b281d8 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -3783,6 +3783,20 @@ class ModuleAutoGen(AutoGen): for Inc in IncludesList: if Inc not in self._IncludePathList: self._IncludePathList.append(str(Inc)) + PackageFilePath = os.path.join(self.PlatformInfo.MetaFile.SubDir, self.PlatformInfo.MetaFile.BaseName + '.dec') + if os.path.isfile(os.path.normpath(mws.join(self.PlatformInfo.MetaFile.Root, PackageFilePath))): + PackageFile = PathClass(PackageFilePath, 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