Do this by tracking CMAKE_CURRENT_{SOURCE,BINARY}_DIR variables.
This is achieved by injecting CMake code with CMAKE_PROJECT_INCLUDE
and overriding some builtin functions with a wrapper that adds
additional trace information.
The compilers module is rather large and confusing, with spaghetti
dependencies going every which way. I'm planning to start breaking out
the internal representations into a mixins submodule, for things that
shouldn't be required outside of the compilers module itself.
This instructs tools like pip that meson requires python 3.5 or greater,
so if one tries to install on an older version pip will fall back to an
older version of meson.
This won't fix 0.45 since it's already in the wild (unless someone wants
to delete and re-upload the version on pypi). But it should fix future
versions.
Retain the hand rolled version check, but update it to enforce our
actual requirements.