Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could you plz add another bazel example with http_archive? #330

Open
shixiong-jiang opened this issue Sep 19, 2024 · 1 comment
Open

Could you plz add another bazel example with http_archive? #330

shixiong-jiang opened this issue Sep 19, 2024 · 1 comment
Assignees
Labels

Comments

@shixiong-jiang
Copy link

Describe the bug

https://github.com/PJK/libcbor/blob/master/examples/bazel/WORKSPACE compiled,
However it failed to compile after replacing new_local_repository by http_archive.

To Reproduce

In https://github.com/PJK/libcbor/blob/master/examples/bazel/WORKSPACE, I replaced new_local_repository

new_local_repository(
    name = "libcbor",
    build_file = "//third_party:libcbor.BUILD",
    path = "../../src",
)

by http_archive. (As a user, we need to use http_archive in the bazel)

http_archive(
    name = "libcbor",
    build_file = "//:libcbor.BUILD",
    sha256 = "c83fc218414c5f3a2114e024255413521ddb40523f148c81d25a49c713d316dd",
    strip_prefix = "libcbor-0.11.0",
    urls = ["https://github.com/PJK/libcbor/archive/refs/tags/v0.11.0.zip"],
)

where, libcbor.BUILD is as same as https://github.com/PJK/libcbor/blob/master/examples/bazel/third_party/libcbor.BUILD
(I only updated the deps path + some typos in the srcs and hdrs)

cc_library(
    name = "cbor",
    srcs = glob([
        "src/**/*.c",
    ]),
    hdrs = glob([
        "src/**/*.h",
    ]),
    includes = [
        "src",
        "src/cbor",
        "src/cbor/internal",
    ],
    visibility = ["//visibility:public"],
    deps = [
        "@libcbor//examples/bazel/third_party/libcbor:config",
    ],
)

Then

  1. bazel build :hello work

  2. bazel build :tests fail

bazel build :tests 
INFO: Analyzed target //src:tests (0 packages loaded, 0 targets configured).
ERROR: /tmp/bar/libcbor/examples/bazel/src/BUILD:20:8: Compiling src/hello_test.cc failed: (Exit 1): gcc failed: error executing CppCompile command (from target //src:tests) /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++14' -MD -MF ... (remaining 60 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
In file included from external/googletest~/googletest/include/gtest/gtest-message.h:57,
                 from external/googletest~/googletest/include/gtest/gtest-assertion-result.h:46,
                 from external/googletest~/googletest/include/gtest/gtest.h:63,
                 from src/hello_test.cc:3:
external/googletest~/googletest/include/gtest/internal/gtest-port.h: In function 'int testing::internal::posix::StrCaseCmp(const char*, const char*)':
external/googletest~/googletest/include/gtest/internal/gtest-port.h:2107:10: error: 'strcasecmp' was not declared in this scope; did you mean 'StrCaseCmp'?
 2107 |   return strcasecmp(s1, s2);
      |          ^~~~~~~~~~
      |          StrCaseCmp
Target //src:tests failed to build

Expected behavior
bazel build: test succeed.
Could you plz provide an bazel example with http_archive?

Thank you so much.

Environment
libcbor version and build configuration flags (or source package version if using a package manager).

@shixiong-jiang
Copy link
Author

I found out the problem is the

    includes = [
        "src",
        "src/cbor",
        "src/cbor/internal",
    ],

in the https://github.com/PJK/libcbor/blob/master/examples/bazel/third_party/libcbor.BUILD

There is a strings.h file under the src/cbor/strings.h too. It overwrites the c++'s default strings.h

How to fix?

    includes = [
        "src",
    ],

This fix the bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants