I am facing a similar issue, and to be honest, i just experience modules as a complete mess. The design principles do not simplify anything for the programmer, on the contrary, it completely overcomplicates things. I really wonder if the "advantages" of modules out-phase with the additional complexities. The problem of include file sequence order is now relayed to cmake, which gives you weird errors when there are cyclic dependencies. It is such a mess ...