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,5 @@
(rule (with-stdout-to foo (run echo foo)))
(alias
(name install)
(deps foo))

View file

@ -0,0 +1,4 @@
@all includes user defined install alias
$ dune build --display short @all
echo foo

View file

@ -0,0 +1,6 @@
@all builds custom install stanzas
$ dune build @subdir/all
Error: No rule found for subdir/foobar
-> required by alias subdir/all
[1]

View file

@ -0,0 +1,3 @@
(install
(section share)
(files foobar))

View file

@ -0,0 +1 @@
(executable (name foo))

View file

@ -0,0 +1,4 @@
@all builds private exe's
$ dune build @all --display short 2>&1 | grep -i exe
ocamlopt foo.exe

View file

@ -0,0 +1 @@
(library (name bar))

View file

@ -0,0 +1,4 @@
@all builds private libs
$ dune build --display short @all 2>&1 | grep bar.cma
ocamlc bar.cma

View file

@ -0,0 +1,34 @@
@all does not depend directly on file copies from the source tree
$ cat > dune-project <<EOF
> (lang dune 3.0)
> EOF
Add two files
$ touch a.ml b.ml
An empty project, should not copy any file.
$ dune build
$ [ -d _build/default ] && find _build/default -name '*.ml'
[1]
A project that only uses a.ml, should not copy b.ml
$ cat > dune <<EOF
> (library (name a) (modules a))
> EOF
$ dune build
$ find _build/default -name '*.ml'
_build/default/a.ml
A project that uses both files, should copy both.
$ cat > dune <<EOF
> (library (name a))
> EOF
$ dune build
$ find _build/default -name '*.ml' | sort
_build/default/a.ml
_build/default/b.ml

View file

@ -0,0 +1 @@
(rule (with-stdout-to foo (run echo foobar)))

View file

@ -0,0 +1,4 @@
@all builds user defined rules
$ dune build --display short @all
echo foo