From 4b4d66cc640fa933be398b5dcde1e4aa51a98cc0 Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Sun, 28 Aug 2016 18:09:44 +0200 Subject: Fix cdb processing when a file is skipped --- src/rebar_port_compiler.erl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl index 1119e4e..7aa04ec 100644 --- a/src/rebar_port_compiler.erl +++ b/src/rebar_port_compiler.erl @@ -244,15 +244,16 @@ compile_each(Config, [Source | Rest], Type, Env, {NewBins, CDB}) -> Template = select_compile_template(Type, compiler(Ext)), Cmd = expand_command(Template, Env, Source, Bin), CDBEnt = cdb_entry(Source, Cmd, Rest), + NewCDB = [CDBEnt | CDB], case needs_compile(Source, Bin) of true -> ShOpts = [{env, Env}, return_on_error, {use_stdout, false}], exec_compiler(Config, Source, Cmd, ShOpts), compile_each(Config, Rest, Type, Env, - {[Bin | NewBins], [CDBEnt | CDB]}); + {[Bin | NewBins], NewCDB}); false -> ?INFO("Skipping ~s\n", [Source]), - compile_each(Config, Rest, Type, Env, {NewBins, [CDBEnt, CDB]}) + compile_each(Config, Rest, Type, Env, {NewBins, NewCDB}) end. %% Generate a clang compilation db entry for Src and Cmd @@ -394,7 +395,8 @@ get_port_spec(Config, OsType, {_Arch, Target, Sources, Opts}) -> LinkLang = case lists:any( fun(Src) -> compiler(filename:extension(Src)) == "$CXX" end, - SourceFiles) of + SourceFiles) + of true -> cxx; false -> cc end, -- cgit v1.2.1 From 31297b06f61ac24587c9705985b6ecdcb2b45ac5 Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Sun, 28 Aug 2016 19:34:54 +0200 Subject: rebar_utils: restore blank line --- src/rebar_utils.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index c3ebfe5..a5cc0ff 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -94,6 +94,7 @@ is_arch(ArchRegex) -> nomatch -> false end. + %% %% REBAR_TARGET_ARCH, if used, should be set to the "standard" %% target string. That is a prefix for binutils tools. -- cgit v1.2.1 From e4144e9f9d783557860ab599c3b5a0fbf879e88d Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Tue, 30 Aug 2016 15:31:27 +0200 Subject: port_compiler: fix handling of multiple specs --- src/rebar_port_compiler.erl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl index 7aa04ec..9679c80 100644 --- a/src/rebar_port_compiler.erl +++ b/src/rebar_port_compiler.erl @@ -216,15 +216,15 @@ replace_extension(File, OldExt, NewExt) -> %% compile_sources(Config, Specs, SharedEnv) -> - {Res, Db} = + {NewBins, Db} = lists:foldl( - fun(#spec{sources=Sources, type=Type, opts=Opts}, NewBins) -> + fun(#spec{sources=Sources, type=Type, opts=Opts}, Acc) -> Env = proplists:get_value(env, Opts, SharedEnv), - compile_each(Config, Sources, Type, Env, {NewBins, []}) - end, [], Specs), + compile_each(Config, Sources, Type, Env, Acc) + end, {[], []}, Specs), %% Rewrite clang compile commands database file only if something %% was compiled. - case Res of + case NewBins of [] -> ok; _ -> @@ -234,7 +234,7 @@ compile_sources(Config, Specs, SharedEnv) -> ok = io:fwrite(ClangDbFile, "]~n", []), ok = file:close(ClangDbFile) end, - Res. + NewBins. compile_each(_Config, [], _Type, _Env, {NewBins, CDB}) -> {lists:reverse(NewBins), lists:reverse(CDB)}; -- cgit v1.2.1