2011-08-11 59 views

回答

2

在討論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. 
1

在您的rebar.config文件中,您可以定義一個預編譯鉤子。它基本上是在實際編譯之前運行的shell命令/腳本。

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

這是行不通的,因爲它是在編譯應用程序之前執行的,但是在編譯依賴關係之後。我需要它運行之前編譯的其中一個依賴關係。 –

+0

我想我在設置上有點困惑。依賴本身是否使用螺紋鋼?我的假設是:依賴關係不使用螺紋鋼,不需要任何其他依賴。 –