From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 1D26C21E95DFF for ; Wed, 30 Aug 2017 01:58:02 -0700 (PDT) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP; 30 Aug 2017 02:00:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,448,1498546800"; d="scan'208";a="1167526861" Received: from shwdeopenpsi168.ccr.corp.intel.com ([10.239.158.121]) by orsmga001.jf.intel.com with ESMTP; 30 Aug 2017 02:00:42 -0700 From: Yonghong Zhu To: edk2-devel@lists.01.org Cc: Liming Gao , Michael Kinney , Kevin W Shaw Date: Wed, 30 Aug 2017 17:00:37 +0800 Message-Id: <1504083637-1276-2-git-send-email-yonghong.zhu@intel.com> X-Mailer: git-send-email 2.6.1.windows.1 In-Reply-To: <1504083637-1276-1-git-send-email-yonghong.zhu@intel.com> References: <1504083637-1276-1-git-send-email-yonghong.zhu@intel.com> Subject: [Patch] DSC Spec: Add multi-arg support to PREBUILD/POSTBUILD X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Aug 2017 08:58:02 -0000 fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=669 Cc: Liming Gao Cc: Michael Kinney Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yonghong Zhu --- 2_dsc_overview/23_[defines]_section_processing.md | 22 ++++++++++++++-------- 3_edk_ii_dsc_file_format/35_[defines]_section.md | 12 ++++++++++-- README.md | 1 + 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/2_dsc_overview/23_[defines]_section_processing.md b/2_dsc_overview/23_[defines]_section_processing.md index 96d02a0..95c2893 100644 --- a/2_dsc_overview/23_[defines]_section_processing.md +++ b/2_dsc_overview/23_[defines]_section_processing.md @@ -53,18 +53,22 @@ The format for entries in this section is: `Name = Value` If the `PREBUILD` and/or `POSTBUILD` entries are specified, value must be a tool that can be executed. If the value contains space characters, then the -value must be a quoted string. The `build` tool suspends processing of the DSC -file if the `PREBUILD` entry is present, calls the script, and either terminates -or continues processing the DSC file depending on the exit code from the script. -If the `POSTBUILD` entry is present, prior to the successful `build` exit, the -script is called. If the script fails (non-zero exit code from the script) -`build` terminates immediately using the exit code returned from the script, -otherwise, `build` terminates normally. The author of the script is responsible -for ensuring that the script terminates with a non-zero exit code when it fails. +value must be a quoted string. The `PREBUILD` and `POSTBUILD` enty support +multiple arguments, and tool will convert the arguments that are WORKSPACE or +PACKAGES_PATH relative paths to absolute paths. Quotes may be used for arguments +that have spaces or special characters. The `build` tool suspends processing of +the DSC file if the `PREBUILD` entry is present, calls the script, and either +terminates or continues processing the DSC file depending on the exit code from +the script. If the `POSTBUILD` entry is present, prior to the successful `build` +exit, the script is called. If the script fails (non-zero exit code from the +script) `build` terminates immediately using the exit code returned from the +script, otherwise, `build` terminates normally. The author of the script is +responsible for ensuring that the script terminates with a non-zero exit code +when it fails. All defined elements of the DSC file's `[Defines]` section are valid when parsing the FDF file. The these elements must be treated as Macros when using them in other sections of the DSC and FDF file, as in $(PLATFORM_NAME). @@ -114,10 +118,12 @@ item is required. | `RFC_LANGUAGES` | Optional | RFC4646 Language code list | A semi-colon ";" separated list of RFC4646 Language codes (EDK II Modules) used during the generation of only a set, rather than all, UNICODE languages during the StrGather AutoGen phase. The list must be encapsulated in double quotes. | | `ISO_LANGUAGES` | Optional | ISO-639-2 Language code list | A non-separated list of three character ISO 639-2 Language codes (EDK Components) used during the generation of only a set, rather than all, UNICODE languages during the StrGather AutoGen phase. The list must be encapsulated in double quotes. | | `VPD_TOOL_GUID` | Optional | Registry Format GUID | When this element is present, the build process will be interrupted during the AutoGen stage in order to call an external program, named by GUID that must also be defined in the Conf/tools_def.txt file using a tool code name of VPDTOOL. Refer to the EDK II Build specification for additional information. | | `PCD_INFO_GENERATION` | Optional | TRUE or FALSE | If present, and set to TRUE, this flag will generate PCD information in the Pcd Database. | | `PCD_VAR_CHECK_GENERATION` | Optional | TRUE or FALSE | If present and set to TRUE, this flag will generate the variable validation table binary file in the build output FV floder. If not present ro set to FALSE, then the binary file will not be generated. | +| `PREBUILD` | Optional | String of script with arguments | If present, build tool will call the script of this statement to execute. | +| `POSTBUILD` | Optional | String of script with arguments | If present, build tool will call the script of this statement to execute. | [^1]: WORKSPACE refers to the combination of the directories specified in the WORKSPACE system environment variable and the PACKAGES_PATH system environment variable. diff --git a/3_edk_ii_dsc_file_format/35_[defines]_section.md b/3_edk_ii_dsc_file_format/35_[defines]_section.md index fa6ee60..8950b80 100644 --- a/3_edk_ii_dsc_file_format/35_[defines]_section.md +++ b/3_edk_ii_dsc_file_format/35_[defines]_section.md @@ -123,12 +123,12 @@ The `!include` statement may be used in a `[Defines]` section. [ "ISO_LANGUAGES" ] [ "TIME_STAMP_FILE" ] [ "VPD_TOOL_GUID" ] [ "PCD_VAR_CHECK_GENERATION" ] - [ "PREBUILD" {} {} ] - [ "POSTBUILD" {} {} ] + [ "PREBUILD"