diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-02-26 21:50:22 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-02-26 21:50:22 +0200 |
commit | af53c2bc3b13ba8eb7f9e8f5c3990b966c792e5d (patch) | |
tree | d271712eba08c20e060d67c2118575277cbd151e /mesonbuild/scripts | |
parent | ea60a22cd5a2613652942e48e143d7a3da68bbc0 (diff) | |
parent | 40a7287a59304abe64984c697e764640e06a4599 (diff) | |
download | meson-af53c2bc3b13ba8eb7f9e8f5c3990b966c792e5d.zip meson-af53c2bc3b13ba8eb7f9e8f5c3990b966c792e5d.tar.gz meson-af53c2bc3b13ba8eb7f9e8f5c3990b966c792e5d.tar.bz2 |
Merge pull request #419 from nioncode/fixVs2010Regen
Fix vs2010 regen
Diffstat (limited to 'mesonbuild/scripts')
-rw-r--r-- | mesonbuild/scripts/regen_checker.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/mesonbuild/scripts/regen_checker.py b/mesonbuild/scripts/regen_checker.py index a5e5fab..2e974d8 100644 --- a/mesonbuild/scripts/regen_checker.py +++ b/mesonbuild/scripts/regen_checker.py @@ -19,13 +19,18 @@ import pickle, subprocess # This could also be used for XCode. -def need_regen(regeninfo): - sln_time = os.stat(os.path.join(regeninfo.build_dir, regeninfo.solutionfile)).st_mtime +def need_regen(regeninfo, regen_timestamp): for i in regeninfo.depfiles: curfile = os.path.join(regeninfo.build_dir, i) curtime = os.stat(curfile).st_mtime - if curtime > sln_time: + if curtime > regen_timestamp: return True + # The timestamp file gets automatically deleted by MSBuild during a 'Clean' build. + # We must make sure to recreate it, even if we do not regenerate the solution. + # Otherwise, Visual Studio will always consider the REGEN project out of date. + print("Everything is up-to-date, regeneration of build files is not needed.") + from mesonbuild.backend.vs2010backend import Vs2010Backend + Vs2010Backend.touch_regen_timestamp(regeninfo.build_dir) return False def regen(regeninfo): @@ -41,8 +46,11 @@ def regen(regeninfo): subprocess.check_call(cmd) def run(args): - regeninfo = pickle.load(open(os.path.join(args[0], 'regeninfo.dump'), 'rb')) - if need_regen(regeninfo): + private_dir = args[0] + dumpfile = os.path.join(private_dir, 'regeninfo.dump') + regeninfo = pickle.load(open(dumpfile, 'rb')) + regen_timestamp = os.stat(dumpfile).st_mtime + if need_regen(regeninfo, regen_timestamp): regen(regeninfo) sys.exit(0) |