From: Konstantin S. <ks...@us...> - 2004-11-19 12:43:06
|
Update of /cvsroot/opengtoolkit/deab/developer docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14047/developer docs Modified Files: DEAB File Dscr.htm news.txt Added Files: DEAB Build File Dscr.htm Log Message: Index: news.txt =================================================================== RCS file: /cvsroot/opengtoolkit/deab/developer docs/news.txt,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** news.txt 12 Nov 2004 11:52:51 -0000 1.21 --- news.txt 19 Nov 2004 12:42:48 -0000 1.22 *************** *** 4,7 **** --- 4,29 ---- + *** 19:24 19.11.2004 + + - General section: Call-Back VI key (Call-Back VI N keys). Specifies Call-Back VI(s). + + - General section: Allow CBVI & Build Hierarchy Overlap key. Allows VIs of a + Call-Back VI hierarchy be in a Build hierarchy too. + + - Destination section: Namespace key. It overrides Namespace from General section. + + - Both 'Apply New Password' and 'Namespace' keywords in General and Destination + sections can accept <none>, <random> and <random:N> keywords. Note that it is new + for 'Namespace' and changed for 'Apply New Password'. + + - If no error occured during a build, a Revision File is updated before a + Post-Build VI is called. + + - DAEB File Dscr.htm is renamed to DEAB Build File Dscr.htm + + - DEAB Build File Dscr.htm file is updated to reflect the changes. + + + *** 18:50 12.11.2004 --- NEW FILE: DEAB Build File Dscr.htm --- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>DEAB Build File Description</title> </head> <body style="font-family: Verdana; font-size: 10pt"> <p>DEAB Build File Format<br> DEAB Version 1.0.0<br> $Revision: 1.1 $<br> $Date: 2004/11/19 12:42:48 $</p> <p>This document describes parameters of a .DEAB file.</p> <p><b>[General]</b><br> <a href="#General: File Format Version">File Format Version</a><br> <a href="#General: Revision File"> Revision File</a><br> <a href="#General: Project Root">Project Root</a><br> <a href="#General: Source Root">Source Root</a><br> <a href="#General: Build Root">Build Root</a><br> <a href="#General: New Build Root">New Build Root</a><br> <a href="#General: Ambiguous VI Dest">Ambiguous VIs Dest Dir</a><br> <a href="#General: Namespace">Namespace</a><br> <a href="#General: Apply New Password"> Apply New Password</a><br> <a href="#General: Log Dir">Log Dir</a><br> <a href="#General: Log File">Log File</a><br> <a href="#General: Log File Suffix">Log File Suffix</a><br> <a href="#General: Unsaved Changes">Unsaved Changes MsgBox</a><br> <a href="#General: Overwrite Existing Files">Overwrite Existing Files</a><br> <a href="#General: Include Hidden VIs">Include Hidden VIs</a><br> <a href="#General: Rsrc Include">Include Help Files</a><br> <a href="#General: Rsrc Include">Include Shared Libs</a><br> <a href="#General: Rsrc Include">Include External Subrs</a><br> <a href="#General: Rsrc Dirs">Help File Dir</a><br> <a href="#General: Rsrc Dirs">Shared Lib Dir</a><br> <a href="#General: Rsrc Dirs">External Subr Dir</a><br> <a href="#General: EXE Icon">EXE Icon File</a><br> <a href="#General: Version VI/Ctrl Name"> Version VI Name</a><br> <a href="#General: Version VI/Ctrl Name"> Version Ctrl Name</a><br> <a href="#General: RemovePolyVIsAndTypedefs">RemovePolyVIsAndTypedefs</a><br> <a href="#General: Pre/Post-Build VIs">Call Pre-Build VI</a><br> <a href="#General: Pre/Post-Build VIs">Call Post-Build VI</a><br> <a href="#General: Call-Back VI">Call-Back VI</a><br> <a href="#General: Allow CBVI & BH Overlap">Allow CBVI & Build Hierarchy Overlap</a></p> <p> <br> <a href="#Top-Level VIs"><b>[Top Level VIs]</b></a><br> any key names</p> <p> <a href="#Dynamic VIs"><b>[Dynamic VIs]<br> </b></a>any key names</p> <p><a href="#Exclude Lib Dirs"><b>[Exclude Lib Dirs from Build]</b></a><br> any key names</p> <p><a href="#Destination"><b>[Destination N]</b></a><br> Source Dir<br> Target Dir<br> Convert Target to LLB<br> Convert Target to EXE<br> Remove Diagrams<br> Default Destination<br> Apply New Password<br> Namespace</p> <p><a href="#SupportFiles"><b>[SupportFiles N]</b></a><br> TargetDir<br> OverwriteExisting<br> FollowVIDirHierarchy<br> SourceFile X<br> <br> </p> <hr> <p><b><a name="General: File Format Version"></a>[General]</b></p> <p><b>File Format Version</b> = x.y.z</p> <p><i>File Format Version</i> is optional. If it is not specified, it is assumed to be version 0.0.0. If <i>File Format Version</i> is greater than the current DEAB version, a warning will be generated.</p> <p><u>Example:</u></p> <p>File Format Version = 1.0.0<br> </p> <hr> <p><b><a name="General: Revision File"></a>[General]</b></p> <p><b>Revision File</b> = "file path"</p> <p><i>Revision File</i> is optional parameter that specifies a Revision File to be used. For more information on a Revision File, see <a href="DEAB%20Glossary.htm" target="_blank"> DEAB Glossary</a> and <a href="DEAB%20Revision%20File%20Dscr.htm" target="_blank">DEAB Revision File Description</a>. A <i>Revision File</i> may be either an absolute path, or a path relative to the <i><a href="#General: Project Root"> Project Root</a></i>. If a specified <i>Revision File</i> does not exist, it will be created and default values will be assigned to its parameters. It is possible to specify the same <i>Revision File</i> in different build files. Information relating to each build file is stored in unique section that has name of the build file.</p> <p><u>Example:</u></p> <p>Revision File = "build_support/MyProjectRevisions.txt"<br> </p> <hr> <p><b><a name="General: Project Root"></a>[General]</b></p> <p><b>Project Root</b> = "dir path"</p> <p><i>Project Root</i> is optional. If it is not specified, it is assumed to be the current .deab file's parent directory.</p> <p><u>Examples:</u></p> <p>Project Root = ""<br> Project Root = "C:\My Project"<br> </p> <hr> <p><b><a name="General: Source Root"></a>[General]</b></p> <p><b>Source Root</b> = "dir path"</p> <p><i>Source Root</i> is optional. If it is not specified, it is assumed to be the <i><a href="#General: Project Root"> Project Root</a></i>. <i> Source Root</i> may be either an absolute path, or a path relative to the <i> Project Root</i>.</p> <p><u>Examples:</u></p> <p>Source Root = ""<br> Source Root = "Source"<br> Source Root = "C:\My Project\Source"<br> </p> <hr> <p><b><a name="General: Build Root"></a>[General]</b></p> <p><b>Build Root</b> = "dir path"</p> <p><i>Build Root</i> is optional. If it is not specified, it is assumed to be the <i><a href="#General: Project Root"> Project Root</a></i>. <i> Build Root</i> may be either an absolute path, or a path relative to the <i> Project Root</i>.</p> <p><u>Examples:</u></p> <p>Build Root = ""<br> Build Root = "Target"<br> Build Root = "C:\My Project\Target"<br> </p> <hr> <p><b><a name="General: New Build Root"></a>[General]</b></p> <p><b>New Build Root</b> = True/False</p> <p>If <i> New Build Root</i> key is equal to TRUE and <i><a href="#General: Build Root">Build Root</a></i> directory exists when the build begins, the existing directory will be renamed with a date-time suffix and new <i>Build Root</i> directory will be created for the active build. By default, the <i>New Build Root</i> is FALSE. </p> <p>Note that <i><a href="#General: Build Root">Build Root</a></i> directory may contain neither a source VI nor a resource file beneath it to be renamed. If any source file is detected beneath a <i>Build Root</i>, the <i>Build Root</i> directory will not be renamed and a build terminates with a fatal error.<br> </p> <hr> <p><b><a name="General: Ambiguous VI Dest"></a>[General]</b></p> <p><b>Ambiguous VIs Dest Dir</b> = "dir/llb path"</p> <p><i>Ambiguous VIs Dest Dir</i> is optional parameter that specifies a destination directory (or LabVIEW VI library file) to save 'Ambiguous VIs'. The 'Ambiguous VI' term refers to a VI, callers of which expect to load the VI from different locations. <i> Ambiguous VIs Dest Dir</i> may be either an absolute path or a path relative to <i><a href="#General: Build Root"> Build Root</a></i>. If a path coincides with a path specified in <i>Target Dir</i> in any <i><a href="#Destination">[Destination N]</a></i> section, a target type (directory/LLB/EXE) is subject to the Destination type. Otherwise, it is either a LabVIEW VI library file if the path has .llb extension, or a directory, otherwise. </p> <p>If <i> Ambiguous VIs Dest Dir</i> is missed (or it is an empty path), ambiguous VIs are saved according to the common rules. In any case, information on 'Ambiguous VIs' is reported to a log file.<br> </p> <hr> <p><b><a name="General: Namespace"></a>[General]</b></p> <p><b>Namespace</b> = "string"</p> <p>If a <i> Namespace</i> is specified, all VIs and CTLs will be "name mangled" with the <i> Namespace</i> as a default suffix. For example, "MyVI.vi" with a Namespace of "MyApp" becomes "MyVI__MyApp.vi" in the built software product. </p> <p>If the parameter is missed or a value of it is an empty string, no namespace will be applied by default. Note that a <i><a href="#Destination">[Destination N]</a></i> section may contain its own <i>Namespace</i> parameter that overrides the default value specified in [General] section. </p> <p>A special case is a use of <random:N> keyword to generate a random namespace and <none> keyword to disable a namespace. <a href="#KWD: none & pwd">Click here</a> for more information.<br> </p> <p><u>Examples:</u></p> <p>Namespace = ""<br> Namespace = "MyProjectNamespace"<br> Namespace = "<random:16>"<br> </p> <hr> <p><b><a name="General: Apply New Password"></a>[General]</b></p> <p><b>Apply New Password</b> = "string"</p> <p>The <i>Apply New Password</i> is optional parameter that specifies a default password to be applied to all target VIs of the build. If the parameter is missed or a value of it is an empty string, no password will be applied by default. Note that a <i><a href="#Destination">[Destination N]</a></i> section may contain its own <i>Apply New Password</i> parameter that overrides the default value specified in [General] section. </p> <p>A special case is a use of <random:N> keyword to generate a random password and <none> keyword to disable a password. <a href="#KWD: none & pwd">Click here</a> for more information.<br> </p> <p><u>Examples:</u></p> <p>Apply New Password = ""<br> Apply New Password = "MySecretPassword"<br> Apply New Password = "<random:16>"<br> </p> <hr> <p><b><a name="General: Log Dir"></a>[General]</b></p> <p><b>Log Dir</b> = "dir path"</p> <p><i>Log Dir</i> is an optional parameter that specifies a directory where a log file is written. If it is not specified, it is assumed to be the .deab file's parent directory. <i> Log Dir</i> may be either an absolute path or a path relative to the .deab file's parent directory.<br> </p> <hr> <p><b><a name="General: Log File"></a>[General]</b></p> <p><b>Log File</b> = "file path/name"</p> <p><i>Log File</i> is an optional parameter that specifies a log file. If it is not specified, it is assumed to be a file with name of the .deab file and '.log' extension, located in <i><a href="#General: Log Dir">Log Dir</a></i> directory. <i> Log File</i> may be either an absolute path or a path relative to <i> Log Dir</i> directory. If it's an absolute path, it overrides <i> Log Dir</i>. </p> <p>Note that an actual name of a log file can contain a suffix if the <i><a href="#General: Log File Suffix">Log File Suffix</a></i> parameter specifies any.<br> </p> <hr> <p><b><a name="General: Log File Suffix"></a>[General]</b></p> <p><b>Log File Suffix</b> = "string"<br> <br> <i>Log File Suffix</i> is an optional parameter that specifies a suffix be appended to a name of log file. A suffix will be passes through a "Format Date/Time String" primitive to format actual suffix; herewith, all characters that are invalid for target file system (e.g. ':' in Windows) will be replaced with a valid character; also, '.' is replaced with '_'. By default, no suffix appended to a log file name.</p> <p><u>Example:</u></p> <p>Log File Suffix = " %c"</p> <p># It appends date/time when a build started to name of a log file.<br> </p> <hr> <p><b><a name="General: Unsaved Changes"></a>[General]</b></p> <p><b>Unsaved Changes MsgBox</b> = True/False</p> <p><i>Unsaved Changes MsgBox</i> is optional. If it is TRUE and there is an unsaved VI (a VI has a non-zero Modification Bitset property), a message box appears to ask a user to either continue or abort building. By default, it is TRUE.<br> </p> <hr> <p><b><a name="General: Overwrite Existing Files"></a>[General]</b></p> <p><b>Overwrite Existing Files</b> = TRUE</p> <p><i>Overwrite Existing Files</i> specifies whether to overwrite files in the build location. This is an optional. If it is not specified, it is assumed to be FALSE<br> </p> <hr> <p><b><a name="General: Include Hidden VIs"></a>[General]</b></p> <p><b>Include Hidden VIs</b> = True/False</p> <p><i>Include Hidden VIs</i> specifies whether include hidden VIs to a build or not. By default, it is TRUE. </p> <p> Background:<br> "Application: All VIs In Memory" property does not list hidden VIs. There are hidden VIs in LV DSC, GOOP and perhaps other add-ons. More, as soon some LV DSC hidden VIs are loaded, they stay in memory (and run) until LV finishes (even if no ordinary VIs opened).<br> </p> <hr> <p><b><a name="General: Rsrc Include"></a>[General]</b></p> <p><b>Include Help Files</b> = True/False<br> <b>Include Shared Libs</b> = True/False<br> <b>Include External Subrs</b> = True/False</p> <p>These parameters specify whether to include respective resources to a build. By default, all of them are assumed to be True.<br> </p> <hr> <p><b><a name="General: Rsrc Dirs"></a>[General]</b></p> <p><b>Help File Dir</b> = "dir path"<br> <b>Shared Lib Dir</b> = "dir path"<br> <b>External Subr Dir</b> = "dir path"</p> <p><i>Help File Dir</i>, <i> Shared Lib Dir</i> and <i> External Subr Dir</i> are optional. Any of them may be either an absolute path or a path relative to <i><a href="#General: Build Root"> Build Root</a></i>. By default (if a path is empty), the paths are assumed to be the following paths respectively:<br> <Build Root>\Help<br> <Build Root>\Rsrc<br> <Build Root>\Rsrc<br> </p> <hr> <p><b><a name="General: EXE Icon"></a>[General]</b></p> <p><b>EXE Icon File</b> = "file path"</p> <p><i>EXE Icon File</i> is optional parameter to specify a custom icon of an executable. It may be either an absolute path to an icon file or a path relative to <i><a href="#General: Source Root"> Source Root</a></i>.<br> </p> <hr> <p><b><a name="General: Version VI/Ctrl Name"></a>[General]</b></p> <p><b>Version VI Name</b> = "string"<b><br> Version Ctrl Name</b> = "string"</p> <p>Both these parameters are optional, they specify a control on FP of a VI that is to accept version information of the current build as a default value. <i>Version Ctrl Name</i> specifies a control name, and <i>Version VI Name</i> specifies a name of the VI that contains the control. The VI must be in the current build hierarchy (i.e. in hierarchy of a VI specified in either <i><a href="#Top-Level VIs">[Top Level VIs]</a></i> or <i><a href="#Dynamic VIs">[Dynamic VIs]</a></i> section. The control must have a type either the same as or compatible with <b><font size="1">Version Info Cluster__deab_api.ctl</font></b> type definition (it can be found on DEAB's Controls Palette).</p> <p>DEAB takes the version information from a <a href="#General: Revision File"><i>Revision File</i></a> and assigns it to the specified control as default value. This way, a built application can obtain version information such as a version string, a build number and build date/time at runtime.</p> <p>If either of these parameters is empty string (or missed), the DEAB does not save version information. If either of names is wrong, DEAB generates a non-fatal error and save the information on it to a <i><a href="#General: Log File">Log File</a></i>.</p> <p><u>Example:</u></p> <p>Version VI Name = "My Project Version.vi"<br> Version Ctrl Name = "Version Info"<br> </p> <hr> <p><b><a name="General: RemovePolyVIsAndTypedefs"></a>[General]</b></p> <p><b>RemovePolyVIsAndTypedefs</b> = True/False</p> <p>The <i>RemovePolyVIsAndTypedefs</i> is optional. If it is TRUE, DEAB will disconnect type definitions and polymorphic VIs, and not include them into the target build. A disconnected type definition instance will look the same, but will not longer associated with a type definition file. A polymorphic VI instance will become a regular SubVI. </p> <p>By default, <i>RemovePolyVIsAndTypedefs</i> is FALSE.<br> </p> <hr> <p><b><a name="General: Pre/Post-Build VIs"></a>[General]</b></p> <p><b>Call Pre-Build VI</b> = "VI path"<br> <b>Call Post-Build VI</b> = "VI path"</p> <p><i>Call Pre-Build VI</i> and <i> Call Post-Build VI</i> are optional parameters that specify VI(s) to be called before a build starts and after the build completes respectively. A Pre-/Post-Build VI path may be either an absolute path, or a path relative to the <i><a href="#General: Project Root"> Project Root</a></i>. </p> <p> A Pre-build VI takes parameters to be used to perform building; herewith, all paths are absolute. A Post-build VI takes, in addition, actual parameters used during the build. </p> <p> Use <b><font size="1">Pre-Post Build VI Template__deab_api.vit</font></b> as a template to make a custom pre/post-build VI.<br> </p> <hr> <p><b><a name="General: Call-Back VI"></a>[General]</b></p> <p><b>Call-Back VI</b> = "VI path"<br> <b>Call-Back VI N</b> = "VI path"</p> <p><i>Call-Back VI</i> is optional parameter to specify Call-Back VI(s). A Call-Back VI path may be either an absolute path, or a path relative to the <i><a href="#General: Project Root">Project Root</a></i>. </p> <p>A general form of the parameter is "Call-Back VI N", where N is a positive integer, that allows to specify several Call-Back VIs. In addition, N specifies an order to call Call-Back VIs if there are two or more. If N is omitted, it assumes to be zero. </p> <p>DEAB calls Call-Back VIs for each VI of a build hierarchy after a VI tolerated all the transformations required and immediately before the VI is saved to its target location. A Call-Back VI takes a VI reference to the target VI, build parameters specific for the VI and general build parameters. </p> <p>Use <b><font size="1">Call-Back VI Template__deab_api.vit </font></b>as a template to make a custom Call-Back VI.<br> </p> <p><u>Example:</u></p> <p>Call-Back VI = "My Main Call-back.vi"<br> Call-Back VI 2 = "My Call-back 2.vi"<br> Call-Back VI 3 = "My Call-back 3.vi"<br> </p> <hr> <p><b><a name="General: Allow CBVI & BH Overlap"></a>[General]</b></p> <p><b>Allow CBVI & Build Hierarchy Overlap</b> = True/False</p> <p><i>Allow CBVI & Build Hierarchy Overlap</i> is optional. If it is FALSE (by default), a <i><a href="#General: Call-Back VI">Call-Back VI</a></i> is not allowed to have VIs in its hierarchy that are also in a currently built hierarchy. In this case, DEAB will terminate with an error if a VI belongs to the both hierarchies. </p> <p>If the parameter is TRUE, a Call-Back VI is allowed to share VIs with a build hierarchy. It should be safe in most cases; however, it is recommended to use this parameter with care because it can affect VIs in hierarchy of Call-Back VI if they had been in memory before a build starts.<br> </p> <hr> <p><b><a name="Top-Level VIs"></a>[Top Level VIs]</b></p> <p><b>keyname</b> = "VI path"</p> <p><i>[Top Level VIs]</i> section specifies VIs whose hierarchies are to be included in the build. Additionally, Top Level VIs will be set as "Top-Level" in destination LLBs if the its Destination is either an LLB or EXE. You can use any <i> keyname</i> for Top Level VIs; <i>keynames</i> for this section are arbitrary. A VI path may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>.</p> <p><u>Example:</u></p> <p>[Top Level VIs]<br> Main VI = "Main VI of my application.vi"<br> <br> </p> <hr> <p><b><a name="Dynamic VIs"></a>[Dynamic VIs]</b></p> <p><b>keyname</b> = "VI path"</p> <p><i>[Dynamic VIs]</i> section specifies VIs whose hierarchies are to be included in the build. You can use any <i> keyname</i> for Dynamic VIs; <i>keynames</i> for this section are arbitrary. A VI path may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>.</p> <p><u>Example:</u></p> <p>[Dynamic VIs]<br> 1 = "Test VI 001.vi"<br> </p> <hr> <p><b><a name="Exclude Lib Dirs"></a>[Exclude Lib Dirs from Build]</b></p> <p><b>keyname</b> = "dir/llb path"</p> <p><i>[Exclude Lib Dirs from Build]</i> section specifies directories and LLBs to exclude from build. All VIs, CTLs and non-VI resources like help files, shared libraries, etc. residing beneath the specified directories will not be included to a build. <i> Keynames</i> for this section are arbitrary. A path may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>.</p> <p><u>Example:</u></p> <p>LV_Help = <help><br> LV_VILIB = <vi.lib><br> </p> <hr> <p><b><a name="Destination"></a>[Destination N]</b></p> <p><b>Source Dir</b> = "dir/llb path"<br> <b>Target Dir</b> = "path"<br> <b>Convert Target to LLB</b> = True/False<br> <b>Convert Target to EXE</b> = True/False<br> <b>Remove Diagrams</b> = True/False<br> <b>Default Destination</b> = True/False<br> <b>Apply New Password</b> = "string"<br> <b>Namespace</b> = "string"</p> <p><i>[Destination N]</i> sections should be named "Destination N", where "N" is an arbitrary unique integer. This allows to specify multiple Destination sections. Every VI or CTL in the application source hierarchy which is located beneath <i> Source Dir</i> will be aggregated into <i> Target Dir</i>, except for those VIs and CTLs found beneath a subdirectory specified as a <i> Source Dir</i> of another Destination.</p> <p>A <i><b>Source Dir</b></i> may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>. A <i>Source Dir</i> may be either a directory path or a path of LabVIEW library file (LLB).</p> <p>A <i><b>Target Dir</b></i> may be either an absolute path, or a path relative to <i><a href="#General: Build Root">Build Root</a></i>. A <i>Target Dir</i> may contain <u><KeepHierarchy></u> keyword as the last component of a path. In this case, a VI directory hierarchy in <i> Target Dir</i> is saved as it is beneath <i> Source Dir</i>, including sub-directories and LLBs. This keyword overrides both <i>Convert Target to LLB</i> and <i>Convert Target to EXE</i> keys.</p> <p>If <i><b>Convert Target to LLB</b></i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be a LabVIEW library file with LLB extension. This setting may be overridden by the <i> Convert Target to EXE</i> setting and/or <u><KeepHierarchy></u> keyword.</p> <p>If <i><b>Convert Target to EXE</b></i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be an executable file with EXE extension. This setting may be overridden by <u><KeepHierarchy></u> keyword.</p> <p>If the <i>Remove Diagrams</i> optional parameter is TRUE, all VIs in this Destination will have their diagrams removed, during the build.</p> <p>If <i><b>Default Destination</b></i> optional parameter is TRUE for a section, then that Destination will be used as the 'Default Destination'. The 'Default Destination' is used for any source VIs that are not found within the <i>Source Dir</i> of any <i>[Destination N]</i> section. Only one <i>[Destination N]</i> section may have a value of TRUE for the <i>Default Destination</i> key. If more than one <i>[Destination N]</i> section has a value of TRUE for the <i>Default Destination</i> key, it will generate a non-fatal warning, and the lowest numbered <i>[Destination N]</i> section will be used as the Default Destination. If no <i>[Destination N]</i> section is defined as the <i>Default Destination</i>, then a fatal error will be generated if any VI in the application hierarchy does not exist within the <i>Source Dir</i> of at least one <i>[Destination N]</i> section. </p> <p> <i><b>Apply New Password</b></i> is optional parameter that may be used to apply a password string to all VIs of the destination. If the parameter is missed or a value of it is an empty string, DEAB uses a value of the <i><a href="#General: Apply New Password">Apply New Password</a> </i>parameter in [General] section as a default value. If a resulting password is an empty string, no password will be applied to VIs of the destination; otherwise, all the target VIs accept the password. A special case is a use of <random:N> keyword to generate a random password and <none> keyword to disable a password. <a href="#KWD: none & pwd">Click here</a> for more information. </p> <p><i><b>Namespace</b></i> is optional parameter that may be used to override a default <i><a href="#General: Namespace">Namespace</a></i>, specified in [General] section, for VIs of the destination. If the parameter is missed or a value of it is an empty string, DEAB uses a default namespace. A special case is a use of <random:N> keyword to generate a random namespace and <none> keyword to discard a namespace. <a href="#KWD: none & pwd">Click here</a> for more information.<br> </p> <p><u>Example:</u></p> <p>[Destination 0001]<br> Source Dir = ""<br> Target Dir = "test_built"<br> Convert Target to LLB = TRUE<br> Convert Target to EXE = FALSE<br> Remove Diagrams = FALSE<br> Default Destination = TRUE<br> Apply New Password = "MySecretPassword"<br> Namespace = "abcd" </p> <p>[Destination 1001]<br> Source Dir = <vi.lib><br> Target Dir = "Support VIs\vi_lib.llb"<br> Convert Target to LLB = TRUE<br> Convert Target to EXE = FALSE<br> Remove Diagrams = FALSE<br> Default Destination = FALSE<br> Apply New Password = ""<br> Namespace = "" </p> <p>[Destination 2001]<br> Source Dir = <user.lib><br> Target Dir = "Support VIs\user.lib\<KeepHierarchy>"<br> Convert Target to LLB = FALSE<br> Convert Target to EXE = FALSE<br> Remove Diagrams = FALSE<br> Default Destination = FALSE<br> Apply New Password = <random:16><br> Namespace = <random> </p> <p> </p> <hr> <p><b><a name="SupportFiles"></a>[SupportFiles N]</b></p> <p><b>TargetDir</b> = "dir path"<br> <b>OverwriteExisting </b>= True/False<br> <b>FollowVIDirHierarchy</b> = True/False<br> <b>SourceFile X</b> = "file path/name"</p> <p><i>[SupportFiles N]</i> sections should be named "SupportFiles N", where "N" is an arbitrary unique integer. This allows to specify multiple SupportFiles sections.</p> <p><i><b>TargetDir</b></i> is an optional parameter to specify a target directory. If it is not specified, it is assumed to be the <i><a href="#General: Build Root"> Build Root</a></i>. A <i>TargetDir</i> may be either an absolute path, or a path relative to the <i> Build Root</i>.<br> <br> <i><b>OverwriteExisting</b></i> specifies whether to overwrite files in the <i> TargetDir</i>. This is an optional. If it is not specified, it is assumed to be FALSE<br> <br> <i><b>SourceFile X</b></i> keys should be named "SourceFile X", where "X" is an arbitrary unique integer. It allows to specify multiple source files for the <i> TargetDir</i>. A <i> SourceFile</i> can be either an absolute path or a path relative to <i><a href="#General: Source Root"> Source Root</a></i>. A <i> SourceFile</i> may contain wildcards in a file name to specify a group of files. It is possible to specify no SourceFiles in order to just create the <i> TargetDir</i>.</p> <p><i><b>FollowVIDirHierarchy</b></i> is optional. If there are VIs, destination directories of which are beneath <i> TargetDir</i>, DEAB looks for the specified <i> SourceFiles</i> in the VIs' source directories and copies them to the appropriate positions beneath <i> TargetDir</i>. I.e., if a source VI has a support file in its parent directory, it will also have the support file in its new (destination) parent directory. Note that only name of a <i> SupportFile</i> is used in this mode, any path is ignored; however, a use of wildcards is still possible.</p> <p><u>Example:</u></p> <p>[SupportFiles 1001]<br> TargetDir = ""<br> OverwriteExisting = True<br> FollowVIDirHierarchy = False<br> SourceFile 001 = "*.ini"<br> SourceFile 002 = "Doc\readme.txt"</p> <p># This will copy "*.ini" and "Doc\readme.txt" files from Source Root to Build Root.</p> <p>[SupportFiles 2001]<br> TargetDir = "Doc"<br> OverwriteExisting = True<br> FollowVIDirHierarchy = False<br> SourceFile 001 = "Doc\*.html"</p> <p># This will copy "*.html" files from <Source Root\Doc> to <Build Root\Doc></p> <p>[SupportFiles 3001]<br> TargetDir = "App\PlugIns"<br> OverwriteExisting = True<br> FollowVIDirHierarchy = True<br> SourceFile 001 = "*.ini"</p> <p># This will copy *.ini files from source directories, where VIs saved to beneath "App\PlugIns" reside, to the respective sub-directories of "App\PlugIns" <br> </p> <hr> <p><a name="KWD: none & pwd"></a>Keywords applicable to <i><b>Namespace</b></i> and <i><b>Apply New Password</b></i> parameters</p> <p><random:N> keyword forces DEAB to generate a random string of length N, where N is a positive integer. If N is less than or equal to zero, or it is omitted, it assumes the default value of 32. A random string may contain digits (0..9), upper-case letters (A..Z) and lower-case letters (a..z).</p> <p><none> keyword forces DEAB to generate empty string. A use of this keyword is useful in <i><a href="#Destination">[Destination N]</a></i> section to discard a default password and/or a default namespace (<i><a href="#General: Apply New Password">Apply New Password</a></i> and <i><a href="#General: Namespace">Namespace</a></i> parameters in General section) for VIs of the destination.</p> <p>Note that both <random:N> and <none> keywords are case-insensitive.</p> <p><u>Examples:</u></p> <p>Namespace = <none><br> Namespace = <random:16><br> Apply New Password = <Random><br> Apply New Password = <NONE><br> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> </body> </html> Index: DEAB File Dscr.htm =================================================================== RCS file: /cvsroot/opengtoolkit/deab/developer docs/DEAB File Dscr.htm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** DEAB File Dscr.htm 12 Nov 2004 11:52:51 -0000 1.11 --- DEAB File Dscr.htm 19 Nov 2004 12:42:48 -0000 1.12 *************** *** 21,37 **** Revision File</a><br> <a href="#General: Project Root">Project Root</a><br> - <a href="#General: Build Root">Build Root</a><br> <a href="#General: Source Root">Source Root</a><br> <a href="#General: Ambiguous VI Dest">Ambiguous VIs Dest Dir</a><br> <a href="#General: Namespace">Namespace</a><br> ! <a href="#General: Unsaved Changes">Unsaved Changes MsgBox</a><br> <a href="#General: Log Dir">Log Dir</a><br> <a href="#General: Log File">Log File</a><br> <a href="#General: Log File Suffix">Log File Suffix</a><br> ! <a href="#General: New Build Root">New Build Root</a><br> <a href="#General: Overwrite Existing Files">Overwrite Existing Files</a><br> <a href="#General: Include Hidden VIs">Include Hidden VIs</a><br> - <a href="#General: Pre/Post-Build VIs">Call Pre-Build VI</a><br> - <a href="#General: Pre/Post-Build VIs">Call Post-Build VI</a><br> <a href="#General: Rsrc Include">Include Help Files</a><br> <a href="#General: Rsrc Include">Include Shared Libs</a><br> --- 21,37 ---- Revision File</a><br> <a href="#General: Project Root">Project Root</a><br> <a href="#General: Source Root">Source Root</a><br> + <a href="#General: Build Root">Build Root</a><br> + <a href="#General: New Build Root">New Build Root</a><br> <a href="#General: Ambiguous VI Dest">Ambiguous VIs Dest Dir</a><br> <a href="#General: Namespace">Namespace</a><br> ! <a href="#General: Apply New Password"> ! Apply New Password</a><br> <a href="#General: Log Dir">Log Dir</a><br> <a href="#General: Log File">Log File</a><br> <a href="#General: Log File Suffix">Log File Suffix</a><br> ! <a href="#General: Unsaved Changes">Unsaved Changes MsgBox</a><br> <a href="#General: Overwrite Existing Files">Overwrite Existing Files</a><br> <a href="#General: Include Hidden VIs">Include Hidden VIs</a><br> <a href="#General: Rsrc Include">Include Help Files</a><br> <a href="#General: Rsrc Include">Include Shared Libs</a><br> *************** *** 45,51 **** <a href="#General: Version VI/Ctrl Name"> Version Ctrl Name</a><br> ! <a href="#General: Apply New Password"> ! Apply New Password</a><br> ! <a href="#General: RemovePolyVIsAndTypedefs">RemovePolyVIsAndTypedefs</a></p> --- 45,53 ---- <a href="#General: Version VI/Ctrl Name"> Version Ctrl Name</a><br> ! <a href="#General: RemovePolyVIsAndTypedefs">RemovePolyVIsAndTypedefs</a><br> ! <a href="#General: Pre/Post-Build VIs">Call Pre-Build VI</a><br> ! <a href="#General: Pre/Post-Build VIs">Call Post-Build VI</a><br> ! <a href="#General: Call-Back VI">Call-Back VI</a><br> ! <a href="#General: Allow CBVI & BH Overlap">Allow CBVI & Build Hierarchy Overlap</a></p> *************** *** 67,71 **** Remove Diagrams<br> Default Destination<br> ! Apply New Password</p> <p><a href="#SupportFiles"><b>[SupportFiles N]</b></a><br> TargetDir<br> --- 69,74 ---- Remove Diagrams<br> Default Destination<br> ! Apply New Password<br> ! Namespace</p> <p><a href="#SupportFiles"><b>[SupportFiles N]</b></a><br> TargetDir<br> *************** *** 115,129 **** </p> <hr> - <p><b><a name="General: Build Root"></a>[General]</b></p> - <p><b>Build Root</b> = "dir path"</p> - <p><i>Build Root</i> is optional. If it is not specified, it is assumed to be the - <i><a href="#General: Project Root"> Project Root</a></i>. <i> Build Root</i> may be either an absolute path, or a path relative to the - <i> Project Root</i>.</p> - <p><u>Examples:</u></p> - <p>Build Root = ""<br> - Build Root = "Target"<br> - Build Root = "C:\My Project\Target"<br> - </p> - <hr> <p><b><a name="General: Source Root"></a>[General]</b></p> <p><b>Source Root</b> = "dir path"</p> --- 118,121 ---- *************** *** 137,157 **** </p> <hr> ! <p><b><a name="General: Overwrite Existing Files"></a>[General]</b></p> ! <p><b>Overwrite Existing Files</b> = TRUE</p> ! <p><i>Overwrite Existing Files</i> specifies whether to overwrite files in the build location. This is an optional. If it is not specified, it is assumed to be FALSE<br> </p> <hr> ! <p><b><a name="General: Namespace"></a>[General]</b></p> ! <p><b>Namespace</b> = "string"</p> ! <p>If a <i> Namespace</i> is specified, all VIs and CTLs will be "name mangled" with the ! <i> Namespace</i> as a suffix. For example, "MyVI.vi" with a Namespace of "MyApp" becomes "MyVI__MyApp.vi" in the built software product.<br> </p> ! <hr> ! <p><b><a name="General: Pre/Post-Build VIs"></a>[General]</b></p> ! <p><b>Call Pre-Build VI</b> = "VI path"<br> ! <b>Call Post-Build VI</b> = "VI path"</p> ! <p><i>Call Pre-Build VI</i> and <i> Call Post-Build VI</i> are optional parameters that ! specify VI(s) to be called before a build starts and after the build completes respectively. A Pre/Post-Build VI path may be either an absolute path, or a path relative to the ! <i><a href="#General: Project Root"> Project Root</a></i>. A Pre-build VI takes parameters to be used to perform building; herewith, all paths are absolute. A Post-build VI takes, in addition, actual parameters used during the build. Use "Pre-Post Build VI Template.vi" as a template for a custom pre/post-build VI.<br> </p> <hr> --- 129,155 ---- </p> <hr> ! <p><b><a name="General: Build Root"></a>[General]</b></p> ! <p><b>Build Root</b> = "dir path"</p> ! <p><i>Build Root</i> is optional. If it is not specified, it is assumed to be the ! <i><a href="#General: Project Root"> Project Root</a></i>. <i> Build Root</i> may be either an absolute path, or a path relative to the ! <i> Project Root</i>.</p> ! <p><u>Examples:</u></p> ! <p>Build Root = ""<br> ! Build Root = "Target"<br> ! Build Root = "C:\My Project\Target"<br> </p> <hr> ! <p><b><a name="General: New Build Root"></a>[General]</b></p> ! <p><b>New Build Root</b> = True/False</p> ! <p>If <i> New Build Root</i> key is equal to TRUE and <i><a href="#General: Build Root">Build Root</a></i> ! directory exists when the build begins, the existing directory will be renamed with a date-time suffix and new ! <i>Build Root</i> directory will be created for the active build. By default, the ! <i>New Build Root</i> is FALSE. </p> ! <p>Note that <i><a href="#General: Build Root">Build Root</a></i> ! directory may contain neither a source VI nor a resource file beneath it to be ! renamed. If any source file is detected beneath a <i>Build Root</i>, the <i>Build ! Root</i> directory will not be renamed and a build terminates with a fatal ! error.<br> </p> <hr> *************** *** 172,198 **** </p> <hr> ! <p><b><a name="General: New Build Root"></a>[General]</b></p> ! <p><b>New Build Root</b> = True/False</p> ! <p>If <i> New Build Root</i> key is equal to TRUE and <i><a href="#General: Build Root">Build Root</a></i> ! directory exists when the build begins, the existing directory will be renamed with a date-time suffix and new ! <i>Build Root</i> directory will be created for the active build. By default, the ! <i>New Build Root</i> is FALSE. </p> ! <p>Note that <i><a href="#General: Build Root">Build Root</a></i> ! directory may contain neither a source VI nor a resource file beneath it to be ! renamed. If any source file is detected beneath a <i>Build Root</i>, the <i>Build ! Root</i> directory will not be renamed and a build terminates with a fatal ! error.<br> </p> <hr> ! <p><b><a name="General: Include Hidden VIs"></a>[General]</b></p> ! <p><b>Include Hidden VIs</b> = True/False</p> ! <p><i>Include Hidden VIs</i> specifies whether include hidden VIs to a build or not. By default, it is TRUE. </p> ! <p> ! Background:<br> ! "Application: All VIs In Memory" property does not list hidden VIs. There are hidden VIs in LV DSC, GOOP and perhaps other ! add-ons. More, as soon some LV DSC hidden VIs are loaded, they stay in memory (and run) until LV finishes (even if no ! ordinary VIs opened).<br> </p> <hr> --- 170,211 ---- </p> <hr> ! <p><b><a name="General: Namespace"></a>[General]</b></p> ! <p><b>Namespace</b> = "string"</p> ! <p>If a <i> Namespace</i> is specified, all VIs and CTLs will be "name mangled" with the ! <i> Namespace</i> as a default suffix. For example, "MyVI.vi" with a Namespace of "MyApp" becomes "MyVI__MyApp.vi" in the built software product. </p> ! <p>If the parameter is ! missed or a value of it is an empty string, no namespace will be applied by ! default. Note that a <i><a href="#Destination">[Destination N]</a></i> section ! may contain its own <i>Namespace</i> parameter that overrides the ! default value specified in [General] section. ! </p> ! <p>A special case is a use of <random:N> keyword to generate a random ! namespace and <none> keyword to disable a namespace. <a href="#KWD: none & pwd">Click ! here</a> for more information.<br> ! </p> ! <p><u>Examples:</u></p> ! <p>Namespace = ""<br> ! Namespace = "MyProjectNamespace"<br> ! Namespace = "<random:16>"<br> </p> <hr> ! <p><b><a name="General: Apply New Password"></a>[General]</b></p> ! <p><b>Apply New Password</b> = "string"</p> ! <p>The <i>Apply New Password</i> is optional parameter that specifies a default ! password to be applied to all target VIs of the build. If the parameter is ! missed or a value of it is an empty string, no password will be applied by ! default. Note that a <i><a href="#Destination">[Destination N]</a></i> section ! may contain its own <i>Apply New Password</i> parameter that overrides the ! default value specified in [General] section. </p> ! <p>A special case is a use of <random:N> keyword to generate a random ! password and <none> keyword to disable a password. <a href="#KWD: none & pwd">Click ! here</a> for more information.<br> ! </p> ! <p><u>Examples:</u></p> ! <p>Apply New Password = ""<br> ! Apply New Password = "MySecretPassword"<br> ! Apply New Password = "<random:16>"<br> </p> <hr> *************** *** 224,227 **** --- 237,263 ---- </p> <hr> + <p><b><a name="General: Unsaved Changes"></a>[General]</b></p> + <p><b>Unsaved Changes MsgBox</b> = True/False</p> + <p><i>Unsaved Changes MsgBox</i> is optional. If it is TRUE and there is an unsaved VI (a VI has + a non-zero Modification Bitset property), a message box appears to ask a user to either continue or abort building. + By default, it is TRUE.<br> + </p> + <hr> + <p><b><a name="General: Overwrite Existing Files"></a>[General]</b></p> + <p><b>Overwrite Existing Files</b> = TRUE</p> + <p><i>Overwrite Existing Files</i> specifies whether to overwrite files in the build location. This is an optional. If it is not specified, it is assumed to be FALSE<br> + </p> + <hr> + <p><b><a name="General: Include Hidden VIs"></a>[General]</b></p> + <p><b>Include Hidden VIs</b> = True/False</p> + <p><i>Include Hidden VIs</i> specifies whether include hidden VIs to a build or not. By default, it is TRUE. + </p> + <p> + Background:<br> + "Application: All VIs In Memory" property does not list hidden VIs. There are hidden VIs in LV DSC, GOOP and perhaps other + add-ons. More, as soon some LV DSC hidden VIs are loaded, they stay in memory (and run) until LV finishes (even if no + ordinary VIs opened).<br> + </p> + <hr> <p><b><a name="General: Rsrc Include"></a>[General]</b></p> <p><b>Include Help Files</b> = True/False<br> *************** *** 249,259 **** </p> <hr> - <p><b><a name="General: Unsaved Changes"></a>[General]</b></p> - <p><b>Unsaved Changes MsgBox</b> = True/False</p> - <p><i>Unsaved Changes MsgBox</i> is optional. If it is TRUE and there is an unsaved VI (a VI has - a non-zero Modification Bitset property), a message box appears to ask a user to either continue or abort building. - By default, it is TRUE.<br> - </p> - <hr> <p><b><a name="General: Version VI/Ctrl Name"></a>[General]</b></p> <p><b>Version VI Name</b> = "string"<b><br> --- 285,288 ---- *************** *** 281,306 **** </p> <hr> - <p><b><a name="General: Apply New Password"></a>[General]</b></p> - <p><b>Apply New Password</b> = "string"</p> - <p>The <i>Apply New Password</i> is optional parameter that specifies a default - password to be applied to all target VIs of the build. If the parameter is - missed or a value of it is an empty string, no password will be applied by - default. Note that a <i><a href="#Destination">[Destination N]</a></i> section - may contain its own <i>Apply New Password</i> parameter that overrides the - default value specified in <i>[General]</i> section. - </p> - <p>A special case of a password is the <u>random</u> keyword that makes DEAB - generate random password of a desired length and use it as a default password. - Generic syntax of the <u>random</u> keyword is:<br> - "random:N"<br> - , where <u>random</u> is the case-insensitive keyword, and N is an optional - length of a password; by default a password length is equal to 32. - </p> - <p><u>Examples:</u></p> - <p>Apply New Password=""<br> - Apply New Password="MySecretPassword"<br> - Apply New Password="random:16"<br> - </p> - <hr> <p><b><a name="General: RemovePolyVIsAndTypedefs"></a>[General]</b></p> <p><b>RemovePolyVIsAndTypedefs</b> = True/False</p> --- 310,313 ---- *************** *** 314,317 **** --- 321,378 ---- </p> <hr> + <p><b><a name="General: Pre/Post-Build VIs"></a>[General]</b></p> + <p><b>Call Pre-Build VI</b> = "VI path"<br> + <b>Call Post-Build VI</b> = "VI path"</p> + <p><i>Call Pre-Build VI</i> and <i> Call Post-Build VI</i> are optional parameters that + specify VI(s) to be called before a build starts and after the build completes respectively. A + Pre-/Post-Build VI path may be either an absolute path, or a path relative to the + <i><a href="#General: Project Root"> Project Root</a></i>. + </p> + <p> A Pre-build VI takes parameters to be used to perform building; herewith, all paths are absolute. A Post-build VI takes, in addition, actual parameters used during the build. + </p> + <p> Use <b><font size="1">Pre-Post Build VI Template__deab_api.vit</font></b> as a template + to make a custom pre/post-build VI.<br> + </p> + <hr> + <p><b><a name="General: Call-Back VI"></a>[General]</b></p> + <p><b>Call-Back VI</b> = "VI path"<br> + <b>Call-Back VI N</b> = "VI path"</p> + <p><i>Call-Back VI</i> is optional parameter to specify Call-Back VI(s). A + Call-Back VI path may be either an absolute path, or a path relative to the <i><a href="#General: Project Root">Project + Root</a></i>. + </p> + <p>A general form of the parameter is "Call-Back VI N", where N is a + positive integer, that allows to specify several Call-Back VIs. In addition, N + specifies an order to call Call-Back VIs if there are two or more. If N is + omitted, it assumes to be zero. + </p> + <p>DEAB calls Call-Back VIs for each VI of a build hierarchy after a VI + tolerated all the transformations required and immediately before the VI is + saved to its target location. A Call-Back VI takes a VI reference to the target + VI, build parameters specific for the VI and general build parameters. + </p> + <p>Use <b><font size="1">Call-Back VI Template__deab_api.vit </font></b>as a + template to make a custom Call-Back VI.<br> + </p> + <p><u>Example:</u></p> + <p>Call-Back VI = "My Main Call-back.vi"<br> + Call-Back VI 2 = "My Call-back 2.vi"<br> + Call-Back VI 3 = "My Call-back 3.vi"<br> + </p> + <hr> + <p><b><a name="General: Allow CBVI & BH Overlap"></a>[General]</b></p> + <p><b>Allow CBVI & Build Hierarchy Overlap</b> = True/False</p> + <p><i>Allow CBVI & Build Hierarchy Overlap</i> is optional. If it is FALSE + (by default), a <i><a href="#General: Call-Back VI">Call-Back VI</a></i> is not + allowed to have VIs in its hierarchy that are also in a currently built + hierarchy. In this case, DEAB will terminate with an error if a VI belongs to + the both hierarchies. + </p> + <p>If the parameter is TRUE, a Call-Back VI is allowed to share VIs with a build + hierarchy. It should be safe in most cases; however, it is recommended to use + this parameter with care because it can affect VIs in hierarchy of Call-Back VI + if they had been in memory before a build starts.<br> + </p> + <hr> <p><b><a name="Top-Level VIs"></a>[Top Level VIs]</b></p> <p><b>keyname</b> = "VI path"</p> *************** *** 357,361 **** <b>Remove Diagrams</b> = True/False<br> <b>Default Destination</b> = True/False<br> ! <b>Apply New Password</b> = "string"</p> <p><i>[Destination N]</i> sections should be named "Destination N", where "N" is an arbitrary unique integer. This allows to specify multiple --- 418,423 ---- <b>Remove Diagrams</b> = True/False<br> <b>Default Destination</b> = True/False<br> ! <b>Apply New Password</b> = "string"<br> ! <b>Namespace</b> = "string"</p> <p><i>[Destination N]</i> sections should be named "Destination N", where "N" is an arbitrary unique integer. This allows to specify multiple *************** *** 363,384 **** Dir</i> will be aggregated into <i> Target Dir</i>, except for those VIs and CTLs found beneath a subdirectory specified as a <i> Source Dir</i> of another Destination.</p> ! <p>A <i>Source Dir</i> may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>. A <i>Source Dir</i> may be either a directory path or a path of LabVIEW library file (LLB).</p> ! <p>A <i>Target Dir</i> may be either an absolute path, or a path relative to <i><a href="#General: Build Root">Build Root</a></i>. A <i>Target Dir</i> may contain <u><KeepHierarchy></u> keyword as the last component of a path. In this case, a VI directory hierarchy in <i> Target Dir</i> is saved as it is beneath <i> Source Dir</i>, including sub-directories and LLBs. This keyword overrides both <i>Convert Target to LLB</i> and <i>Convert Target to EXE</i> keys.</p> ! <p>If the <i>Convert Target to LLB</i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be a LabVIEW library file with LLB extension. This setting may be overridden by the <i> Convert Target to EXE</i> setting and/or <u><KeepHierarchy></u> keyword.</p> ! <p>If the <i>Convert Target to EXE</i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be an executable file with EXE extension. This setting may be overridden by <u><KeepHierarchy></u> keyword.</p> <p>If the <i>Remove Diagrams</i> optional parameter is TRUE, all VIs in this Destination will have their diagrams removed, during the build.</p> ! <p>If the <i>Default Destination</i> optional parameter is TRUE for a section, then that Destination will be used as the 'Default Destination'. The 'Default Destination' is used for any source VIs that are not found within the <i>Source --- 425,446 ---- Dir</i> will be aggregated into <i> Target Dir</i>, except for those VIs and CTLs found beneath a subdirectory specified as a <i> Source Dir</i> of another Destination.</p> ! <p>A <i><b>Source Dir</b></i> may be either an absolute path, or a path relative to <i><a href="#General: Source Root">Source Root</a></i>. A <i>Source Dir</i> may be either a directory path or a path of LabVIEW library file (LLB).</p> ! <p>A <i><b>Target Dir</b></i> may be either an absolute path, or a path relative to <i><a href="#General: Build Root">Build Root</a></i>. A <i>Target Dir</i> may contain <u><KeepHierarchy></u> keyword as the last component of a path. In this case, a VI directory hierarchy in <i> Target Dir</i> is saved as it is beneath <i> Source Dir</i>, including sub-directories and LLBs. This keyword overrides both <i>Convert Target to LLB</i> and <i>Convert Target to EXE</i> keys.</p> ! <p>If <i><b>Convert Target to LLB</b></i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be a LabVIEW library file with LLB extension. This setting may be overridden by the <i> Convert Target to EXE</i> setting and/or <u><KeepHierarchy></u> keyword.</p> ! <p>If <i><b>Convert Target to EXE</b></i> optional parameter is TRUE, the <i>Target Dir</i> is actually to be an executable file with EXE extension. This setting may be overridden by <u><KeepHierarchy></u> keyword.</p> <p>If the <i>Remove Diagrams</i> optional parameter is TRUE, all VIs in this Destination will have their diagrams removed, during the build.</p> ! <p>If <i><b>Default Destination</b></i> optional parameter is TRUE for a section, then that Destination will be used as the 'Default Destination'. The 'Default Destination' is used for any source VIs that are not found within the <i>Source *************** *** 393,409 **** section. </p> ! <p>The <i>Apply New Password</i> is optional parameter that may be used to apply a password string to all VIs of the destination. If the parameter is missed or a value of it is an empty string, DEAB uses a value of the <i><a href="#General: Apply New Password">Apply ! New Password</a> </i>parameter in the <i>[General]</i> section as a default value. If a resulting password is an empty string, no password will be applied to VIs of the ! destination; otherwise, all the target VIs accept the password.<br> ! There are 2 special cases of a password string. If a password string is ! "none", it suppresses a default password (specified in <i><a href="#General: Apply New Password">[General]</a></i> ! section) for the destination. If a password string is either "random" ! or "random:N", where N is an integer, DEAB generates random ! password of a length N (32 by default) and applies it to all VIs of the destination. ! Note that both "none" and "random" keywords are ! case-insensitive.<br> </p> <p><u>Example:</u></p> --- 455,475 ---- section. </p> ! <p> <i><b>Apply New Password</b></i> is optional parameter that may be used to apply a password string to all VIs of the destination. If the parameter is missed or a value of it is an empty string, DEAB uses a value of the <i><a href="#General: Apply New Password">Apply ! New Password</a> </i>parameter in [General] section as a default value. If a resulting password is an empty string, no password will be applied to VIs of the ! destination; otherwise, all the target VIs accept the password. A special case ! is a use of <random:N> keyword to generate a random password and ! <none> keyword to disable a password. <a href="#KWD: none & pwd">Click ! here</a> for more information. ! </p> ! <p><i><b>Namespace</b></i> is optional parameter that may be used to override a ! default <i><a href="#General: Namespace">Namespace</a></i>, specified in ! [General] section, for VIs of the destination. If the parameter is missed or a ! value of it is an empty string, DEAB uses a default namespace. A special case is ! a use of <random:N> keyword to generate a random namespace and ! <none> keyword to discard a namespace. <a href="#KWD: none & pwd">Click ! here</a> for more information.<br> </p> <p><u>Example:</u></p> *************** *** 411,437 **** Source Dir = ""<br> Target Dir = "test_built"<br> ! Convert Target to LLB=TRUE<br> ! Convert Target to EXE=FALSE<br> ! Remove Diagrams=FALSE<br> ! Default Destination=TRUE<br> ! Apply New Password="MySecretPassword"<br> ! <br> ! [Destination 1001]<br> Source Dir = <vi.lib><br> Target Dir = "Support VIs\vi_lib.llb"<br> ! Convert Target to LLB=TRUE<br> ! Convert Target to EXE=FALSE<br> ! Remove Diagrams=FALSE<br> ! Default Destination=FALSE<br> ! Apply New Password=""<br> ! <br> ! [Destination 2001]<br> Source Dir = <user.lib><br> Target Dir = "Support VIs\user.lib\<KeepHierarchy>"<br> ! Convert Target to LLB=FALSE<br> ! Convert Target to EXE=FALSE<br> ! Remove Diagrams=FALSE<br> ! Default Destination=FALSE<br> ! Apply New Password="random:16"<br> </p> <hr> --- 477,508 ---- Source Dir = ""<br> Target Dir = "test_built"<br> ! Convert Target to LLB = TRUE<br> ! Convert Target to EXE = FALSE<br> ! Remove Diagrams = FALSE<br> ! Default Destination = TRUE<br> ! Apply New Password = "MySecretPassword"<br> ! Namespace = "abcd" ! </p> ! <p>[Destination 1001]<br> Source Dir = <vi.lib><br> Target Dir = "Support VIs\vi_lib.llb"<br> ! Convert Target to LLB = TRUE<br> ! Convert Target to EXE = FALSE<br> ! Remove Diagrams = FALSE<br> ! Default Destination = FALSE<br> ! Apply New Password = ""<br> ! Namespace = "" ! </p> ! <p>[Destination 2001]<br> Source Dir = <user.lib><br> Target Dir = "Support VIs\user.lib\<KeepHierarchy>"<br> ! Convert Target to LLB = FALSE<br> ! Convert Target to EXE = FALSE<br> ! Remove Diagrams = FALSE<br> ! Default Destination = FALSE<br> ! Apply New Password = <random:16><br> ! Namespace = <random> ! </p> ! <p> </p> <hr> *************** *** 443,453 **** <p><i>[SupportFiles N]</i> sections should be named "SupportFiles N", where "N" is an arbitrary unique integer. This allows to specify multiple SupportFiles sections.</p> ! <p><i>TargetDir</i> is an optional parameter to specify a target directory. If it is not specified, it is assumed to be the <i><a href="#General: Build Root"> Build Root</a></i>. A <i>TargetDir</i> may be either an absolute path, or a path relative to the <i> Build Root</i>.<br> <br> ! <i>OverwriteExisting</i> specifies whether to overwrite files in the <i> TargetDir</i>. This is an optional. If it is not specified, it is assumed to be FALSE<br> <br> ! <i>SourceFile X</i> keys should be named "SourceFile X", where "X" is an arbitrary unique integer. It allows to specify multiple source files for the <i> TargetDir</i>. A <i> SourceFile</i> can be either an absolute path or a path relative to --- 514,524 ---- <p><i>[SupportFiles N]</i> sections should be named "SupportFiles N", where "N" is an arbitrary unique integer. This allows to specify multiple SupportFiles sections.</p> ! <p><i><b>TargetDir</b></i> is an optional parameter to specify a target directory. If it is not specified, it is assumed to be the <i><a href="#General: Build Root"> Build Root</a></i>. A <i>TargetDir</i> may be either an absolute path, or a path relative to the <i> Build Root</i>.<br> <br> ! <i><b>OverwriteExisting</b></i> specifies whether to overwrite files in the <i> TargetDir</i>. This is an optional. If it is not specified, it is assumed to be FALSE<br> <br> ! <i><b>SourceFile X</b></i> keys should be named "SourceFile X", where "X" is an arbitrary unique integer. It allows to specify multiple source files for the <i> TargetDir</i>. A <i> SourceFile</i> can be either an absolute path or a path relative to *************** *** 455,459 **** may contain wildcards in a file name to specify a group of files. It is possible to specify no SourceFiles in order to just create the <i> TargetDir</i>.</p> ! <p><i>FollowVIDirHierarchy</i> is optional. If there are VIs, destination directories of which are beneath <i> TargetDir</i>, DEAB looks for the specified <i> SourceFiles</i> in the VIs' source directories and copies them to the appropriate positions beneath <i> TargetDir</i>. I.e., if a source VI has a support file in its parent directory, it will also have the support file in its new (destination) parent directory. Note that only name of a --- 526,530 ---- may contain wildcards in a file name to specify a group of files. It is possible to specify no SourceFiles in order to just create the <i> TargetDir</i>.</p> ! <p><i><b>FollowVIDirHierarchy</b></i> is optional. If there are VIs, destination directories of which are beneath <i> TargetDir</i>, DEAB looks for the specified <i> SourceFiles</i> in the VIs' source directories and copies them to the appropriate positions beneath <i> TargetDir</i>. I.e., if a source VI has a support file in its parent directory, it will also have the support file in its new (destination) parent directory. Note that only name of a *************** *** 485,488 **** --- 556,579 ---- <hr> + <p><a name="KWD: none & pwd"></a>Keywords applicable to <i><b>Namespace</b></i> + and <i><b>Apply New Password</b></i> parameters</p> + <p><random:N> keyword forces DEAB to generate a random string of length N, + where N is a positive integer. If N is less than or equal to zero, or it is + omitted, it assumes the default value of 32. A random string may contain digits (0..9), upper-case letters (A..Z) and lower-case letters (a..z).</p> + <p><none> keyword forces DEAB to generate empty string. A use of this + keyword is useful in <i><a href="#Destination">[Destination N]</a></i> section + to discard a default password and/or a default namespace (<i><a href="#General: Apply New Password">Apply + New Password</a></i> and <i><a href="#General: Namespace">Namespace</a></i> + parameters in General section) for VIs of th... [truncated message content] |