Lacking an 'uninstall' target can be a real show stopper for projects to even consider moving from autotools to meson. New users (potential contributors) are trying out software projects all the time and need ways to undo installation (just google for 'make uninstall' to get a glimpse).
Furthermore software development/debugging and packaging, working on package versioning, fixing installation locations, testing libraries, testing translations, etc can all involve needing 'uninstall' almost as often as installation.
So please make uninstall as easy as installation for software built with meson.
We do plan on having some sort of uninstallation support but it is trickier to do reliably. However Meson writes a list of all files it installs inside meson-logs dir. It is not complete because custom install scripts can do arbitrary file operations. But if it is enough for you, then writing a script that loads the file and deletes all files listed in it is simple.
What exactly is the criteria for 'reliably'? I think it should be really simple and 'dumb'. Store DESTDIR (but allow it to be overriden via the env) + a list of files and just remove them on uninstall.
I don't think it makes sense to try to be smart and check file sizes or checksums to ensure that we installed the file before removing it. For one, it breaks uninstall of files that have been modified by the program after installation (system-specific configuration, for instance).
SCons tracks all install files in the build DAG and so can uninstall no problem. CMake has no uninstall by default, it just writes a list of installation locations. There is a plugin providing an uninstall command for those (like me) who do not want to have to manually remove files or use an off-the-cuff shell script. To be honest: "no uninstall capability, no use of build framework".
Add simple uninstall target. Closes #753.