vs: Fix regen_checker by using the correct coredata mtime

After c01b183e5, the mtime of coredata.dat is always newer than all the
other build files, which made regen_checker think that they always had
to be regenerated. Now we set the mtime of the file to a value before
the build files are generated and that makes everything behave as it did
earlier.
pull/658/head
Nirbheek Chauhan 8 years ago
parent 4a92b78e6e
commit 018fa4b90f
  1. 3
      mesonbuild/environment.py
  2. 9
      mesonbuild/mesonmain.py

@ -171,9 +171,10 @@ class Environment():
def is_cross_build(self): def is_cross_build(self):
return self.cross_info is not None return self.cross_info is not None
def dump_coredata(self): def dump_coredata(self, mtime):
cdf = os.path.join(self.get_build_dir(), Environment.coredata_file) cdf = os.path.join(self.get_build_dir(), Environment.coredata_file)
coredata.save(self.coredata, cdf) coredata.save(self.coredata, cdf)
os.utime(cdf, times=(mtime, mtime))
def get_script_dir(self): def get_script_dir(self):
import mesonbuild.scripts import mesonbuild.scripts

@ -15,7 +15,7 @@
# limitations under the License. # limitations under the License.
import sys, stat, traceback, pickle, argparse import sys, stat, traceback, pickle, argparse
import datetime import time, datetime
import os.path import os.path
from . import environment, interpreter, mesonlib from . import environment, interpreter, mesonlib
from . import build from . import build
@ -164,6 +164,7 @@ itself as required.'''
mlog.log('Build machine cpu family:', mlog.bold(intr.builtin['build_machine'].cpu_family_method([], {}))) mlog.log('Build machine cpu family:', mlog.bold(intr.builtin['build_machine'].cpu_family_method([], {})))
mlog.log('Build machine cpu:', mlog.bold(intr.builtin['build_machine'].cpu_method([], {}))) mlog.log('Build machine cpu:', mlog.bold(intr.builtin['build_machine'].cpu_method([], {})))
intr.run() intr.run()
coredata_mtime = time.time()
g.generate(intr) g.generate(intr)
g.run_postconf_scripts() g.run_postconf_scripts()
dumpfile = os.path.join(env.get_scratch_dir(), 'build.dat') dumpfile = os.path.join(env.get_scratch_dir(), 'build.dat')
@ -173,7 +174,11 @@ itself as required.'''
# that pops up during generation, post-conf scripts, etc to cause us to # that pops up during generation, post-conf scripts, etc to cause us to
# incorrectly signal a successful meson run which will cause an error # incorrectly signal a successful meson run which will cause an error
# about an already-configured build directory when the user tries again. # about an already-configured build directory when the user tries again.
env.dump_coredata() #
# However, we set the mtime to an earlier value to ensure that doing an
# mtime comparison between the coredata dump and other build files
# shows the build files to be newer, not older.
env.dump_coredata(coredata_mtime)
def run_script_command(args): def run_script_command(args):
cmdname = args[0] cmdname = args[0]

Loading…
Cancel
Save