From 3d695208c8569f06659797414e4091cf6fc0f720 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 1 Jul 2020 20:29:29 +0900 Subject: [PATCH] Pending further tests of --libs= --- zomp/lib/otpr/zx/0.10.10/src/zx.erl | 45 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/zomp/lib/otpr/zx/0.10.10/src/zx.erl b/zomp/lib/otpr/zx/0.10.10/src/zx.erl index 7fc4fe0..119a41a 100644 --- a/zomp/lib/otpr/zx/0.10.10/src/zx.erl +++ b/zomp/lib/otpr/zx/0.10.10/src/zx.erl @@ -979,7 +979,8 @@ run_dir(TargetDir, RunArgs) -> ok -> {ok, ProjectDir} = file:get_cwd(), run_project(ProjectDir, ExecDir, RunArgs); - Error -> Error + Error -> + Error end. @@ -990,17 +991,20 @@ run_dir(TargetDir, RunArgs) -> run_project(ProjectDir, ExecDir, RunArgs) -> {ok, Meta} = zx_lib:read_project_meta(), - PackageID = {_, Name, _} = maps:get(package_id, Meta), - Type = maps:get(type, Meta), - Deps = maps:get(deps, Meta), {ok, Dir} = file:get_cwd(), - true = os:putenv(Name ++ "_include", filename:join(Dir, "include")), - case prepare(Deps) of - ok -> - ok = file:set_cwd(ProjectDir), - ok = zx_lib:build(), - ok = file:set_cwd(ExecDir), - execute(Type, PackageID, Meta, Dir, RunArgs); + case pre_prep(Meta, RunArgs) of + {Type, Deps, NewArgs} -> + PackageID = {_, Name, _} = maps:get(package_id, Meta), + true = os:putenv(Name ++ "_include", filename:join(Dir, "include")), + case prepare(Deps) of + ok -> + ok = file:set_cwd(ProjectDir), + ok = zx_lib:build(), + ok = file:set_cwd(ExecDir), + execute(Type, PackageID, Meta, Dir, NewArgs); + Error -> + Error + end; Error -> Error end. @@ -1039,9 +1043,10 @@ dep_split([], Dep, Dir, Deps) -> pre_prep2(Meta, LocalDeps, RunArgs) -> Type = maps:get(type, Meta), Deps = maps:get(deps, Meta), - NewDeps = pre_prep3(Deps, LocalDeps), - {Type, NewDeps, RunArgs}. - + case pre_prep3(Deps, LocalDeps) of + {ok, NewDeps} -> {Type, NewDeps, RunArgs}; + Error -> Error + end. pre_prep3(Deps, [{Dep, Dir} | Rest]) -> case zx_lib:package_id(Dep) of @@ -1051,17 +1056,11 @@ pre_prep3(Deps, [{Dep, Dir} | Rest]) -> pre_prep3(Deps, []) -> {ok, Deps}. -pre_prep4(Deps, {Realm, Name, _}, Dir, Rest) -> +pre_prep4(Deps, Dep = {Realm, Name, _}, Dir, Rest) -> case file:set_cwd(Dir) of ok -> - Scrub = - fun(D = {R, N, _}, Acc) -> - case (R == Realm) andalso (N == Name) of - true -> Acc; - false -> [D | Acc] - end - end, - NewDeps = Scrub(Deps, []), + Scrub = fun({R, N, _}) -> not ((R == Realm) andalso (N == Name)) end, + NewDeps = lists:filter(Scrub, Deps), true = os:putenv(Name ++ "_include", filename:join(Dir, "include")), ok = zx_lib:build(), pre_prep3(NewDeps, Rest);