代码之家  ›  专栏  ›  技术社区  ›  Trevor Hickey

bazel fetch//…对生成文件和工作区文件不起任何作用

  •  0
  • Trevor Hickey  · 技术社区  · 6 年前

    我无法让bazel下载并构建外部依赖项。

    也许我遗漏了一些显而易见的东西,
    但是让我们 gtest 作为一个例子。
    在我的工作区的根我有一个 gtest.BUILD WORKSPACE 是的。

    它们被定义为:

    gtest.构建:

    cc_library(
        name = "main",
        srcs = glob(
            ["src/*.cc"],
            exclude = ["src/gtest-all.cc"]
        ),
        hdrs = glob([
            "include/**/*.h",
            "src/*.h"
        ]),
        copts = ["-Iexternal/gtest/include"],
        linkopts = ["-pthread"],
        visibility = ["//visibility:public"],
    )
    

    工作区:

    new_http_archive(
        name = "gtest",
        url = "https://github.com/google/googletest/archive/release-1.7.0.zip",
        build_file = "gtest.BUILD",
        strip_prefix = "googletest-release-1.7.0",
    )
    

    我试着用 GTEST公司 在我的其他代码中,但是外部依赖性不存在。
    当我跑的时候 bazel fetch //... 它什么也做不了。

    我正试图跟踪巴泽尔的文件 external dependencies 我是说,
    我不知道我遗漏了什么。有什么想法吗?

    我看了看里面 $(bazel info output_base)/external 我是说,
    但我看不到任何M构建的依赖项。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jin    6 年前

    可能你当前的工作区里什么都没有 //... 取决于任何目标 @gtest//... ,所以跑步 bazel fetch //... 不会告诉Bazel它需要下载 @gtest 是的。

    $ bazel fetch //...
    Extracting Bazel installation...
    Starting local Bazel server and connecting to it...
    ...........
    $
    

    如果你想逃跑 bazel fetch @gtest//... 它将直接按预期下载存档:

    $ bazel fetch @gtest//...
    INFO: SHA256 (https://github.com/google/googletest/archive/release-1.7.0.zip) = b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0
    Building: no action
    

    现在,如果添加一个依赖于 @gtest//:main 然后跑 火箭筒取货//… 再次下载 @GTEST公司 以下内容:

    $ bazel clean --expunge
    INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
    
    $ cat BUILD
    filegroup(
        name = "gtest",
        srcs = ["@gtest//:main"],
    )
    
    $ bazel fetch //...
    Starting local Bazel server and connecting to it...
    ..........
    INFO: SHA256 (https://github.com/google/googletest/archive/release-1.7.0.zip) = b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0
    Building: no action
    
    $ ls $(bazel info output_base)/external
    bazel_tools  @bazel_tools.marker  gtest  @gtest.marker  local_config_cc  @local_config_cc.marker
    
    推荐文章