diff options
| author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-12-12 12:44:00 +0900 |
|---|---|---|
| committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-12-12 12:44:00 +0900 |
| commit | 5a5a7f67b1ea6434e5e81cecddba138ff870ff40 (patch) | |
| tree | 8c6e714bb74ae5e39648f480ec7fdcd629d1c5f1 /ninja.cc | |
| parent | b552df31a53738f72d273c1e6c43bf2e370c3597 (diff) | |
Force regen if ninja file is missing
For issue #39.
Diffstat (limited to 'ninja.cc')
| -rw-r--r-- | ninja.cc | 29 |
1 files changed, 20 insertions, 9 deletions
@@ -191,6 +191,14 @@ class NinjaGenerator { GenerateStamp(orig_args); } + static string GetNinjaFilename() { + return GetFilename("build%s.ninja"); + } + + static string GetShellScriptFilename() { + return GetFilename("ninja%s.sh"); + } + static string GetStampFilename() { return GetFilename(".kati_stamp%s"); } @@ -554,15 +562,7 @@ class NinjaGenerator { fprintf(fp_, "\n\n"); } - string GetNinjaFilename() const { - return GetFilename("build%s.ninja"); - } - - string GetShellScriptFilename() const { - return GetFilename("ninja%s.sh"); - } - - string GetEnvScriptFilename() const { + static string GetEnvScriptFilename() { return GetFilename("env%s.sh"); } @@ -808,6 +808,17 @@ bool NeedsRegen(double start_time, const string& orig_args) { } \ }) + if (!Exists(NinjaGenerator::GetNinjaFilename())) { + fprintf(stderr, "%s is missing, regenerating...\n", + NinjaGenerator::GetNinjaFilename().c_str()); + return true; + } + if (!Exists(NinjaGenerator::GetShellScriptFilename())) { + fprintf(stderr, "%s is missing, regenerating...\n", + NinjaGenerator::GetShellScriptFilename().c_str()); + return true; + } + const string& stamp_filename = NinjaGenerator::GetStampFilename(); FILE* fp = fopen(stamp_filename.c_str(), "rb+"); if (!fp) { |
