In commit "cmake, test: Improve locality of bitcoin_ipc_test library description" (866bbb98fd365962840ee99df0d9f7ad557cc025)
This change should be correct, but I'm confused about how it was working before. This change causes includes in generated files such build/src/ipc/capnp/common.capnp.proxy.h to be generated correctly relative to src/:
-#include <src/ipc/capnp/common.capnp.h> // IWYU pragma: keep
+#include <capnp/common.capnp.h> // IWYU pragma: keep
So that seems good. But I don't understand why the #include <src/...> lines were working previously? If i run make with VERBOSE=1 I see the top level build directory (not build/src) in the list of include directories passed to the compiler. But I don't see a target_include_directories call adding that directory anywhere, and I don't know why anything should be included relative to the top level project build directory, so maybe there is still another problem here?