diff options
Diffstat (limited to 'src/rebar_dir.erl')
-rw-r--r-- | src/rebar_dir.erl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rebar_dir.erl b/src/rebar_dir.erl index d0c7805..7a779d1 100644 --- a/src/rebar_dir.erl +++ b/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()). |