blob: ff5ef9b00676af60e3cfc15065a85664a8f6ddcb [file] [log] [blame]
%% -*- tab-width: 4;erlang-indent-level: 4;indent-tabs-mode: nil -*-
%% ex: ft=erlang ts=4 sw=4 et
%% Licensed under the Apache License, Version 2.0 (the "License"); you may not
%% use this file except in compliance with the License. You may obtain a copy of
%% the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
%% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
%% License for the specific language governing permissions and limitations under
%% the License.
Arch = erlang:system_info(system_architecture),
ICUConfig = fun(Args) ->
{0, Value} = eunit_lib:command("icu-config " ++ Args),
[C||C <- Value, C =/= $\n]
end,
GetFlag = fun(Name, Args) ->
case os:getenv(Name) of
false -> ICUConfig(Args);
Val -> Val
end
end,
ICUCFLAGS = GetFlag("ICU_CFLAGS", "--cflags"),
ICUCXXFLAGS = GetFlag("ICU_CXXFLAGS", "--cxxflags"),
ICULDFLAGS = GetFlag("ICU_LDFLAGS", "--ldflags"),
ICUINCPATH = GetFlag("ICU_INCPATH", "--cppflags-searchpath"),
PortEnv = [{port_env, [
{"CFLAGS", ICUCFLAGS ++ " $CFLAGS " ++ ICUINCPATH},
{"CXXFLAGS", ICUCXXFLAGS ++ " $CXXFLAGS " ++ ICUINCPATH},
{"LDFLAGS", ICULDFLAGS ++ " $LDFLAGS"}]},
{port_specs, [
{filename:join(["priv", Arch, "couch_collate.so"]),
["c_src/*.c"]}]}
],
lists:keymerge(1,lists:keysort(1, PortEnv), lists:keysort(1, CONFIG)).