<div dir="ltr"><div>Hi devs!</div><div><br></div><div>Some module reorganization is in order so we can do a better job of a few things:</div><div>* expressing the differences between installed, module-interface, and module-internal headers through filesystem location</div><div>* using per-module CMake targets for better control of things like compilation flags</div><div>* avoiding test binaries depending on all of libgromacs</div><div>* fewer custom CMake functions for managing all the above</div><div><br></div><div>Please consider whether you can contribute to the effort, and fill out the poll at <a href="https://doodle.com/poll/56b26yepmxrhe6ny">https://doodle.com/poll/56b26yepmxrhe6ny</a> </div><div></div><div><br></div><div>The goal for the day is to remove `src/` from all INCLUDE_DIRS by reorganizing the module-interface headers and CMakeLists.txt files for all modules.</div><div><br></div><div>Moving forward, in order for `moduleB` sources to `#include &quot;gromacs/moduleA/header.h&quot;, the CMakeLists.txt for `moduleB` will need a `target_link_libraries(moduleB PRIVATE moduleA)` (or `target_link_libraries(moduleB PUBLIC moduleA)`, if `moduleB` needs to convey transitive dependency on `moduleA` to moduleC that depends on moduleB.<br></div><div><br></div><div><div>Some preliminary discussion can be found at <a href="https://gitlab.com/gromacs/gromacs/-/issues/3288">https://gitlab.com/gromacs/gromacs/-/issues/3288</a> and we have a working document at <a href="https://docs.google.com/document/d/1L5Ur8HybxqfglKLdaKgYrc1_RMPFtNAM0qpnijUHsb0/edit?usp=sharing">https://docs.google.com/document/d/1L5Ur8HybxqfglKLdaKgYrc1_RMPFtNAM0qpnijUHsb0/edit?usp=sharing</a></div><div><br></div><div>Mark</div><div></div></div></div>