The intention is to batch all container invocations instead of
instanciating one for every rule that needs to run within a container.
This keeps track of build dependencies using a .any-build timestamp file
and define a CONTAINER=1 variable when make is running within the
container.
When running within the container, only "configure" and "build" targets
are active, all the other targets are no-op. When make is run outside
of the container, it's the opposite, except for the "build" targets
which all depend on this .any-build timestamp file to trigger the
container build execution.
The targets dependency graph is still complete, so "source" targets
will always all be executed before the container, and configure steps
will optionally run if the generated files are missing. When source
change is detected, only the build rules are executed again, trusting
each build system to decide if configure should be run again or not.
* Make it more flexible on the image name,
* Remove the image type support, only Docker is likely to be supported.
* Add target runtime name (scout / soldier), independent of the image.
No Man's Sky is giving us vulkan handle in that handle. It looks like
the depth texture is not used by openvr, putting anything to this handle
does not trigger any fault or Vulkan validation error.
The forms with or without a trailing slash are interchangeable via https,
but the form with a trailing slash doesn't work if you have git configured
to always access Github repositories via ssh, using something like:
git config --global url."git+ssh://git@github.com/".insteadOf "https://github.com/"
Signed-off-by: Simon McVittie <smcv@collabora.com>
A user on GitHub was using the GitHub Releases tarballs, which won't
work as our build system depends on it being a Git repo. Try to guide
users to check out with Git instead.
Basically the only issue left out is that Python3 is much more picky
on file encoding, and some Valve headers are not UTF-8. Ignoring
errors is enough to get everything fixed.
This way the generated file is more deterministic, and hopefully less
irrelevant diff is produced (for example when switching from Python 2
to Python 3, or when adding more callbacks that cause rehashing the
dictionary).