ソースを参照

Merge pull request #1624 from ferd/fix-rel-srcdirs

Fix relative src_dir specifications to avoid double .app.src file detection
pull/1630/head
Fred Hebert 7年前
committed by GitHub
コミット
03f6f634f0
2個のファイルの変更10行の追加3行の削除
  1. +9
    -2
      src/rebar_dir.erl
  2. +1
    -1
      test/rebar_dir_SUITE.erl

+ 9
- 2
src/rebar_dir.erl ファイルの表示

@ -258,8 +258,11 @@ extra_src_dirs(Opts, Default) ->
%% @private agnostic version of src_dirs and extra_src_dirs.
src_dirs(Type, Opts, Default) ->
lists:usort([case D0 of {D,_} -> D; _ -> D0 end ||
D0 <- raw_src_dirs(Type,Opts,Default)]).
lists:usort([
case D0 of
{D,_} -> normalize_relative_path(D);
_ -> normalize_relative_path(D0)
end || D0 <- raw_src_dirs(Type,Opts,Default)]).
%% @private extracts the un-formatted src_dirs or extra_src_dirs
%% options as configured.
@ -271,6 +274,10 @@ raw_src_dirs(Type, Opts, Default) ->
Dirs -> Dirs
end.
%% @private normalizes relative paths so that ./a/b/c/ => a/b/c
normalize_relative_path(Path) ->
make_normalized_path(filename:split(Path), []).
%% @doc returns all the source directories (`src_dirs' and
%% `extra_src_dirs').
-spec all_src_dirs(rebar_dict()) -> list(file:filename_all()).

+ 1
- 1
test/rebar_dir_SUITE.erl ファイルの表示

@ -68,7 +68,7 @@ default_all_src_dirs(Config) ->
["src", "test"] = rebar_dir:all_src_dirs(rebar_state:opts(State), ["src"], ["test"]).
src_dirs(Config) ->
RebarConfig = [{erl_opts, [{src_dirs, ["foo", "bar", "baz"]}]}],
RebarConfig = [{erl_opts, [{src_dirs, ["foo", "./bar", "bar", "bar/", "./bar/", "baz"]}]}],
{ok, State} = rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"], return),
["bar", "baz", "foo"] = rebar_dir:src_dirs(rebar_state:opts(State)).

読み込み中…
キャンセル
保存