This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,30 @@
Using same melange.emit target in two contexts, where the stanzas are defined
in the same dune file
$ cat > dune-project << EOF
> (lang dune 3.13)
> (using melange 0.1)
> EOF
$ cat > dune-workspace << EOF
> (lang dune 3.13)
>
> (context default)
>
> (context
> (default
> (name alt-context)))
> EOF
$ cat > dune << EOF
> (melange.emit
> (target foo)
> (enabled_if (= %{context_name} "default")))
> (melange.emit
> (target foo)
> (enabled_if (= %{context_name} "alt-context")))
> EOF
$ cat > foo.ml <<EOF
> let () = print_endline "foo"
> EOF
$ dune build

View file

@ -0,0 +1,36 @@
Using same melange.emit target in two contexts
$ mkdir -p a b
$ cat > dune-project << EOF
> (lang dune 3.13)
> (using melange 0.1)
> EOF
$ cat > dune-workspace << EOF
> (lang dune 3.13)
>
> (context default)
>
> (context
> (default
> (name alt-context)))
> EOF
$ cat > a/dune << EOF
> (melange.emit
> (target foo)
> (enabled_if (= %{context_name} "default")))
> EOF
$ cat > a/foo.ml <<EOF
> let () = print_endline "foo"
> EOF
$ cat > b/dune << EOF
> (melange.emit
> (target foo)
> (enabled_if (= %{context_name} "alt-context")))
> EOF
$ cat > b/foo.ml <<EOF
> let () = print_endline "foo"
> EOF
$ dune build

View file

@ -0,0 +1,48 @@
Test installation for melange libraries in multiple contexts.
The expectation is that libraries that don't collide (e.g. a melange and a
native library) can be installed in the same context.
Create a package named foo
$ mkdir -p a b
$ cat > dune-project << EOF
> (lang dune 3.13)
> (using melange 0.1)
> (package (name foo))
> EOF
Define libraries in multiple contexts
$ cat > dune-workspace << EOF
> (lang dune 3.13)
> (context default)
> (context
> (default
> (name melange)))
> EOF
$ cat > a/dune << EOF
> (library
> (name foo)
> (public_name foo.native)
> (enabled_if (= %{context_name} "default")))
> (library
> (name foo)
> (public_name foo.melange)
> (modes melange)
> (enabled_if (= %{context_name} "melange")))
> EOF
$ cat > a/foo.ml <<EOF
> let () = print_endline "foo"
> EOF
$ dune build
$ mkdir -p out/man
Try installing both
$ dune install foo --prefix out
Error: Cannot specify '--prefix' or '--libdir' when installing into multiple
contexts!
[1]