Przeglądaj źródła

Fix symlink/copying logic in compiler for priv

Priv and include dirs need the virtual symlink in order to preserve hook
functionality in some edge cases.
pull/1770/head
Fred Hebert 7 lat temu
rodzic
commit
0af9aba244
1 zmienionych plików z 10 dodań i 1 usunięć
  1. +10
    -1
      src/rebar_prv_compile.erl

+ 10
- 1
src/rebar_prv_compile.erl Wyświetl plik

@ -225,7 +225,11 @@ copy_app_dirs(AppInfo, OldAppDir, AppDir) ->
end, end,
{SrcDirs, ExtraDirs} = resolve_src_dirs(rebar_app_info:opts(AppInfo)), {SrcDirs, ExtraDirs} = resolve_src_dirs(rebar_app_info:opts(AppInfo)),
%% link to src_dirs to be adjacent to ebin is needed for R15 use of cover/xref %% link to src_dirs to be adjacent to ebin is needed for R15 use of cover/xref
[symlink_or_copy(OldAppDir, AppDir, Dir) || Dir <- ["priv", "include"] ++ SrcDirs],
%% priv/ and include/ are symlinked unconditionally to allow hooks
%% to write to them _after_ compilation has taken place when the
%% initial directory did not, and still work
[symlink_or_copy(OldAppDir, AppDir, Dir) || Dir <- ["priv", "include"]],
[symlink_or_copy_existing(OldAppDir, AppDir, Dir) || Dir <- SrcDirs],
%% copy all extra_src_dirs as they build into themselves and linking means they %% copy all extra_src_dirs as they build into themselves and linking means they
%% are shared across profiles %% are shared across profiles
[copy(OldAppDir, AppDir, Dir) || Dir <- ExtraDirs]; [copy(OldAppDir, AppDir, Dir) || Dir <- ExtraDirs];
@ -234,6 +238,11 @@ copy_app_dirs(AppInfo, OldAppDir, AppDir) ->
end. end.
symlink_or_copy(OldAppDir, AppDir, Dir) -> symlink_or_copy(OldAppDir, AppDir, Dir) ->
Source = filename:join([OldAppDir, Dir]),
Target = filename:join([AppDir, Dir]),
rebar_file_utils:symlink_or_copy(Source, Target).
symlink_or_copy_existing(OldAppDir, AppDir, Dir) ->
Source = filename:join([OldAppDir, Dir]), Source = filename:join([OldAppDir, Dir]),
Target = filename:join([AppDir, Dir]), Target = filename:join([AppDir, Dir]),
case ec_file:is_dir(Source) of case ec_file:is_dir(Source) of

Ładowanie…
Anuluj
Zapisz