Skip to content

Commit 01bfd1b

Browse files
rgrinbergjeremiedimino
authored andcommitted
Fix local_binaries to be called on the correct dir
Previously, it was caused on the associated dir but that was worked by accident. Signed-off-by: Rudi Grinberg <[email protected]>
1 parent c594cc2 commit 01bfd1b

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

src/gen_rules.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ module Gen(P : Install_rules.Params) = struct
199199
begin match List.last comps with
200200
| Some ".bin" ->
201201
let src_dir = Path.parent_exn dir in
202-
Super_context.local_binaries sctx ~dir
202+
Super_context.local_binaries sctx ~dir:src_dir
203203
|> List.iter ~f:(fun t ->
204204
let src = File_bindings.src_path t ~dir:src_dir in
205205
let dst = File_bindings.dst_path t ~dir in

src/super_context.mli

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ val ocaml_flags
5353
-> Buildable.t
5454
-> Ocaml_flags.t
5555

56-
(** Binaries that are symlinked in local .bin directories. [dir]
57-
should point to such a [.bin] directory, such as [foo/bar/.bin]. *)
56+
(** Binaries that are symlinked in the associated .bin directory of [dir]. This
57+
associated directory is [Path.relative dir ".bin"] *)
5858
val local_binaries : t -> dir:Path.t -> string File_bindings.t
5959

6060
(** Dump a directory environment in a readable form *)
Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,23 @@
11
Basic test that we can use private binaries as public ones
22
$ dune build --root private-bin-import
33
Entering directory 'private-bin-import'
4-
File "using-priv/dune", line 7, characters 0-79:
5-
7 | (alias
6-
8 | (name runtest)
7-
9 | (action
8-
10 | (progn
9-
11 | (run priv)
10-
12 | (run priv-renamed))))
11-
Error: No rule found for using-priv/.bin/priv
12-
File "using-priv/dune", line 7, characters 0-79:
13-
7 | (alias
14-
8 | (name runtest)
15-
9 | (action
16-
10 | (progn
17-
11 | (run priv)
18-
12 | (run priv-renamed))))
19-
Error: No rule found for using-priv/.bin/priv-renamed
20-
[1]
4+
priv alias using-priv/runtest
5+
Executing priv as priv
6+
PATH:
7+
_build/default/test/blackbox-tests/test-cases/env-bins/private-bin-import/_build/default/using-priv/.bin
8+
_build/default/test/blackbox-tests/test-cases/env-bins/private-bin-import/_build/install/default/bin
9+
_build/install/default/bin
10+
priv-renamed alias using-priv/runtest
11+
Executing priv as priv-renamed
12+
PATH:
13+
_build/default/test/blackbox-tests/test-cases/env-bins/private-bin-import/_build/default/using-priv/.bin
14+
_build/default/test/blackbox-tests/test-cases/env-bins/private-bin-import/_build/install/default/bin
15+
_build/install/default/bin
2116

2217
Override public binary in env
2318
$ dune build --root override-bins
2419
Entering directory 'override-bins'
25-
File "test/dune", line 5, characters 0-43:
26-
5 | (alias
27-
6 | (name runtest)
28-
7 | (action (run foo)))
29-
Error: No rule found for test/.bin/foo
30-
[1]
20+
foo alias test/runtest
21+
private binary
22+
foo alias default
23+
public binary

0 commit comments

Comments
 (0)