Browse Source

优化改进

master
AICells 5 years ago
parent
commit
6111257d2e
2 changed files with 31 additions and 4 deletions
  1. +9
    -3
      src/sync/esScanner.erl
  2. +22
    -1
      src/sync/esUtils.erl

+ 9
- 3
src/sync/esScanner.erl View File

@ -434,7 +434,7 @@ errorNoFile(Module) ->
Msg = io_lib:format("~p Couldn't load module: nofile", [Module]), Msg = io_lib:format("~p Couldn't load module: nofile", [Module]),
esUtils:logWarnings([Msg]). esUtils:logWarnings([Msg]).
recompileSrcFile(SrcFile, _SwSyncNode) ->
recompileSrcFile(SrcFile, SwSyncNode) ->
%% Get the module, src dir, and options... %% Get the module, src dir, and options...
case esUtils:getSrcDir(SrcFile) of case esUtils:getSrcDir(SrcFile) of
{ok, SrcDir} -> {ok, SrcDir} ->
@ -465,8 +465,14 @@ recompileSrcFile(SrcFile, _SwSyncNode) ->
{ok, Errors, Warnings} {ok, Errors, Warnings}
end; end;
undefined -> undefined ->
Msg = io_lib:format("Unable to determine options for ~s", [SrcFile]),
esUtils:logErrors(Msg)
case esUtils:tryGetModOptions(Module) of
{ok, Options} ->
setOptions(SrcDir, Options),
recompileSrcFile(SrcFile, SwSyncNode);
_ ->
Msg = io_lib:format("Unable to determine options for ~s", [SrcFile]),
esUtils:logErrors(Msg)
end
end; end;
_ -> _ ->
Msg = io_lib:format("not find the file ~s", [SrcFile]), Msg = io_lib:format("not find the file ~s", [SrcFile]),

+ 22
- 1
src/sync/esUtils.erl View File

@ -16,7 +16,8 @@
logSuccess/1, logSuccess/1,
logErrors/1, logErrors/1,
logWarnings/1, logWarnings/1,
getSystemModules/0
getSystemModules/0,
tryGetModOptions/1
]). ]).
getModSrcDir(Module) -> getModSrcDir(Module) ->
@ -82,6 +83,26 @@ getModOptions(Module) ->
{ok, []} {ok, []}
end. end.
tryGetModOptions(Module) ->
try
Props = Module:module_info(compile),
BeamDir = filename:dirname(code:which(Module)),
Options1 = proplists:get_value(options, Props, []),
%% transform `outdir'
Options2 = transformOutdir(BeamDir, Options1),
Options3 = ensureInclude(Options2),
%% transform the include directories
Options4 = transformAllIncludes(Module, BeamDir, Options3),
%% maybe_add_compile_info
Options5 = maybeAddCompileInfo(Options4),
%% add filetype to options (DTL, LFE, erl, etc)
Options6 = addFileType(Module, Options5),
{ok, Options6}
catch _ExType:_Error:_Stacktrace ->
undefiend
end.
transformOutdir(BeamDir, Options) -> transformOutdir(BeamDir, Options) ->
[{outdir, BeamDir} | proplists:delete(outdir, Options)]. [{outdir, BeamDir} | proplists:delete(outdir, Options)].

Loading…
Cancel
Save