B0_opam.Meta
opam
metadata.
Some of the metadata is covered by standard keys.
The type for package specifications. A package name and a filtered package formula, use ""
if you don't have any constraint.
val build : string B0_meta.key
build
is an opam build:
field value. This is a raw string in opam syntax that defines the whole field. Used to override automatic opam file generation, see pkg_of_pack
.
val depends : pkg_spec list B0_meta.key
depends
is an opam depends:
field value. Used to override automatic opam file dependency generation, see pkg_of_pack
.
val depopts : pkg_spec list B0_meta.key
depopts
is an opam depopts:
field value.
val conflicts : pkg_spec list B0_meta.key
conflicts
is an opam conflicts:
field value.
val file_addendum : File.t B0_meta.key
file_addendum
is an opam
file fragment appended at the end of a generated opam
file. See B0_opam.File.pkg_of_meta
.
val install : string B0_meta.key
install
is an opam install:
field value. This is a raw string in opam syntax that defines the whole field. Used to override automatic opam file generation, see pkg_of_pack
.
val name : string B0_meta.key
name
is an opam
name:
field value. Use to override automatic opam
package name generation, see pkg_of_pack
.
pkg_of_pack p
is opam
package metadata for pack p
ready to be used with File.pkg_of_meta
to derive an opam package file.
This is p
's metadata with the following fields added if they are unspecified:
name
, the value of B0_opam.pkg_name_of_pack
p
.B0_meta.synopsis
and B0_meta.description
. The fields are tentatively derived from an existing README.md
in the scope directory of p
. The first marked up section of the file is extracted, its title is parsed according to the pattern '$(NAME) $(SEP) $(SYNOPSIS)' to get a synopsis line and the body up to the next (sub)section defines the description.build
, a locked b0 build of the pack is defined.depends
, we collect the OCaml libraries required by units in the pack, derive a package names out of them. FIXME. This is the poc but it's not workable for now we don't have enough metadata in library names.