aboutsummaryrefslogtreecommitdiff
path: root/environment.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-24 22:44:01 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-24 22:44:01 +0200
commite7a2121bdc446c53648d62d3a0e9b186fab0ee1f (patch)
treeff03ee902b0346d2962f1f6dce5589c862db066b /environment.py
parent7bf35b75faf79134b60067012ad2c090a18eb791 (diff)
downloadmeson-e7a2121bdc446c53648d62d3a0e9b186fab0ee1f.zip
meson-e7a2121bdc446c53648d62d3a0e9b186fab0ee1f.tar.gz
meson-e7a2121bdc446c53648d62d3a0e9b186fab0ee1f.tar.bz2
Persist core data to disk.
Diffstat (limited to 'environment.py')
-rwxr-xr-xenvironment.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/environment.py b/environment.py
index 8140e89..84d08ae 100755
--- a/environment.py
+++ b/environment.py
@@ -227,16 +227,23 @@ def find_coverage_tools():
header_suffixes = ['h', 'hh', 'hpp', 'hxx', 'H']
class Environment():
+ private_dir = 'meson-private'
+ coredata_file = os.path.join(private_dir, 'coredata.dat')
+
def __init__(self, source_dir, build_dir, main_script_file, options):
assert(main_script_file[0] == '/')
assert(not os.path.islink(main_script_file))
self.source_dir = source_dir
self.build_dir = build_dir
self.meson_script_file = main_script_file
- self.scratch_dir = os.path.join(build_dir, 'meson-private')
+ self.scratch_dir = os.path.join(build_dir, Environment.private_dir)
os.makedirs(self.scratch_dir, exist_ok=True)
- self.old_coredata = coredata.CoreData(options) # FIXME: read from disk
+ try:
+ cdf = os.path.join(self.get_build_dir(), Environment.coredata_file)
+ self.old_coredata = coredata.load(cdf)
+ except IOError:
+ self.old_coredata = coredata.CoreData(options)
self.new_coredata = coredata.CoreData(self.old_coredata)
self.default_c = ['cc']
@@ -250,6 +257,10 @@ class Environment():
self.static_lib_prefix = 'lib'
self.object_suffix = 'o'
+ def generating_finished(self):
+ cdf = os.path.join(self.get_build_dir(), Environment.coredata_file)
+ coredata.save(self.new_coredata, cdf)
+
def get_script_dir(self):
return os.path.dirname(self.meson_script_file)