The current way of using add_subdirectory means that variables are scoped within that CMakeLists.txt scope. That makes life so hard to pass variables to different CMakeLists.txt. Why do care about passing variables around? It is because it would make life way easier for my work in #351 in which I could inject include_dir, libraries, etc from libraries and get it consumed across server/client and other components just like how ioq3 does upstream. If the team does not object to this proposal, I would like to have a go at it