3

アプリケーションをコンパイルする前に "./configure" コマンドを実行する必要がある rebar 依存関係があります (実際には Makefile を生成します)。特定の依存関係を構築する方法を rebar に伝えることは可能ですか?

4

2 に答える 2

4

Rebar メーリング リストでこの問題について議論した後、Rebar プラグインを作成することになりました。誰かが同様のことをする必要がある場合に備えて、ここにあります。現在の Rebar プラグイン API では、最後の「ok」が必要です。

-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.
于 2011-08-15T08:45:19.960 に答える
1

rebar.config ファイルで、プリコンパイル フックを定義できます。これは基本的に、実際のコンパイルの前に実行されるシェル コマンド/スクリプトです。

{pre_hooks, [
    {compile, "path/to/dep/configure"
]}
于 2011-08-11T22:32:21.207 に答える