From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Two or more type TXT spf records found.) identity=mailfrom; client-ip=134.134.136.31; helo=mga06.intel.com; envelope-from=yonghong.zhu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 DAA6D21103DD8 for ; Mon, 3 Sep 2018 00:52:20 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2018 00:52:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,324,1531810800"; d="scan'208";a="70151651" Received: from shwdeopenpsi168.ccr.corp.intel.com ([10.239.158.129]) by orsmga008.jf.intel.com with ESMTP; 03 Sep 2018 00:52:19 -0700 From: Yonghong Zhu To: edk2-devel@lists.01.org Cc: Liming Gao , Michael Kinney , Kevin W Shaw Date: Mon, 3 Sep 2018 15:52:17 +0800 Message-Id: <1535961137-17412-1-git-send-email-yonghong.zhu@intel.com> X-Mailer: git-send-email 2.6.1.windows.1 Subject: [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: Mon, 03 Sep 2018 07:52:21 -0000 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 library 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 files 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 rather 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 allowed 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 file for library instances. From the INF file, the build tools collect information 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 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 file). FeatureFlag and -FixedAtBuild access methods are the only PCDs that can be used in conditional -directives. +`!endif`, and those keywords are case-insensitive. 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 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 file). +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 first 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 order @@ -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 each 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 report | | | | Clarify structure PCD field value assignment precedence | | | | Update description for build handles PCDs for SKU support | | | | Add statement about module scoped `` section override scope | | | | Add !error statement section | | +| | Extend exclamation statement's keyword to case-insensitive | | -- 2.6.1.windows.1