diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-11-04 20:59:02 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-11-04 20:59:02 +0200 |
commit | 5be7c011bf1a30ac336a4eda006ab0a101fd3543 (patch) | |
tree | ef08d32d32fa14cfb71d73dcd9061e589fa64162 /regen_checker.py | |
parent | 19003e49d0c5aefd3a2a56f6b5ab48ab4c9d01e4 (diff) | |
download | meson-5be7c011bf1a30ac336a4eda006ab0a101fd3543.zip meson-5be7c011bf1a30ac336a4eda006ab0a101fd3543.tar.gz meson-5be7c011bf1a30ac336a4eda006ab0a101fd3543.tar.bz2 |
Regenerator script works, but is not run automatically yet.
Diffstat (limited to 'regen_checker.py')
-rw-r--r-- | regen_checker.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/regen_checker.py b/regen_checker.py index 13adc3f..a0fe028 100644 --- a/regen_checker.py +++ b/regen_checker.py @@ -14,11 +14,29 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - -print('I am a script that checks whether VS solution should be regenerated.') -print('Currently I do nothing.') +import sys, os +import pickle, subprocess # This could also be used for XCode. -sys.exit(0)
\ No newline at end of file +def need_regen(regeninfo): + sln_time = os.stat(os.path.join(regeninfo.build_dir, regeninfo.solutionfile)).st_mtime + for i in regeninfo.depfiles: + curfile = os.path.join(regeninfo.build_dir, i) + curtime = os.stat(curfile).st_mtime + if curtime > sln_time: + return True + return False + +def regen(regeninfo): + scriptdir = os.path.split(__file__)[0] + mesonscript = os.path.join(scriptdir, 'meson.py') + cmd = [sys.executable, mesonscript, regeninfo.build_dir, regeninfo.source_dir, + '--backend=vs2010', 'secret-handshake'] + subprocess.check_call(cmd) + +if __name__ == '__main__': + regeninfo = pickle.load(open(os.path.join(sys.argv[1], 'regeninfo.dump'), 'rb')) + if need_regen(regeninfo): + regen(regeninfo) + sys.exit(0) |