general rules:filegroup , genquery , test_suite , alias , config_setting , genrule
genrule可以使用shell命令來執行操作。
該函數的定義中,可以調控的參數有
genrule(name, srcs, outs, cmd, compatible_with, deprecation, distribs, exec_compatible_with, executable, features, licenses, local, message, output_licenses, output_to_bindir, restricted_to, tags, testonly, toolchains, tools, visibility)。
srcs命令用來創建target配置;tools用來創建host配置;output產出配置(沒看明白這段話)
https://docs.bazel.build/versions/master/be/make-variables.html記錄了可以使用的一些變量
==================================================
bazel 版本 0.16.1
bazel默認配置項在workspace統計目錄下的.bazelrc中,該文件不是必須放在這個位置,可以使用--bazelrc=/path/to/bazelrc去指定位置。
bazel的--output_user_root=需要緊緊的挨着bazel的後邊,如果中間有參數,指定的output路徑可能會出錯,這個在官方文檔中沒有查看到相關的介紹,暫時自己記錄下吧
bazel是一個編譯代碼的軟件,由Google開源出來,同類產品如cmake等。
bazel的優勢有增量編譯速度快,支持remote方式,命令簡單易用,支持多種語言等。但是入門較慢,當熟悉基本的操作後就會感到事半功倍的效果。
bazel支持依賴遠端代碼庫,可以指定依賴GitHub上的代碼本地進行調用,但是由於國內的網絡問題,有的時候下載GitHub上代碼或者是國外網站的一些代碼的時候會超時(默認是500秒),對於這種問題可以先手動的將代碼下載到本地,然後自己上傳到自己本地的代碼庫中,或者是打成包,調整workspace的依賴路徑