drom_lib

The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience
Module Drom_lib . Types
type kind =
| Program
| Library
| Virtual
type version =
| Lt of string
| Le of string
| Eq of string
| Ge of string
| Gt of string
| Version
| Semantic of int * int * int
| NoVersion
type dependency = {
depversions : version list;
depname : string option;
deptest : bool;
depdoc : bool;
}
type package = {
name : string;
mutable dir : string;
mutable project : project;
mutable kind : kind;
mutable p_skeleton : string option;
mutable p_pack : string option;
mutable p_version : string option;
mutable p_authors : string list option;
mutable p_synopsis : string option;
mutable p_description : string option;
mutable p_dependencies : (string * dependency) list;
mutable p_tools : (string * dependency) list;
mutable p_pack_modules : bool option;
mutable p_gen_version : string option;
mutable p_fields : string EzCompat.StringMap.t;
mutable p_generators : EzCompat.StringSet.t option;
mutable p_file : string option;
}
and project = {
package : package;
mutable packages : package list;
mutable file : string option;
mutable generators : EzCompat.StringSet.t;
mutable skeleton : string option;
edition : string;
min_edition : string;
github_organization : string option;
homepage : string option;
license : string;
copyright : string option;
bug_reports : string option;
dev_repo : string option;
doc_gen : string option;
doc_api : string option;
skip : string list;
archive : string option;
sphinx_target : string option;
odoc_target : string option;
ci_systems : string list;
skip_dirs : string list;
profiles : profile EzCompat.StringMap.t;
profile : string option;
version : string;
authors : string list;
synopsis : string;
description : string;
share_dirs : string list;
mutable dependencies : (string * dependency) list;
mutable tools : (string * dependency) list;
mutable fields : string EzCompat.StringMap.t;
year : int;
}
and profile = {
flags : string EzCompat.StringMap.t;
}
type config = {
config_author : string option;
config_share_dir : string option;
config_github_organization : string option;
config_license : string option;
config_opam_repo : string option;
config_dev_tools : string list;
}
type opam_kind =
| Single
| LibraryPart
| ProgramPart
| Deps
type switch_arg =
| Local
| Global of string
type flags = {
mutable flag_file : string;
mutable flag_create : bool;
mutable flag_record : bool;
mutable flag_skips : string list;
mutable flag_skip : bool;
mutable flag_subst : bool;
mutable flag_perm : int;
flag_skipper : bool list ref;
}
type skeleton = {
skeleton_inherits : string option;
skeleton_toml : string list;
skeleton_files : (string * string * int) list;
skeleton_flags : flags EzCompat.StringMap.t;
skeleton_drom : bool;
skeleton_name : string;
}
type license = {
license_key : string;
license_name : string;
license_header : string list;
license_contents : string;
}
type deps_status =
| Deps_build
| Deps_devel
| Deps_locked