A top-level CMakeList.txt is required
because CMake does not like importing from sibling directories.
Instead it's best practices to have CMake add the
related subdirectories, and then add the link dependencies
from the parent directory.
This is part of a larger effort to bring more structure to the C++ codebase https://linear.app/comm/issue/ENG-1310/export-nativecpp-projects-as-cmake-projects
The intent is to be able to reference the dependencies as packages, instead of just as GLOB'ing over certain directories; which is a major anti-pattern in CMake as it create a bunch of footguns such as finding multiple files with main() defined, or picking up unrelated code in generated folders.