This change improves dependency management by explicitly specifying library linkage visibility in CMake targets. Previously, some ScyllaDB targets used `target_link_libraries()` without `PUBLIC` or `PRIVATE` keywords, which resulted in transitive library dependencies by default. This unintentionally exposed non-public dependencies to downstream targets. Changes: - Always use explicit `PRIVATE` or `PUBLIC` keywords with `target_link_libraries()` - Tighten build dependency tree - Enforce a more modular linkage model See: [CMake documentation on library dependencies](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) Signed-off-by: Kefu Chai <kefu.chai@scylladb.com> Closes scylladb/scylladb#21686