The project.quill file is usually created automatically by Quill via the "quill new" command, and several statements can be added by the "quill add" command. Other changes can be made by the user.
A typical project.quill file consists of:
The version is the version of the project; it will also be used as the version number for any library packages exported by the project. It must take a form acceptable to Tcl's package provide command.
The description is a brief one-line description of the project. It is included in generated documentation. It may not be the empty string.
The name may contain letters, digits, underscores, and hyphens.
Every application will have a loader script "root/bin/name.tcl", and will probably have an associated Tcl package, nameapp, whose code is found in "root/lib/nameapp/". The application can be executed in development via the "quill run" command, or by executing the loader script directly.
By default, the application will be built as a console-oriented kit. The following options may be used to customize how the application is built:
Exe type exe results in a "starpack", a genuine stand-alone executable, for the current platform, whatever it is.
Quill is capable of building cross-platform, i.e., it can build Linux executables on Windows and Windows executables on OS X. See the help for the quill build command.
The default application type is kit.
The name may contain letters, digits, underscores, and hyphens.
Given this information, Quill will:
If the -local option is included, then Quill assumes the dependency is a locally-developed package, and will not attempt to retrieve it from ActiveState's teapot repository.
project-version-name.zip
If the name includes the string "%platform", the string will be replaced by the current platform name, as returned by platform::identify. Since "exe" executable files also include the platform::identify string, this allows one distribution set to support installation on most or all platforms.
The contents of the file is determined by the patterns, which is a list of glob-patterns relative to the project's root directory. For example, the following distribution includes the application, the README file, and the .html files in the docs/ folder:
dist install { %apps bin/myapp.kit README.md docs/*.html }The list of patterns can also include the special pattern %apps, which pulls in all application files for the platform, and %libs, which adds in the teapot .zip files for each of the library packages provided by the project. These files can be added directly into a local teapot using the teacup install command.