使用rebar编译依赖项的自定义命令

时间:2011-08-11 15:43:56

标签: erlang rebar

我有一个rebar依赖项,需要在编译应用程序之前运行“./configure”命令(它实际上生成了Makefile)。是否有可能告诉钢筋如何建立特定的依赖?

2 个答案:

答案 0 :(得分:2)

在Rebar邮件列表中讨论了这个问题之后,我最终创建了一个Rebar插件。在这里,如果有人需要做类似的事情。最后的确定'当前的Rebar插件API需要它。

-module(rebar_compiledeps_plugin).
-export([pre_compile/2]).

pre_compile(_, _) ->
    Cwd = rebar_utils:get_cwd(),
    case lists:suffix("my_dep", Cwd) of
        true ->
            Opts = [{cwd, Cwd}],
            case filelib:is_regular(filename:join([Cwd, "Makefile"])) of
                true ->
                    rebar_utils:sh("make [OPTIONS]", Opts);
                false ->
                    rebar_utils:sh("./configure && make [OPTIONS]", Opts)
            end;
        false ->
            ok
    end,
    ok.

答案 1 :(得分:1)

在rebar.config文件中,您可以定义预编译挂钩。它基本上是一个在实际编译之前运行的shell命令/脚本。

{pre_hooks, [
    {compile, "path/to/dep/configure"
]}