-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I'm going to be writing the DEVELOPING in the upcoming bit, and it occurs to me that Epiworld, current, is not set up for how most people develop C++. I'm unsure as to how well this maps onto the type of person writing models for Epiworld, but it's worth considering how to make things easier for language servers (clangd, ccls, etc.) to work out of the box, since have become incredibly popular over the last five some-odd years.
Therefore, it's probably worth moving to a more structured repository format, and using a build-system for managing the build process like we do for epiworldR and epiworldPy. This would also make system-wide installation easier, although I'm not entirely sure how much utility there is in that.
This would require:
- Moving the build from Makefiles to CMake/Meson (or heavily overhauling the make files)
- Exporting
compile_commands.jsonautomatically to support LSPs (clangd, ccls, etc.) - Ensuring that headers can be parsed individually by LSPs without requiring strict include ordering (e.g., by adding minimal self-contained includes where needed, or by documenting the intended usage pattern clearly)
- Clean up the structure of the repository (see epiworldpy for an example, move code out of the root, move scripts into a scripts or tools directory, et cetera)
Thoughts @gvegayon? I'm not sure how much depends on the way the current Makefiles do things.