aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/snippets
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2023-08-15 13:06:45 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-08-18 07:57:32 -0400
commit5a827616b50c1d8dcf6a4d96142167dc91e85a1f (patch)
tree21f642cfed1993064a0f51b0e9535ff3fcc82e6d /docs/markdown/snippets
parent946a3561c2f45b2e522f695a08516333cf7ec9d4 (diff)
downloadmeson-5a827616b50c1d8dcf6a4d96142167dc91e85a1f.zip
meson-5a827616b50c1d8dcf6a4d96142167dc91e85a1f.tar.gz
meson-5a827616b50c1d8dcf6a4d96142167dc91e85a1f.tar.bz2
ninja backend: fix the automatic restat of outputs when reconfiguring
The most notable problem this causes is that when running `meson setup --reconfigure` the build.ninja file is erroneously seen as out of date, so ninja immediately tries to regenerate it again as it didn't see the file get updated. There are two problems. The first problem is that we looked for the wrong file. Ninja creates a few internal files, and one of them is the one we care about: `.ninja_log`, which contains stat'ed timestamps for build outputs to aid in checking when things are out of date. But the thing we actually checked for is `.ninja_deps`, a file that contains a compressed database of depfile outputs. If the latter exists, then the former surely exists too. Checking for the wrong file meant that we would restat outputs, but only when some build edges were previously built that had depfile outputs. The second problem is that we checked for this in os.getcwd() instead of the configured build directory. This very easily fails to be correct, except when reconfigure is triggered directly by ninja itself, in which case we didn't need the restat to begin with.
Diffstat (limited to 'docs/markdown/snippets')
0 files changed, 0 insertions, 0 deletions