package¶
- (package ...)
Define package-specific metadata.
- (name <string>)
The name of the package.
This must be specified.
- (synopsis <string>)
A short package description.
- (description <string>)
A longer package description.
- (depends <dep-specification>)
Package dependencies, as
dep_specification
.
- (conflicts <dep-specification>)
Package conflicts, as
dep_specification
.
- (depopts <dep-specification>)
Optional package dependencies, as
dep_specification
.
- (tags <tags>)
A list of tags.
- (deprecated_package_names <name list>)
A list of names that can be used with the deprecated_library_name stanza to migrate legacy libraries from other build systems that do not follow Dune’s convention of prefixing the library’s public name with the package name.
- (license ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (authors ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (maintainers ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (source ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (bug_reports ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (homepage ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (documentation ...)
Added in version 2.0.
The same as (and takes precedences over) the corresponding global field.
- (sites ...)
Define a site.
(sites (<section> <name>) ...)
defines a site named<name>
in the section<section>
.
Adding libraries to different packages is done via the public_name
and
package
fields. See library section for details.
The list of dependencies dep_specification
is modelled after
opam’s own language. The syntax is a list of the following elements:
op ::= '=' | '<' | '>' | '<>' | '>=' | '<=' filter ::= :dev | :build | :with-test | :with-doc | :post constr ::= (<op> <version>) logop ::= or | and dep ::= <name> (<name> <filter>) (<name> <constr>) (<name> (<logop> (<filter> | <constr>))*) dep_specification ::= <dep>+
Filters will expand to any opam variable name if prefixed by :
, not just the
ones listed in filter
. This also applies to version numbers.
For example, to generate depends: [ pkg { = version } ]
, use (depends
(pkg (= :version)))
.
Note that the use of a using
stanza (see using) doesn’t
automatically add the associated library or tool as a dependency. They have to
be added explicitly.