This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
|||
Exercise dune resolving the post dependencies found in compiler packages.
|
||||
|
||||
$ . ./helpers.sh
|
||||
$ mkrepo
|
||||
|
||||
$ cat >dune-workspace << EOF
|
||||
> (lang dune 3.16)
|
||||
> (lock_dir
|
||||
> (path dune.lock)
|
||||
> (repositories mock)
|
||||
> (solver_env
|
||||
> (os linux)))
|
||||
> EOF
|
||||
|
||||
$ mkpkg host-system-other
|
||||
|
||||
$ mkpkg system-mingw << EOF
|
||||
> available: os = "win32"
|
||||
> EOF
|
||||
|
||||
$ mkpkg ocaml << EOF
|
||||
> depends: [
|
||||
> "ocaml-base-compiler"
|
||||
> ]
|
||||
> EOF
|
||||
|
||||
This package has a dependency cycle with the "ocaml" package, broken
|
||||
by the use of post dependencies. It also contains a formula with no
|
||||
solutions when the "post" variable is set to "false" on non-windows
|
||||
systems. Opam evaluates dependency formulae with post=true and then
|
||||
does further filtering to remove post dependencies from dependency
|
||||
lists to prevent circular dependencies at package build time.
|
||||
$ mkpkg ocaml-base-compiler << EOF
|
||||
> depends: [
|
||||
> "ocaml" {post}
|
||||
> (("arch-x86_64" {os = "win32" & arch = "x86_64"} & "system-mingw" &
|
||||
> "mingw-w64-shims" {os-distribution = "cygwin" & build}) |
|
||||
> ("arch-x86_32" {os = "win32"} & "ocaml-option-bytecode-only" &
|
||||
> "system-mingw" &
|
||||
> "mingw-w64-shims" {os-distribution = "cygwin" & build}) |
|
||||
> "host-system-other" {os != "win32" & post})
|
||||
> ]
|
||||
> EOF
|
||||
|
||||
$ solve ocaml-base-compiler
|
||||
Solution for dune.lock:
|
||||
- ocaml-base-compiler.0.0.1
|
||||
|
||||
Ensure that packages can be resolved at build time. This checks that
|
||||
the dependency cycle between the "ocaml" and "ocaml-base-compiler"
|
||||
packages is successfully broken by the use of post dependencies.
|
||||
$ dune build
|
||||
Loading…
Add table
Add a link
Reference in a new issue