Selaa lähdekoodia

ft: 优化

master
lijie 3 vuotta sitten
vanhempi
commit
4994ccc50a
2 muutettua tiedostoa jossa 13 lisäystä ja 11 poistoa
  1. +2
    -1
      README.md
  2. +11
    -10
      src/eMake.erl

+ 2
- 1
README.md Näytä tiedosto

@ -7,7 +7,7 @@ Build
-----
$ rebar3 escriptize -> eMake
$ rebar3 compile
将编译得到 _build/default/bin 下面的eMake eMake.cmd 文件复制到工作目录或者添加到环境变量即可使用
eg
-----
@ -17,3 +17,4 @@ eg
eMake 4
eMake "./Emakefile" 4
eMake "./Emakefile" 4 "[noexec, debug_info]"
可以在编译之后修改代码指定默认的 Emakefile文件

+ 11
- 10
src/eMake.erl Näytä tiedosto

@ -12,26 +12,27 @@
]).
-define(MakeOpts, [noexec, load, netload, noload]).
-define(EMakefile, "./Emakefile_dev").
-define(EMakefile, "./Emakefile").
-define(OnceCnt, 16).
main(Args) ->
process_flag(trap_exit, true),
case Args of
IsAll = lists:member("all", Args),
case lists:delete("all", Args) of
[] ->
make(max(1, erlang:system_info(schedulers) - 1), ?EMakefile, []);
make(max(1, erlang:system_info(schedulers) - 1), ?EMakefile, [], IsAll);
[EMakeFileOrWorkCnt] ->
try list_to_integer(EMakeFileOrWorkCnt) of
Cnt ->
make(max(1, Cnt), ?EMakefile, [])
make(max(1, Cnt), ?EMakefile, [], IsAll)
catch _:_ ->
make(max(1, erlang:system_info(schedulers) - 1), EMakeFileOrWorkCnt, [])
make(max(1, erlang:system_info(schedulers) - 1), EMakeFileOrWorkCnt, [], IsAll)
end;
[EMakeFile, WorkCntStr] ->
make(max(1, list_to_integer(WorkCntStr)), EMakeFile, []);
make(max(1, list_to_integer(WorkCntStr)), EMakeFile, [], IsAll);
[EMakeFile, WorkCntStr, OptsStr] ->
{ok, Opts} = strToTerm(OptsStr),
make(max(1, list_to_integer(WorkCntStr)), EMakeFile, Opts)
make(max(1, list_to_integer(WorkCntStr)), EMakeFile, Opts, IsAll)
end.
eMakeFile() ->
@ -56,15 +57,15 @@ saveEMake(NowTime) ->
ok
end.
make(WorkerCnt, EMakeFile, Opts) ->
make(WorkerCnt, EMakeFile, Opts, IsAll) ->
io:format("compile start use EMakefile: ~ts~n", [EMakeFile]),
StartTime = erlang:system_time(second),
{MakeOpts, CompileOpts} = splitOpts(Opts, [], []),
case readEMakefile(EMakeFile, CompileOpts) of
{ok, Files} ->
LastTime = readEMake(),
IsAll = LastTime /= 0 andalso StartTime =< LastTime,
Ret = forMake(Files, WorkerCnt, lists:member(noexec, MakeOpts), load_opt(MakeOpts), IsAll, []),
LIsAll = IsAll orelse (LastTime /= 0 andalso StartTime =< LastTime),
Ret = forMake(Files, WorkerCnt, lists:member(noexec, MakeOpts), load_opt(MakeOpts), LIsAll, []),
EndTime = erlang:system_time(second),
saveEMake(EndTime),
case Ret of

Ladataan…
Peruuta
Tallenna