92 lines
3.3 KiB
OCaml
92 lines
3.3 KiB
OCaml
open Import
|
|
|
|
(** Create a [Dune_pkg.Solver_env.t] by combining variables taken from the
|
|
current system and variables taken from the current context, with priority
|
|
being given to the latter. Some variables are initialized to default values
|
|
(which can be overridden by the arguments to this function):
|
|
- "with-doc" is set to "false"
|
|
- "opam-version" is set to the version of opam vendored in dune *)
|
|
val solver_env
|
|
: solver_env_from_current_system:Dune_pkg.Solver_env.t option
|
|
-> solver_env_from_context:Dune_pkg.Solver_env.t option
|
|
-> unset_solver_vars_from_context:Dune_lang.Package_variable_name.Set.t option
|
|
-> Dune_pkg.Solver_env.t
|
|
|
|
val poll_solver_env_from_current_system : unit -> Dune_pkg.Solver_env.t Fiber.t
|
|
|
|
val solver_env_from_system_and_context
|
|
: lock_dir_path:Path.Source.t
|
|
-> Dune_pkg.Solver_env.t Fiber.t
|
|
|
|
module Version_preference : sig
|
|
type t := Dune_pkg.Version_preference.t
|
|
|
|
val term : Dune_pkg.Version_preference.t option Term.t
|
|
val choose : from_arg:t option -> from_context:t option -> t
|
|
end
|
|
|
|
val unset_solver_vars_of_workspace
|
|
: Workspace.t
|
|
-> lock_dir_path:Path.Source.t
|
|
-> Dune_lang.Package_variable_name.Set.t option
|
|
|
|
val repositories_of_workspace
|
|
: Workspace.t
|
|
-> Dune_pkg.Pkg_workspace.Repository.t Dune_pkg.Pkg_workspace.Repository.Name.Map.t
|
|
|
|
val repositories_of_lock_dir
|
|
: Workspace.t
|
|
-> lock_dir_path:Path.Source.t
|
|
-> (Loc.t * Dune_pkg.Pkg_workspace.Repository.Name.t) list
|
|
|
|
val constraints_of_workspace
|
|
: Workspace.t
|
|
-> lock_dir_path:Path.Source.t
|
|
-> Dune_lang.Package_dependency.t list
|
|
|
|
val depopts_of_workspace
|
|
: Workspace.t
|
|
-> lock_dir_path:Path.Source.t
|
|
-> Package_name.t list
|
|
|
|
val get_repos
|
|
: Dune_pkg.Pkg_workspace.Repository.t Dune_pkg.Pkg_workspace.Repository.Name.Map.t
|
|
-> repositories:(Loc.t * Dune_pkg.Pkg_workspace.Repository.Name.t) list
|
|
-> Dune_pkg.Opam_repo.t list Fiber.t
|
|
|
|
val find_local_packages : Dune_pkg.Local_package.t Package_name.Map.t Memo.t
|
|
|
|
module Lock_dirs_arg : sig
|
|
(** [Lock_dirs_arg.t] is the type of lock directory arguments. This can be
|
|
created with [Lock_dirs_arg.term] and used with
|
|
[Lock_dirs_arg.lock_dirs_of_workspace]. *)
|
|
type t
|
|
|
|
(** Select all lockdirs *)
|
|
val all : t
|
|
|
|
(** [Lock_dirs_arg.term] is a command-line argument that can be used to
|
|
specify the lock directories to consider. This can then be passed to
|
|
[Lock_dirs_arg.lock_dirs_of_workspace].
|
|
|
|
There are two mutually exclusive cases:
|
|
- The user passed a list of lick directories as positional
|
|
arguments.contents
|
|
- The user passed the ["--all"] flag, in which case all lock directories
|
|
of the workspace are considered. *)
|
|
val term : t Term.t
|
|
|
|
(** [Lock_dirs_arg.lock_dirs_of_workspace t workspace] returns the list of
|
|
lock directories that should be considered for various operations.
|
|
|
|
The [workspace] argument is used to determine the list of all lock lock
|
|
directories.
|
|
|
|
A user error is raised if the list of positional arguments used when
|
|
creating [t] is not a subset of the lock directories of the workspace. *)
|
|
val lock_dirs_of_workspace : t -> Workspace.t -> Path.Source.t list
|
|
end
|
|
|
|
(** [pp_packages lock_dir] returns a list of pretty-printed packages occurring in
|
|
[lock_dir]. *)
|
|
val pp_packages : Dune_pkg.Lock_dir.Pkg.t list -> User_message.Style.t Pp.t
|