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.57; 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-ve1eur01on0057.outbound.protection.outlook.com [104.47.1.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B200F222630DD for ; Sun, 25 Feb 2018 22:24:13 -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=tYkZak6wEQvrgE7dq1n7ECuegkkjfQoV5PrhMBurJMg=; b=wiM4We/9aLtKdEXf6cShc87ncwBKrK4mN3NuozBkOG+0pLy0frSgM7oCCpNcfsi9fSW+YFgap5btQx9iAiHuHmR8S0LOYVJiDYdSaXA5mAgLnXOWgdRITsCARqqSVqukthXE2lDPhkPkeq4y8m62KgkLU0LEbIt4N9FsAxOL45c= 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 DB3PR0402MB3947.eurprd04.prod.outlook.com (2603:10a6:8:10::14) 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 06:30:13 +0000 From: Pankaj Bansal To: edk2-devel@lists.01.org Cc: Pankaj Bansal , Yonghong Zhu , Liming Gao Date: Mon, 26 Feb 2018 11:58:41 +0530 Message-Id: <1519626521-15902-1-git-send-email-pankaj.bansal@nxp.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: OS2PR01CA0138.jpnprd01.prod.outlook.com (2603:1096:602::32) To DB3PR0402MB3947.eurprd04.prod.outlook.com (2603:10a6:8:10::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: bcd33df0-1b8c-4a9d-49a5-08d57ce26601 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DB3PR0402MB3947; X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3947; 3:tw+aV9UljwSzTGYDCQDkVhl53TaakGK74BOJm3JI8pcl9snlg1+QvSiRSoqAlpdi2a6h1MiIqATzVeAhZIVHFcwW2V5J6nww+SyT00xIckUr/OCaOKYiU+fFFeWOwDz2ixQcWOQBk9haMXFvEzDflzP6EhaDW3IV6vb7EwGbYeneeKH/QQu5EsfOIlU9OBaPHjrc0pQC1AEPIeWMgpJXpxbtIErspZY2P/a3IdDCeHgOpZjLjj5eomXsBj4LJ5DM; 25:e2WuZWT0FAMPgVwzPYLKonNopriTclyYD46e+GlLsLcJvIUJDWDOkGXnZBsm+eylftHNxNtwpIjdGCH9gGJh9sTptYlqoIMvE0iji46nMTgt7pKioL+qUU0TRWalr5cjlNDdLJ6T936Fxv3GWVpRkmRkr5sV7iqS8UmoAkh1ThQ7/+TVnWfbl85zV7l0+BdljeWx3zkpwBZ5S/HcQm+1tmeFTufXAMhCbgOZy91v+4FkJrRnO3wHz2rqQJPrO3MCSzSR1uRMAMSeMwoMFrldQnEaZq4uPfxv0QFRa1eSBOdebUvQLvpbMkKfsdZE6S2xn/I1AbEKCBT/I7M+vQ3rUw==; 31:5q7pArC0C/gZ4eJdgTliv5rr//WGfqXAgWQBrCas8eo/cd8WpX+DaIUy5CFMpOPbAJvyHHpnkhRrrNQWVpeljkgvn1zQWw3sjOIaBGAZno7IwusJIgf92JH10N1dXOfUVxvAbqceUcsXynJTOxF0XddO1wMd+1BK6U32Ui9AQUsPr5YtVS8nQ45UsZv+vsH6LrUIoLZVsOO7zpi0VZRGQKZG3gVKKmkX89VNPQwn78w= X-MS-TrafficTypeDiagnostic: DB3PR0402MB3947: X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3947; 20:/RgbDkYH/SEyE8fOmaT6BHzV5SeXaGxeTzpApU70YBxUfYaNzYF7NNTB/zhDkIsswANvXPcWKhYxGzqxqhfk5TGjyILWxK1F9+aX3O/0C/fwAMHm+tUBO9UgXfIw7M3q6BH34V5My2QUWDH0c6fTMRWcPHDp6ms9jj6Fi0jYBDRnVp41NZPB2MGuEboiReK2Djb2BNuEU0/VTgTrTCiL+ltyekSznWqFmYCS7pFQMQ+yXAhQqKZjoig2rAFnv2H8Qihk+VAKuvV497qXAnxzCrQezulN9t9Gpb3cDUxyPPo9x9OLCvkOjLcXwf7IQq0VHpCcYkfZ9nyXdOjGqxL6CP5XFEn3WaPWwBMpzmR0zKOQ05CarvDhZU9GOEuhpvNPRR5IgtUvxqPsEYUOB6CMsUqoWg9Dj3iWnfucw1vkDFW/P7pcTrOjbb4j3zuCz578MXAkLjbzsDDYAYDETUJRou1lnpLVNNn+5hCl1KTmp/y8MWNiXTi1VBdmrZ+BmWIe; 4:T67/x3O2ON1m//eS2X1ibb1wL8O8ZS8AIQnDaTENnUMWEAuTmtLsDz7ZrGHXLx/Lc4GESp03M3MpQtnrduP7gW47CNWOpgwMMZiPGUpyvIoH73YDZrOUCuMHZlWZdOQ9HW8xSF2QSR8hbarDVEWiTdWM0V4N6tHhHOipxwUwZB3SaMjuU3iJJ2M95L3KE+Lh51NDL7WNpG/kK0H9BfwgDHewvNzQONXY1SEuVJ01/KMz1nAOGnS+E4FAO6jy6uxffNsvjzh2IHC/WPaUaESs7P1QPELf9WcCMYxcSIH3Oi0V1cQk7wP3hmXynoW6sd/8sIw0x+7Y2zjD+86NJoNopID1m6qwvG8htgG31kc9Tnw= 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)(10201501046)(3231220)(944501161)(52105095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB3PR0402MB3947; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0402MB3947; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(346002)(396003)(39380400002)(39860400002)(376002)(199004)(189003)(68736007)(8676002)(66066001)(97736004)(3846002)(55236004)(26005)(50466002)(51416003)(48376002)(478600001)(47776003)(52116002)(6116002)(6486002)(54906003)(6506007)(386003)(316002)(305945005)(5660300001)(7736002)(5009440100003)(16526019)(105586002)(4326008)(36756003)(2351001)(16586007)(6512007)(25786009)(53936002)(2361001)(6916009)(106356001)(8936002)(81166006)(81156014)(6666003)(186003)(50226002)(86362001)(2906002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3947; 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; DB3PR0402MB3947; 23:CZSLjFoYE9+YC2aZOwNphigSkAPe3PyvJcgliWZ?= =?us-ascii?Q?kONHlBcvCtj1ZMO8CeXMfrEpNv/NsHQMf9c4XciHKjiXS4D5I+pXYP+8KwoS?= =?us-ascii?Q?pWLnQtntWtbDvrjAxsrikwd8yhm5EH+1bACmaiolNdIv87agVD8eRPX96ZRl?= =?us-ascii?Q?KXHyaycJItJbWrjHJPGdbhLDQ/JQElRN+OZ4f94GkAEdbeseuFv4t84+LNHK?= =?us-ascii?Q?m0GNfPryFZW6+H9hMUJSwPq+UA7XU21Qr1iox8bfV4LeiqRSMd6TllvJC/b4?= =?us-ascii?Q?yf3hLc/CXR0Y0AprWD6SrTAooJxvgEjH/w2rKLhvemQSIWlK7XPfUCHNg4N6?= =?us-ascii?Q?zUqHc6g0R+uL+U+NL189ZvmEtdma80JrjSEP2NSTzlZT4iV032Huy/ckOhdV?= =?us-ascii?Q?CUNEUUD/PkC6MT3PspeiF7ZsikHh8cHP3RykIolIDsTW1P+oNpHeTOcTsI0t?= =?us-ascii?Q?c66Z+twLMcaFsmQAIpxX/06NIsTBgM2vF8xEqakql5Xg01ABz11OcE7nv6jS?= =?us-ascii?Q?IKWuK71UzgAvgjuvpnakkjVPhl5Dt7aqUFKgkpZ/JT0J/IuCe1oM/Yqh76lf?= =?us-ascii?Q?0ZP4HrF3TT+tvpJ78/VclIDnrPx+nL3tS5jvhd5OTXHE4bMG4x2rKI5L67um?= =?us-ascii?Q?uy57hU5ZRlDr0RwYVDOFoz6oVuerAJMgb+Ef0h6v4K3JKFlmGLnma49L/cXQ?= =?us-ascii?Q?Hklbb6bFTT8zydr5XkntUrfh3Squn+NDYkIwrYyS2ZB+kE5M6j5f+P6lZAtm?= =?us-ascii?Q?n6ci4b37LwRlKRWe23fwM2klDA1Rnl7VcbLsul0dTbQdvbiPpX/+c6679DJZ?= =?us-ascii?Q?x9llqVjHO7dFec7p2KkB43z8OPFUBmvx58ORf8a53kppmG7yAC+wMJsgMb3Z?= =?us-ascii?Q?eun+uaowIfcLy6Buu39/x3DoccigFx6RBXcZpOiuNbyz4CHY+3mDDkgG/8di?= =?us-ascii?Q?FEENsuVJpSx7rNPVo9VHFDrMhZINCoqrYIvIXcQub2dnDtB+malMQ+x+gQ2Z?= =?us-ascii?Q?73s8c+Si3LZa13RU3Wde4W0JBTr7FmjycvQEFSsrTYmR7h4GwkesZNYFuG3F?= =?us-ascii?Q?bwpOLv56mWEqQfMTy6SjG7pLKRoBvkUFM6B+AsEKl5/w5tQkAhUtPEbO2upk?= =?us-ascii?Q?npdjKaYlqYoENvnMNY5LXtbbjZGDbmJsadmMzo/izBOUs/uQvFaXi0tDSRT1?= =?us-ascii?Q?rxKppEwlSC94vZAw=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB3PR0402MB3947; 6:1e9D0+QAVO1LOtf8lUrceuXcTG5WZX/qIfyp+I4ITSK4bjr9DpsvNXH63P9ssWip+yvct14Ro3ysmDnNT7Tb+hqW+0o/TYTk9u7cEuWdPtSMsWGdsUXCnDdsnr8qehQdxgZM0WTIbD5hf62cQjEzNM1kyRpYD0nAadnlXNkgVHDh2FhhXCKWbv+yXBdGIa/syrquHfBNBGZ1ttCj7HJQ5YMAcej6cEVs3dDTe2uwVLUTSWxpgJNTBZ+2Q5QrSFx3XaWh74qqPU/HHbmNynM0AbbIGSmT8xIIHmUMFit6HaB46sAalP3q1+b7BNUAEv8oPWda3YW6zBXpjDYsOOzJiOKMK9Z0jEIHFnM9UOS3nk8=; 5:Wxj6oofUKli6xMnhVwXM3qR4+2B8Cx3A6e8il9/BLzRkutilWK6xOG2/9l7pHOg55dnAqhPy4CIHfvGjiBzzeNUVPvoBDbjK7IjaOChyXQuLIvK4XoCXjxW24/QEApnZQuKwx8u7ynUowe41LvKlamdREVwpV2WK4Fd0hlOP9Tg=; 24:7aH7Ii1g+ZuAHQZDIR0Be8SQL/yE/CVKH3SE0Lag6ztALPdfY43wEuDpNt7T1vgC8AlJ7O2tLoxGx+/mjTZo6Yytn5t3gMKsbpaKhHoNyv4=; 7:R6s3WICmOTMP9yiP59D8QBwGBAuLcMp6okJbz9nAs9nrtKYcEkZjQ4iBmSn+vGqcoVtFvypjEC89zMQhjgEqbJ/yyOnpbJwISbNhsRsWk3UpUdNeaxsCkabnRlksdGpS9Y3w4qsRGptBLT8ST4N2tp2i+EOs4pjx7+v0pSHzo2JArL8Lqtp5LEjt13cp/sFcYwC8T+GjG8s6qLw0OC9Pf2ufTWUlLIOC3qki/0fDLHr3I0DpaucrwR4lzx4yHdj4 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 06:30:13.5950 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bcd33df0-1b8c-4a9d-49a5-08d57ce26601 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3947 Subject: [RFC] 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 06:24:15 -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 --- 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