pkg-config can not resolve dependencies
What version of protobuf and what language are you using? 33.0 Language: C++
What operating system (Linux, Windows, ...) and version? Linux (Ubunut)
What runtime / compiler are you using (e.g., python version or gcc version) clang 21
What did you do?
- build from source using CMake and install to any DIR
- set PKG_CONFIG_PATH to the DIR/lib/pkgconfig
- execute
pkg-config protobuf --cflagsorpkgconf protobuf --cflags - Additional step is to execute
pkgconf protobuf --digraph
What did you expect to see The output should be there within seconds The dependencies graphs should have a sane size
What did you see instead? pkg-config/pkgconf got stuck for minutes (I've been waiting for around 15) The graph is insanely large (>2 millions nodes)
I'm honestly not an expert with any of pkg-config or pkgconf, but to me it looks like some kind of cyclic dependencies somewhere in CMake files
Solved by using the latest pkgconf While it works, it still looks like some kind of bug in deps ( a lot of repeated flags)
./installed/bin/pkgconf protobuf --cflags
-I/usr/local/include -DPROTOBUF_USE_DLLS -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -Wno-implicit-float-conversion -Wno-implicit-int-float-conversion -Wno-unknown-warning-option -Wno-unused-command-line-argument -DNOMINMAX
This may be the result of cyclic dep in our cmake build files. We will investigate that separately. We will accept contributions in the meantime.