B0_opam
opam
support.
See the b0 b0 opam manual for more details.
opam
val get :
?search:B0_std.Cmd.tool_search ->
?cmd:B0_std.Cmd.t ->
unit ->
(t, string) Stdlib.result
get ~search cmd ()
looks for the opam command cmd
(defaults to Cmd.tool "opam"
) in search
(defaults to Os.Cmd.get ?search
).
opam
filesmodule File : sig ... end
opam
file generation.
These metadata keys can be specified to define opam file fields. Some of the metadata is covered by standard keys. The full map is documented in File.pkg_of_meta
.
The type for package specifications. A package name and a filtered package formula, use ""
if you don't have any constraint.
val tag : bool B0_meta.key
tag
indicates the entity is related to opam
. Adding this tag to a pack makes it represent an opam package for b0's opam tooling.
val available : string B0_meta.key
available
is an opam available:
field value. This is a raw string in opam sntax that defines the whole field.
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_meta_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_meta_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_meta_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_meta_of_pack
.
val pin_depends : (string * string) list B0_meta.key
pin_depends
is an opam pin-depends:
field value.
val pkg_name_of_pack : B0_pack.t -> string
pkg_name_of_pack p
derives an opam package name for p
. This is either in order:
name
field of p
's meta, if defined.B0_pack.basename
of p
if not equal to "default"
.p
's scope directory.pkg_meta_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 using B0_pack.derive_synopsis_and_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..opam
unitval unit : B0_unit.t
unit
is the unit of the .opam
action.
See b0 -- .opam --help
and the b0 opam
manual for more information.