MetOffice / fab

Flexible build system for scientific software
https://metoffice.github.io/fab/
BSD 3-Clause "New" or "Revised" License
5 stars 2 forks source link

Improve marshalling of compiler information #273

Open MatthewHambley opened 1 year ago

MatthewHambley commented 1 year ago

The way compiler properties are managed is rather hap-hazard at the moment. For each compiler we need to know things such as the argument used to specify where module files are created. Plus any special arguments needed for that compiler.

At the moment I can't find a coherent and extensible way to manage these which makes them easy to obtain and also easy to extend with new compilers.

MatthewHambley commented 1 year ago

I immediately imagine two potential solutions.

An abstract interface which specifies a compiler with concrete implementations for each supported compiler.

A generic class representing a compiler which is multiply instantiated from a configuration file.