<div dir="ltr">Hi devs,<div><br></div><div>We&#39;ve decided on Thursday this week for reworking the structure of modules and CMake support.</div><div><br></div><div>Paul, Joe, Eric, Pascal and I plan to contribute, but others are most welcome! We&#39;ll use my zoom room to collaborate</div><div><br></div><div>Topic: GROMACS modularization chatroom<br>Time: Nov 19, 2020 09:00 AM Stockholm<br><a href="https://uu-se.zoom.us/j/63437045380">https://uu-se.zoom.us/j/63437045380</a><br></div><div>Contact one of us for the passcode!</div><div><br></div><div>As Pascal is in a later time zone, we&#39;ll focus on modules away from the modular simulator and leave those closest to his knowledge for him to follow our lead. Then hopefully we can do a final commit on Friday.</div><div><br>Mark is willing to take point on the GPU and test modules, as they have the hairiest problems to resolve. Anybody wanting to take charge of their favorite modules please speak up!</div><div><br></div><div>Mark<br><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 13 Nov 2020 at 09:00, Mark Abraham &lt;<a href="mailto:mark.j.abraham@gmail.com">mark.j.abraham@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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" target="_blank">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" target="_blank">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" target="_blank">https://docs.google.com/document/d/1L5Ur8HybxqfglKLdaKgYrc1_RMPFtNAM0qpnijUHsb0/edit?usp=sharing</a></div><div><br></div><div>Mark</div><div></div></div></div>
</blockquote></div>