Change arch-specific port_sources to take a list

Change the second parameter of a regex tagged port_source from being a
filename or wildcard to being a list of filenames or wildcards.

Previously: {"R14", "c_src/*.c"}
Now: {"R14", ["c_src/*.c"]}

Motivation for change is to avoid repeating regexes.
This commit is contained in:
Andrew Tunnell-Jones 2011-05-26 09:20:45 +00:00 committed by Tuncer Ayaz
parent cb188366ee
commit aef6c70f59
2 changed files with 11 additions and 8 deletions

View file

@ -35,8 +35,11 @@
%% == Port Compiler == %% == Port Compiler ==
%% List and wildcard list of files to be compiled. Default is `"c_src/*.c"' %% List of filenames or wildcards to be compiled. May also contain a tuple
{port_sources, []}. %% consisting of a regular expression to be applied against the system
%% architecture and a list of filenames or wildcards to include should the
%% expression pass. Default is `"c_src/*.c"'
{port_sources, ["c_src/*.c", {"R14", ["c_src/*.c"]}]}.
%% Port compilation environment variables. See rebar_port_compiler.erl for %% Port compilation environment variables. See rebar_port_compiler.erl for
%% more info. Default is `[]' %% more info. Default is `[]'

View file

@ -38,11 +38,11 @@
%% Supported configuration variables: %% Supported configuration variables:
%% %%
%% * port_sources - Erlang list of files and/or wildcard strings to be %% * port_sources - Erlang list of filenames or wildcards to be compiled. May
%% compiled. Platform specific sources can be specified %% also contain a tuple consisting of a regular expression to
%% by enclosing a string in a tuple of the form %% be applied against the system architecture and a list of
%% {Regex, String} wherein Regex is a regular expression %% filenames or wildcards to include should the expression
%% that is checked against the system architecture. %% pass.
%% %%
%% * so_specs - Erlang list of tuples of the form %% * so_specs - Erlang list of tuples of the form
%% {"priv/so_name.so", ["c_src/object_file_name.o"]} %% {"priv/so_name.so", ["c_src/object_file_name.o"]}
@ -166,7 +166,7 @@ expand_sources([], Acc) ->
expand_sources([{ArchRegex, Spec} | Rest], Acc) -> expand_sources([{ArchRegex, Spec} | Rest], Acc) ->
case rebar_utils:is_arch(ArchRegex) of case rebar_utils:is_arch(ArchRegex) of
true -> true ->
Acc2 = filelib:wildcard(Spec) ++ Acc, Acc2 = expand_sources(Spec, Acc),
expand_sources(Rest, Acc2); expand_sources(Rest, Acc2);
false -> false ->
expand_sources(Rest, Acc) expand_sources(Rest, Acc)