Parcourir la source

优化改进

master
AICells il y a 5 ans
Parent
révision
6111257d2e
2 fichiers modifiés avec 31 ajouts et 4 suppressions
  1. +9
    -3
      src/sync/esScanner.erl
  2. +22
    -1
      src/sync/esUtils.erl

+ 9
- 3
src/sync/esScanner.erl Voir le fichier

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

+ 22
- 1
src/sync/esUtils.erl Voir le fichier

@ -16,7 +16,8 @@
logSuccess/1,
logErrors/1,
logWarnings/1,
getSystemModules/0
getSystemModules/0,
tryGetModOptions/1
]).
getModSrcDir(Module) ->
@ -82,6 +83,26 @@ getModOptions(Module) ->
{ok, []}
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) ->
[{outdir, BeamDir} | proplists:delete(outdir, Options)].

Chargement…
Annuler
Enregistrer