- project project version description
-
Required. This statement must appear in every
project.quill file, and should be the first statement in
the file. The project should be the name of the project; often it
will be the name of the project at a site like
GitHub. It may contain letters, digits,
underscores, and hyphens.
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.
- homepage url
-
Sets the URL of the project's home page. This URL is included in
generated project documentation.
- app name ?options...?
-
States that the project contains an application called name.
A project may define multiple applications; the first to appear
in the project file is called the primary application.
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:
- -gui
-
If the -gui option is specified, the application is a GUI application
and the Tk package will be required automatically. When built as a
starpack, a Tk basekit will be used.
- -apptypes kit | linux | osx | windows
-
An application can be built for multiple platforms; the value of
-apptypes can be a list of any of the above values. The application
will be built as a starpack for the given platforms. The built
application will contain all external dependencies.
- provide name
-
States that the project exports a Tcl library package called
name, whose code is found in the directory
root/lib/name. A project may export any number of
library packages.
The name may contain letters, digits, underscores, and hyphens.
- require package version ?-local?
-
States that the project has an external dependency upon the given
version of the named package. The package and version should
be stated in the same form as you would give to Tcl's
package require
command.
Given this information, Quill will:
- Verify that the package is locally available.
- Attempt to install it from ActiveState's teapot repository if it is
not.
- Include it when building uberkit and exe applications.
- Use the version information to update the project's packages.
Note that Quill does not automatically package require the
packages into Tcl; a project may contain multiple applications and
exported library packags, and each may have slightly different
dependency requirements. Instead, the user adds the relevant
package require statements to each build target's
pkgModules.tcl file, and Quill will then endeavor to
keep the version numbers up to date.
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.
- dist name patterns
-
Defines a distribution with the given name and file patterns.
The quill dist command will produce a distribution .zip file for
each named distribution; the file will be called
project-version-name.zip
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 {
bin/myapp.kit
README.md
docs/*.html
}
The list of patterns can also include the special pattern
%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.