Пользовательские команды для компиляции зависимостей с арматурой - PullRequest
2 голосов
/ 11 августа 2011

У меня есть зависимость от арматуры, для которой необходимо выполнить команду «./configure», прежде чем приложение может быть скомпилировано (оно фактически генерирует Makefile). Можно ли сказать арматуре, как построить конкретную зависимость?

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

После обсуждения этой проблемы в списке рассылки Rebar я в итоге создал плагин Rebar. Вот, если кому-то нужно сделать что-то подобное. Последнее «ОК» требуется для текущего API плагинов Rebar.

-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 голос
/ 12 августа 2011

В вашем файле rebar.config вы можете определить хук предварительной компиляции Это в основном команда / скрипт оболочки, которая выполняется перед фактической компиляцией.

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