I think it could make sense to make the use of filesystem functions optional.
In our case we don't use them, but it causes a few build errors on different systems.
E.g., we can't support older macOS clang versions and also the gcc on Ubuntu 18.04 failed to
properly detect whether we have the experimental/filesystem or filesystem header.
BTW, for us, we got it working by adding these two small lines as a patch to Database.h
https://github.com/OpenMS/OpenMS/pull/6498/files
but maybe the use of filesystem is something that could also be configured through cmake?