abseil / abseil-cpp

Abseil Common Libraries (C++)
https://abseil.io
Apache License 2.0
14.69k stars 2.57k forks source link

[Bug]: container test_allocator should be skipped if testing is disabled #1717

Open here-abarany opened 1 month ago

here-abarany commented 1 month ago

Describe the issue

If testing is disabled, I would expect all dependencies on googletest to be removed. However, the internal test_allocator target inside of the container directory still gets created, which expects the GTest::gmock target to exist. As a result, if googletest isn't available, a CMake error will be raised due to the gmock target not existing.

Steps to reproduce the problem

Run CMake with testing disabled on a system without googletest installed.

What version of Abseil are you using?

20240116 (as part of protobuf)

What operating system and version are you using?

Windows 10

What compiler and version are you using?

Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33812 for x86

What build system are you using?

cmake version 3.30.0

Additional context

No response

aiusepsi commented 1 month ago

I'm seeing the same thing. I suspect that a change in a recent version of cmake (possibly 3.30.0) as identical code built with earlier versions of CMake isn't failing.

It seems that the problem is fixed in the main branch, c.f. these issues: https://github.com/open-telemetry/opentelemetry-cpp/issues/2998 https://github.com/abseil/abseil-cpp/pull/1536

Alternatively, commenting out line 215 "GTest::gmock" in absl/container/CMakeLists.txt works.

jschueller commented 1 month ago

see #1536

k0T0z commented 1 month ago

Alternatively, commenting out line 215 "GTest::gmock" in absl/container/CMakeLists.txt works.

Thanks