YEPZUQBDMT75FZUFBNGRJJEXERNI6QJ64MVX3G23XHLP4QADZOTQC
LIMIMBOUN3DCIKKTHOK4TAXAWQXNVQXBTMNZYN22DJX4L4FZQH4AC
LQBZJUGCEIU56WBYBLE757W2DHPZWJ4JNG3ILB52RDXMXUYAPZCQC
LTB4YNHF75FTVQG6S5PL46CGS4CMDWZRAEXWEIXUHQHIWVYVKFKAC
6BIW5YDCZXIH3SNKNTZ3MSHUFGN3VKAYPKI4MWJIFVUY7YQSJJ3AC
UWQB743KR36X6A6JVNK3VH6KMEFUHOUT6ZS2Y2SWIJR55JSF5WQAC
LIUJQXB752UIHJFF32LKJ7ECUZ2VDIFDDHBLAUVNBRTPDYNCAUYQC
R7J4254ZZREVMWXXDUM772GPLZSCZSIJKOLEAI33WUF2CPS3X6WQC
(fun acc (rename, name, h, is_proc_macro, b) ->
acc ^ " --extern " ^ underscorize rename ^ "=" ^ List.hd b.destdir
^ "/lib/lib" ^ underscorize name ^ "-" ^ h
^
if is_proc_macro then ".so"
else if kind = "lib" then ".rmeta"
else ".rlib")
"" dependencies
(fun (acc_extern, acc_ln) (rename, lib_name, h, is_proc_macro, b) ->
let acc_extern =
acc_extern ^ " --extern " ^ underscorize rename
^ "=target/deps/lib" ^ underscorize lib_name ^ "-" ^ h
^ if is_proc_macro then ".so" else ".rlib"
in
let acc_ln =
acc_ln ^ "ln -sf " ^ List.hd b.destdir ^ "/lib/* target/deps\n"
in
(acc_extern, acc_ln))
("", "mkdir -p target/deps\n")
dependencies
set -x
rustc --crate-name %{under} %{edition} %{src_path} %{target} --crate-type bin -C linker=gcc $RUSTC_FLAGS %{features_args} -C metadata=%{hash} --out-dir %{out} %{dependencies_str} -L dependency=../lib --cap-lints allow
{ set +x; } 2>/dev/null
mkdir -p target %{out} $DESTDIR
touch target/rustc.opt
RUSTC_FLAGS=$(cat target/rustc.opt)
find $DESTDIR
%{target_deps}
rustc --crate-name %{under} %{edition} %{src_path} %{target} --crate-type bin --emit=link -C linker=gcc $RUSTC_FLAGS %{features_args} -C metadata=%{hash}-bin --out-dir %{out} %{dependencies_str} %{local} -L dependency=target/deps --cap-lints allow
set -x
rustc --crate-name %{under} %{edition} %{src_path} --crate-type %{kind} %{target} --emit=dep-info,metadata,link -C linker=gcc -C embed-bitcode=no -C debuginfo=2 $RUSTC_FLAGS %{if kind = "proc-macro" then " -C prefer-dynamic" else ""} %{features_args} -C metadata=%{hash} --out-dir %{out} -C extra-filename=-%{hash} %{dependencies_str} %{if kind = "proc-macro" then " --extern proc_macro" else ""} --cap-lints allow
{ set +x; } 2>/dev/null
mkdir -p target %{out}
touch target/rustc.opt
RUSTC_FLAGS=$(cat target/rustc.opt)
%{target_deps}
rustc --crate-name %{under} %{edition} %{src_path} --crate-type %{kind} %{target} --emit=link -C linker=gcc -C embed-bitcode=no -C debuginfo=2 $RUSTC_FLAGS %{if kind = "proc-macro" then " -C prefer-dynamic" else ""} %{features_args} -C metadata=%{hash} --out-dir %{out} -C extra-filename=-%{hash} %{dependencies_str} %{if kind = "proc-macro" then " --extern proc_macro" else ""} -L dependency=target/deps --cap-lints allow
let c =
match !backend_conn with
| None -> failwith "no conn"
| Some c -> c
in
let* index =
Lwt_list.map_p
(fun repository ->
let arch =
match platform.arch with
| Amd64 -> Elpegrpc.Elpe.Arch.Amd64
| Aarch64 -> Elpegrpc.Elpe.Arch.Aarch64
in
let* res = ubuntu_release c ~release ~arch ~repository in
let res, _ = Result.get_ok res in
match res with
| `Ok r -> Lwt.return r.destdir
| `Error e -> raise (DerivationError e)
| _ -> assert false)
[ "main"; "universe" ]
in
let index = List.concat index in
let* res = ubuntu_package c ~index ~name in
let r = Result.get_ok res in
let x = { destdir = r.destdir; paths = r.paths } in
cached_build := Some x;
Lwt.return x)
match !cached_build with
| Some x -> Lwt.return x
| None ->
let c =
match !backend_conn with
| None -> failwith "no conn"
| Some c -> c
in
let* index =
Lwt_list.map_p
(fun repository ->
let arch =
match platform.arch with
| Amd64 -> Elpegrpc.Elpe.Arch.Amd64
| Aarch64 -> Elpegrpc.Elpe.Arch.Aarch64
in
let* res =
ubuntu_release c ~release ~arch ~repository
in
let res, _ = Result.get_ok res in
match res with
| `Ok r -> Lwt.return r.destdir
| `Error e -> raise (DerivationError e)
| _ -> assert false)
[ "main"; "universe" ]
in
let index = List.concat index in
let* res = ubuntu_package c ~index ~name in
let r = Result.get_ok res in
let x = { destdir = r.destdir; paths = r.paths } in
cached_build := Some x;
Lwt.return x)