TABS (Tcl Automated Build System) is a tool for building cookfs, mk4 and zip archives. It is loosely based on idea of SDX (Starkit Developer eXtension) and Makefile-like approach. It is mainly used to create starkits, zipkits, starpacks and cookfs-based archives and binaries. Initially it was developed mainly for cookfs, however, all jobs now support all major archive formats used in Tcl world.
|
Tcl/Tk -
TABS
|
|
Job wrap is used to create a starkit, zipkit, cookfs archives and can be used to create tclkit or cookit based standalone applications.
The following table shows all options accepted by wrap job:
| -binary | | Runtime to use for standalone binaries |
| -checkuptodate | false | Whether check if job is up to date should be done; otherwise job is always run |
| -copy | | List of files/directories to copy; specified as file/directory to copy or list specified as {source destination} |
| -driver | | VFS type to use - supports mk4, zip and cookfs |
| -driveroptions | | Additional options to pass to VFS driver; type dependant |
| -excludedirectories | CVS .svn | List of directories to exclude from including |
| -excludefiles | core | List of filenames to exclude |
| -executionlevel | | Set execution level for binary for Windows Vista, Windows 7, if possible; only valid for win32 platform |
| -fail | true | Fail entire build if job fails |
| -fileinfo | | List of name-value for specifying resource information; only valid for win32 platform |
| -icons | | List of *.ico files to use for replacing icons in runtime; only valid for win32 platform |
| -output | | Output file |
| -packages | | List of packages to include; specific to cookfs/cookit building |
| -skiptags | | Currently unused |
| -starkit | false | Create a starkit header for sourcing in Tcl |
Where -fileinfo is one of: FileDescription, OriginalFilename, CompanyName, LegalCopyright, FileVersion, ProductName, ProductVersion or ProductVersionBinary.
Â
Sample wrap job
tabs wrap -driver mk4 -output app.tcl -copy "app.vfs/*" -starkit 1
Building zip or cookfs based archive requires specifying appropriate -driver - for example -driver cookfs or -driver zip.
Â
Copying from multiple directories or files can also be done easily:
Â
Copying common.vfs, client.vfs and main.tcl
tabs wrap -driver mk4 -output app.tcl -copy "app.vfs/* client.vfs/* scripts/main.tcl" -starkit 1
Â
Â
Building a standalone binary on Windows can be done by adding -binary instead of -starkitt:
Â
Creating standalone binary
tabs wrap -output app.exe -copy "app.vfs/*" -binary tclkit.exe
Â
We can also change file resources and icons by adding -icons and -fileinfo:
Â
Creating standalone binary with custom resources and icons
tabs wrap -output app.exe -copy "app.vfs/*" -binary tclkit.exe \
  -icons "icons/icon16.ico icons/icon32.ico icons/icon48.ico" \
  -fileinfo "ProductName {Sample App} ProductVersion 1.0"
Â
Â
Even though script is run from shell, -fileinfo takes a Tcl name-value pairs list.
 |