From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 65F2A202E5452 for ; Wed, 5 Sep 2018 22:20:26 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Sep 2018 22:20:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,334,1531810800"; d="scan'208";a="88068920" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 05 Sep 2018 22:16:57 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 5 Sep 2018 22:16:55 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 5 Sep 2018 22:16:54 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Thu, 6 Sep 2018 13:16:52 +0800 From: "Gao, Liming" To: "Zhu, Yonghong" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Shaw, Kevin W" Thread-Topic: [edk2] [Patch] Build Spec: Extend exclamation statement's keyword to case-insensitive Thread-Index: AQHUQ1sPDw+48oEK0U+Z7v1QPgHoTaTiuulQ Date: Thu, 6 Sep 2018 05:16:52 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E2EE546@SHSMSX104.ccr.corp.intel.com> References: <1535961137-17412-1-git-send-email-yonghong.zhu@intel.com> In-Reply-To: <1535961137-17412-1-git-send-email-yonghong.zhu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] Build Spec: Extend exclamation statement's keyword to case-insensitive X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Sep 2018 05:20:26 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >Yonghong Zhu >Sent: Monday, September 03, 2018 3:52 PM >To: edk2-devel@lists.01.org >Cc: Kinney, Michael D ; Shaw, Kevin W >; Gao, Liming >Subject: [edk2] [Patch] Build Spec: Extend exclamation statement's keyword >to case-insensitive > >This patch add some description for "!include", "!error", "!if", etc, >to extend those statement's keyword to case-insensitive. > >Cc: Liming Gao >Cc: Michael Kinney >Cc: Kevin W Shaw >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Yonghong Zhu >--- > .../82_auto-generation_process.md | 22 +++++++++++++----= ----- > README.md | 1 + > 2 files changed, 14 insertions(+), 9 deletions(-) > >diff --git a/8_pre-build_autogen_stage/82_auto-generation_process.md >b/8_pre-build_autogen_stage/82_auto-generation_process.md >index abfa55c..6ce1710 100644 >--- a/8_pre-build_autogen_stage/82_auto-generation_process.md >+++ b/8_pre-build_autogen_stage/82_auto-generation_process.md >@@ -268,11 +268,11 @@ Multiple library class instances for a single librar= y >class must not be > specified in the same `[LibraryClasses]` or `` section in= the > DSC file. > > #### 8.2.4.1 !include Files > >-The DSC (and FDF) file can use `!include` statements to include text file= s that >+The DSC and FDF file can use `!include` statements to include text files = that > contain content that would appear in the DSC file. When gathering the >content > from the DSC (or FDF) file, the file pointed to by the !include statement= is > read before any other information that appears later in the file. > > The build system does not parse the files as the lines are read, but rath= er the >@@ -283,10 +283,12 @@ If only a filename is provided, the file must be >located in the same directory > as the DSC or FDF file. Use of `$(WORKSPACE)//` is allowe= d > for include files outside of the directory tree containing the DSC or FDF= file, > or `/` if the include file is in the directory tree > containing the DSC or FDF file. > >+The keyword `!include` is case-insensitive. >+ > #### 8.2.4.2 INF and DEC Parsing > > The build tools try to parse the INF file one by one, including the INF f= ile > for library instances. From the INF file, the build tools collect informa= tion > such as source file list, library class list, package list, GUID/Protocol= /PPI >@@ -594,18 +596,18 @@ enclosed by double quotation marks. > When testing values for PCDs, only the PCD name is required: > `TokenSpaceGuidCname.PcdCname`; enclosing the PCD name in "$(" and ")" >is not > permitted. > > Supported statements are: `!ifdef`, `!ifndef`, `!if`, `!else`, `!elseif` = and >-`!endif`. These control statements are used to either include or exclude = lines >-as the parsing tool processes these files. The `!ifdef` and `!ifndef` >-statements test whether a Macro has been defined or not defined (PCDs are >-always defined - the build will break if a PCD is used by a module specif= ied in >-the DSC file that cannot be located in any of the dependent DEC files, fr= om >the >-`[Packages]` section of an INF specified in the DSC file). FeatureFlag an= d >-FixedAtBuild access methods are the only PCDs that can be used in >conditional >-directives. >+`!endif`, and those keywords are case-insensitive. These control statemen= ts >are >+used to either include or exclude lines as the parsing tool processes the= se >files. >+The `!ifdef` and `!ifndef` statements test whether a Macro has been defin= ed >or >+not defined (PCDs are always defined - the build will break if a PCD is u= sed by >+a module specified in the DSC file that cannot be located in any of the >dependent >+DEC files, from the `[Packages]` section of an INF specified in the DSC f= ile). >+FeatureFlag and FixedAtBuild access methods are the only PCDs that can be >used in >+conditional directives. > > The build system will process the DSC and FDF files more than once. The f= irst > pass is to pick up all macros and PCD values for macros and PCDs used in > conditional directives, then on the second pass, process the conditional > directive content. This second pass is required as there is no required o= rder >@@ -1064,10 +1066,12 @@ source files and generate the binary files. > > The DSC and FDF file can use `!error` statement. The argument of this >statement is an > error message, it causes build tool to stop at the location where the >statement is > encountered and error message following the `!error` statement is output = as >a message. > >+The keyword `!error` is case-insensitive. >+ > ### 8.2.5 Post processing > > Once all files are parsed, the build tools will do following work for eac= h EDK > II module: > >diff --git a/README.md b/README.md >index 9ca8733..8b20643 100644 >--- a/README.md >+++ b/README.md >@@ -225,5 +225,6 @@ Copyright (c) 2008-2017, Intel Corporation. All rights >reserved. > | | Update PCD value and SKU, DefaultStore info in build repor= t >| | > | | Clarify structure PCD field value assignment precedence >| | > | | Update description for build handles PCDs for SKU support >| | > | | Add statement about module scoped `` section overrid= e >scope >| | > | | Add !error statement section >| | >+| | Extend exclamation statement's keyword to case-insensitive >| | >-- >2.6.1.windows.1 > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel