aboutsummaryrefslogtreecommitdiff
path: root/regen_checker.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-11-04 20:59:02 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2015-11-04 20:59:02 +0200
commit5be7c011bf1a30ac336a4eda006ab0a101fd3543 (patch)
treeef08d32d32fa14cfb71d73dcd9061e589fa64162 /regen_checker.py
parent19003e49d0c5aefd3a2a56f6b5ab48ab4c9d01e4 (diff)
downloadmeson-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.py28
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)