Switching from Global Includes to Target‑Scoped CMake: Prevent Include Leaks and Enforce Transitive Dependencies
Global include_directories() can silently leak paths into unrelated targets. Switching to target‑scoped usage requirements (target_include_directories, target_compile_definitions, target_link_libraries) keeps builds clean, enforces transitive dependencies, and mirrors find_package behavior.