X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcache.cpp;h=d4a4ebc3857f25321fbb27d756d77aa02446d98b;hb=373e9bb43c24d38316c5bb0393f4a369563319d3;hp=70f4120d853d9dfb80073c9204e6e448d7089db4;hpb=7bf0b5d013b88b0408031e2d6594357e71c8138f;p=builder.git diff --git a/source/cache.cpp b/source/cache.cpp index 70f4120..d4a4ebc 100644 --- a/source/cache.cpp +++ b/source/cache.cpp @@ -1,5 +1,7 @@ #include +#include #include +#include #include #include #include @@ -76,12 +78,14 @@ void Cache::append_value(const Target *tgt, const string &k, const string &v) i = data.insert(DataMap::value_type(key, ValueList())).first; i->second.push_back(v); changed = true; + package.get_builder().get_logger().log("cache", format("Updated key %s %s+ %s", tgt->get_name(), k, v)); } void Cache::set_values(const Target *tgt, const string &k, const ValueList &v) { data[Key(tgt->get_name(), k)] = v; changed = true; + package.get_builder().get_logger().log("cache", format("Updated key %s %s: %s", tgt->get_name(), k, join(v.begin(), v.end()))); } const string &Cache::get_value(const Target *tgt, const string &k) @@ -119,6 +123,7 @@ void Cache::load() ValueList &values = data[key]; for(unsigned count = read_count(in); count; --count) values.push_back(read_string(in)); + package.get_builder().get_logger().log("cache", format("Loaded key %s %s: %s", key.first, key.second, join(values.begin(), values.end()))); } mtime = st.get_modify_time(); @@ -130,6 +135,9 @@ void Cache::save() const if(data.empty() || !changed) return; + FS::Path dir = FS::dirname(filename); + if(!FS::exists(dir)) + FS::mkpath(dir, 0755); package.get_builder().get_logger().log("files", format("Writing %s", filename)); IO::BufferedFile out(filename.str(), IO::M_WRITE);