Manifest

The manifest is the Package.toml file in every package. It contains all the information Grill needs to know about your package. A minimal manifest requires three fields. Name, Version and Description. For example:

[Package]
Name = "MyProject"
Version = "0.1.0"
Description = ""

Dependencies

Dependencies are added to a [Dependencies] table in the manifest. There are 3 types of dependencies:

  • Registry

  • Git

  • Local

Registry

Registry dependencies are the standard way of specifying dependencies. Here the identifier is a published package with a version requirement. The version requirement can be any semver-compatible string.

...
[Dependencies]
OpenGL = "3.3.0"

You can specify which features you want to enable for that specific dependencies with a feature array:

...
[Dependencies]
ImGui = { Version = "1.88", Features = ["OpenGL", "GLFW"] }

A package might have some default features enabled. You can disable these with the DefaultFeatures bool.

Git

Git dependencies require a url and a revision. They are not taken into account when resolving, so types from those dependencies cannot be passed to other dependencies safely.

Local

Local dependencies are specified by path.

Workspaces

If your root package does not include all packages you want in your workspace, or you want to change the startup project, you can do so in the [Workspace] section.

Members is a list of paths to packages you want included in the workspace.

StartupProject is the name of the startup project.

Last updated