From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web08.7860.1646747091359785086 for ; Tue, 08 Mar 2022 05:44:52 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=X9/zcaxR; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: yi1.li@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646747091; x=1678283091; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/4kJIXtXJOlDm0UeOznTdfZNVE6X93Q1Y2NqAPLNyp0=; b=X9/zcaxRY3Ffc/PWI6W7jdamQJcXAVOAVVrnCzlpBdJugH1+Ew34cWa8 9Ndwy3lvpY46MWQI/9BvzOIbYntDq/FdvABI7I1zpoSZi5Y5f6Eq7rHMS ctkGiu7YCnqHxHRk/grBs7YH7J+rywxSRT5zubMiaxSZvNeZRL1qYZ0jJ J/2NKcDXs54uS2T47q+barPYu9ju68wKI24WGAUY9N57SGJZ6cOm0QTUl B7UTKiN2togJ5Hem2tueGpYRJW9iwMIt18Axvulr3Z0J1+SwnFf+iDFP9 qLtBwkh/xeJGuaVVyq3Dstn6dJFtPJGzFKwHn4Do/r022YBZQeCfISAy8 A==; X-IronPort-AV: E=McAfee;i="6200,9189,10279"; a="242121254" X-IronPort-AV: E=Sophos;i="5.90,165,1643702400"; d="scan'208";a="242121254" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Mar 2022 05:44:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,165,1643702400"; d="scan'208";a="513109360" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga006.jf.intel.com with ESMTP; 08 Mar 2022 05:44:50 -0800 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Tue, 8 Mar 2022 05:44:50 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21 via Frontend Transport; Tue, 8 Mar 2022 05:44:50 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.175) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.21; Tue, 8 Mar 2022 05:44:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ks/LEfUT82+8uW/6DEvrmFUUkHcS1Xodmq2YdSKWc6F84ofjtqp1H1INIU8K80lL8r+jAVd0CimHmhBuySPYczS0FVNDA8Tdh2c9rW1iVJoX1pEnNGAlMsGsI2J+iAWCvDnCcJno5W/kzQepUtcM+mv6ZVwotFRG6mo0+aHjincP5/HM33bDUha3cCTJKzwJDi+01fkysPxpXdke/L4A2G+6DzZyLYKYG1Bn4nuF/GwXqgryu7dygleaWHYp3iWM8nw7VLLzlTyVmpRT+7O8JQATsfnCm39wRxV57lpfmFo19Xq4G+CD5KA4vndi0F9d4SJV5bVvCZItpcvDDLgq8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5T9EPuPF8km8dB/7NTlabmab5CEq85gHyzD2mHihUko=; b=gxaCRYYfPFZd2rfMa+nUiWyf+aOQph996Ab2bPbStWYyucJo8ABrOcOZc1oZm3kOso2yeePgaAx5h3JqNJCefAZVu5W2dJBn/Mw37158phufpvM3qgA2caEfJbW79XOvUvbdMeIk4Ivr+d2eXLU0/5HwJCCN7o+dfq/kMEs9WYlW3AKz8RugejmEzzm2FR9nKtqJKgZ8mT81bCk5ukkHr3MqpbAGizQpDimLgHLjc0dVdAn/UgcFjWrQ4zXrfc6heqfR4PxSQK0d5107FwPTi8lGYOJ7DlHEA6qKvkwRDvoNRAP5OyPaPrSSDxI+GZ55USTkOgC8v58CETpRJjiGZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MWHPR11MB1597.namprd11.prod.outlook.com (2603:10b6:301:d::13) by BL0PR11MB3315.namprd11.prod.outlook.com (2603:10b6:208:6c::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Tue, 8 Mar 2022 13:44:47 +0000 Received: from MWHPR11MB1597.namprd11.prod.outlook.com ([fe80::551c:c7d3:9cc6:b10f]) by MWHPR11MB1597.namprd11.prod.outlook.com ([fe80::551c:c7d3:9cc6:b10f%10]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:44:46 +0000 From: "yi1 li" To: "devel@edk2.groups.io" CC: "Feng, Bob C" , "Gao, Liming" , "Luo, Heng" Subject: Re: [PATCH V2 2/2] BaseTools:Add the FeatureFlagExpression usage to the Source Section Thread-Topic: [PATCH V2 2/2] BaseTools:Add the FeatureFlagExpression usage to the Source Section Thread-Index: AQHYMvIQ/u8SQX2hoEKof1Q6NsNOhay1fvzQ Date: Tue, 8 Mar 2022 13:44:46 +0000 Message-ID: References: <964dee97e12793125d8c6cb486cf4d6498c05570.1646746598.git.yi1.li@intel.com> In-Reply-To: <964dee97e12793125d8c6cb486cf4d6498c05570.1646746598.git.yi1.li@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c622a766-5519-460a-dde0-08da0109cf2d x-ms-traffictypediagnostic: BL0PR11MB3315:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: psxx57e46UCZrSoR4Kgk2CCVV9duki3sfgMvJZBawZk3621X1pOGTBa/Zy/rOt3aWluVnsEf/hw3xHCH1J/mdMMpfPy04vtltyGhtkaHKa3qBl8uXtOzRrw5I+HiaAa0PDpIXrzDkbukdJDf8MkFsXomOc3EykKxvxzV3iBaohr0dfXW7xDLyaG2VOORlSG63bsBL/qm+eX7tYwGeGlRASKg/+3KLGGLkFDM08mLiHcY8xdzy9/f6v6TciSO+p/O4nKZhcHJ9ZzFYZxW4ykItKjXcGDiBA8x/qz/WD6lrGf4hlqTPbzdwDrc8ivBS5RfE1YcLIpywkIj4NvHLkypo9ekm1SJcdQjbzK5J4ume1jIC9yCgLIXr4B2c+KQbfgPjdIkCsk1Pxw4RmgoNFj97XiqRqzXzdnVY8etcN+DFh5Hi9hotuczDLa9MQ2IYzZfJhK4Li5THJvUTCzkigkR4x8ycD7pFb3vusUd3hBRmZg3HJK2T8+5vR+W/tn32tp3aDaFli9Uq2Yo1/0PM/dLDH6baxVtYZDx3AblgeWZeUNk4u1EDevQRMRvY+mPxXGjtFpLARKfyYxRfx5nXqtYvpxIoWswp6aXJAC12SHaK8TWCwvAO9ydoOARii9u7/94ckyH7B+DpkjqUL3QZilSBgGsOQhzJzd/f8JnTrpWS911Snc5QSGjf986489e/4loYiCx8RpwWI5/wg99Ys7LYcb53L1MJGEZ08DDZWvUQWXorzpTnDNBM7bHTadjBW14/YRvX/mnd8AAACc+9TwgTEpd1H4uZKduC1uW0KkBqw4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1597.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(52536014)(71200400001)(508600001)(9686003)(107886003)(33656002)(122000001)(82960400001)(38070700005)(2906002)(26005)(186003)(8676002)(7696005)(76116006)(6506007)(55016003)(53546011)(4326008)(66556008)(64756008)(66446008)(5660300002)(66476007)(66946007)(38100700002)(86362001)(316002)(54906003)(83380400001)(6916009);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?oGYFV+WFJh2V10Qy9ryxS7DrGrmA7vt5iMdEXVyZC7mSAG1VvB8Oep05QcmG?= =?us-ascii?Q?wMBpjQMbYrIHVVKrHqtHHDXNGkL75aWJuGEEDHq0v3DHbon9tP94wv7eVnEM?= =?us-ascii?Q?KYtR55j0Q2a1/yA1KjoU4/JPnyUKU2dp7pyu7IsRKYqNqcuxUEXCv2bccBj2?= =?us-ascii?Q?aHoi+bIVbK+WRZKWLpS9bIzAbPQpnFzthRyyCKKyuRCxaa8kxtpzgEDNZ11d?= =?us-ascii?Q?dsyE66MeptcUdF7Bbyr/EiFhxscR4AmdMfY7+vga9ahVpKTHQNoqEdNoLy5g?= =?us-ascii?Q?ogqK8n25Il4sd+utFKRJY/ZITWX7vyUveqkVnSNoTCS8HbsqLRj0k39CAEFb?= =?us-ascii?Q?oz+QIzatZ2ASXv3kpA/xNLSqnU8N5Vb4zTXJs2Wb52dXnpbeFmVCUNlxRhQ0?= =?us-ascii?Q?z53e9WigM8axf8mBkgEVOwgPY5Hek7LRTSOf0KVtY1Xr4RVnGojtEE2Sa+zU?= =?us-ascii?Q?YRFC4bTuwTYYAPWJ8kGLzcmUbm0MNEpj+jKt++hxWmYA2cgkM5CFPpEtJ0vU?= =?us-ascii?Q?qWMARxIveEIqhEiAtSBk6Y/cfBhDh7YhFG+jTmOEbL4RydF2GZdXGJd7l5tA?= =?us-ascii?Q?rkEefkGJvfVtVhgcZTzgrsKQnllZWU1WaHRWcK/I2ZTpKSkVgHl4zn818hF2?= =?us-ascii?Q?J50GWMch1CCXigKSfdnSvy1lfB6ARUXb1GQj+DqUIVowmjDb+MhyDqpgAHog?= =?us-ascii?Q?Dxb5uq4/D/fpyXxgd9HydjdZdKViHAl5mQv9dkGwWj5U9BDYYGjmYbbc/8IZ?= =?us-ascii?Q?AmSCC/NDeRyXR1AfKNI8rsdpkEZHMxBqXcJnlcwGWTcW6RfANM9F/F8m/qtV?= =?us-ascii?Q?KPJ/tUxsG13/plT+6q2MbbCQkszijqqdk32wbOfUUdtboV8drb4UXd/Hec/Y?= =?us-ascii?Q?E8vBg7UTZ2OlzicLwu6yRFjpQpvpb8lOie45xURFzvCSKir8HP9ZkIoweL9q?= =?us-ascii?Q?yNmYeB7ljT9lSpmcLAj3g9L+wSZTLPmfeibT3OcwQm3w8FHg83aWiJycHIHg?= =?us-ascii?Q?cy+XwXlx6f1ncgcvJpotYUY6wcnVeW5aHnKvst5KON3hujgW4UTCwtwhR+Qo?= =?us-ascii?Q?C5GM86S6J430py6LVBpcuSbCDSy/quzkoq/5tvCRtA5wHYgDD6UnI7mhSy1O?= =?us-ascii?Q?aRPszQxeJ321bB4g+ciehwBMkjkklRLc+tsnzre+RBgoQ5uWmMnFomne6ibs?= =?us-ascii?Q?qRpp/BGHsussJfZxPhl4scKuV4LF9iWr9R5sLC54V4uY/6eF33Fg/zYoof2S?= =?us-ascii?Q?GuZCB3xIQMG3bT4YLs7uBzxUJ3J1ZwKvhb9GDFXCxISYpGJfObkqxzmZXo7W?= =?us-ascii?Q?eWrqxb6caUPaFIU729j79Im7rCwyepj7veaaboSJ+SZ973tO03Cm5U9L7Uu1?= =?us-ascii?Q?BY0ILsOGEUsRL0AZ8UCQqziN1tTgHdWNDJBErs8fhJ6hTMXYwYHJqto4xn8J?= =?us-ascii?Q?WBEgWAyjmq1eotiwe0PJwqC7A9GoA+JECvQVIDnke48rtHoB9tyhMvgXEP3B?= =?us-ascii?Q?icAtbc65DA08IY6etGHkMW8GJ5O2ynKGM7qTmZPl9k7fhKEXaPU1Nj918aD5?= =?us-ascii?Q?azfoMBOHagIc4gpVPHuIA64GAN7PsrYqdmeFK6Isk6T4gs+Fey1eoczPbMHL?= =?us-ascii?Q?gJul9fN+uTajeLL0c4u9MC8=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1597.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c622a766-5519-460a-dde0-08da0109cf2d X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2022 13:44:46.2163 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zjyTRPVY17dkZfGcMNjSWMCKvBG7lGebb2HqyyJt3dBDpKXC3uNeeenaUlkj1Mq0baVfagkmFjOHfQKnNgndew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3315 Return-Path: yi1.li@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Sorry for a typo and Cc wrong email, Re-send patch sequence, Please review new patches. Thanks, Yi -----Original Message----- From: Li, Yi1 =20 Sent: Tuesday, March 8, 2022 9:42 PM To: devel@edk2.groups.io Cc: Li, Yi1 ; Feng, Bob C ; Gao, Li= ming ; Luo, Heng Subject: [PATCH V2 2/2] BaseTools:Add the FeatureFlagExpression usage to th= e Source Section REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D1446 FeatureFlagExpression Support in Source section of INF file. The Pcd value = in the expression is from INF or DEC. When a FeatureFlagExpression is present,if the expression evaluates to TRUE= ,then the entry is valid. If the expression evaluates to FALSE, then the ED= K II build tools must ignore the entry. This patch is going to add this feature. Cc: Bob Feng Cc: Liming Gao Cc: Heng Luo Signed-off-by: yi1 li --- BaseTools/Source/Python/Workspace/InfBuildData.py | 14 ++++++++++---- .../Source/Python/Workspace/MetaFileParser.py | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/BaseTools/Source/Python/Workspace/InfBuildData.py b/BaseTools/= Source/Python/Workspace/InfBuildData.py index 91d986d8cb1b..cb58e612cbd0 100644 --- a/BaseTools/Source/Python/Workspace/InfBuildData.py +++ b/BaseTools/Source/Python/Workspace/InfBuildData.py @@ -529,11 +529,17 @@ class InfBuildData(ModuleBuildClassObject): for Record in RecordList: LineNo =3D Record[-1] ToolChainFamily =3D Record[1] - TagName =3D Record[2] - ToolCode =3D Record[3] - + # OptionsList :=3D [TagName, ToolCode, FeatureFlag] + OptionsList =3D ['','',''] + TokenList =3D GetSplitValueList(Record[2], TAB_VALUE_SPLIT) + for Index in range(len(TokenList)): + OptionsList[Index] =3D TokenList[Index] + if OptionsList[2]: + FeaturePcdExpression =3D self.CheckFeatureFlagPcd(OptionsL= ist[2]) + if not FeaturePcdExpression: + continue File =3D PathClass(NormPath(Record[0], Macros), self._ModuleDi= r, '', - '', False, self._Arch, ToolChainFamily, '', T= agName, ToolCode) + '', False, self._Arch, ToolChainFamily,=20 + '', OptionsList[0], OptionsList[1]) # check the file validation ErrorCode, ErrorInfo =3D File.Validate() if ErrorCode !=3D 0: diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTool= s/Source/Python/Workspace/MetaFileParser.py index a3b6edbd15ee..3508591b281e 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -736,6 +736,10 @@ class InfParser(MetaFileParser): @ParseMacro def _SourceFileParser(self): TokenList =3D GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT= ) + # Let TokenList[2] be TagName|ToolCode|FeatureFlag + if len(TokenList) > 3: + for extraToken in range(3, len(TokenList)): + TokenList[2] =3D TokenList[2] + '|' +=20 + TokenList[extraToken] self._ValueList[0:len(TokenList)] =3D TokenList Macros =3D self._Macros # For Acpi tables, remove macro like ' TABLE_NAME=3DSata1' -- 2.33.0.windows.2