Skip to content

Commit 0de25e2

Browse files
Merge pull request #48 from Neko-Box-Coder/StaleFileFix
Fixing stale files not being detected properly
2 parents fa2b994 + 3439f36 commit 0de25e2

File tree

3 files changed

+144
-131
lines changed

3 files changed

+144
-131
lines changed

Include/runcpp2/runcpp2.hpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,17 @@ namespace runcpp2
2525

2626
void SetLogLevel(const std::string& logLevel);
2727

28-
PipelineResult CheckSourcesNeedUpdate( const std::string& scriptPath,
29-
const std::vector<Data::Profile>& profiles,
30-
const std::string& configPreferredProfile,
31-
const Data::ScriptInfo& scriptInfo,
32-
const std::unordered_map< CmdOptions,
33-
std::string>& currentOptions,
34-
bool& outNeedsUpdate);
28+
//NOTE: This should be run after running StartPipeline first
29+
PipelineResult
30+
CheckSourcesNeedUpdate( const std::string& scriptPath,
31+
const std::vector<Data::Profile>& profiles,
32+
const std::string& configPreferredProfile,
33+
const Data::ScriptInfo& scriptInfo,
34+
const std::unordered_map< CmdOptions,
35+
std::string>& currentOptions,
36+
const ghc::filesystem::file_time_type& prevFinalSourceWriteTime,
37+
const ghc::filesystem::file_time_type& prevFinalIncludeWriteTime,
38+
bool& outNeedsUpdate);
3539

3640
PipelineResult StartPipeline( const std::string& scriptPath,
3741
const std::vector<Data::Profile>& profiles,
@@ -41,6 +45,8 @@ namespace runcpp2
4145
const Data::ScriptInfo* lastScriptInfo,
4246
const std::string& buildOutputDir,
4347
Data::ScriptInfo& outScriptInfo,
48+
ghc::filesystem::file_time_type& outFinalSourceWriteTime,
49+
ghc::filesystem::file_time_type& outFinalIncludeWriteTime,
4450
int& returnStatus);
4551

4652
std::string PipelineResultToString(PipelineResult result);

Src/runcpp2/main.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,8 @@ int main(int argc, char* argv[])
424424
}
425425

426426
runcpp2::Data::ScriptInfo* lastParsedScriptInfo = nullptr;
427+
ghc::filesystem::file_time_type lastFinalSourceWriteTime;
428+
ghc::filesystem::file_time_type lastFinalIncludeWriteTime;
427429
bool needsRunning = true; //First run always needs running
428430

429431
while(true)
@@ -439,6 +441,8 @@ int main(int argc, char* argv[])
439441
*lastParsedScriptInfo :
440442
parsedScriptInfo,
441443
currentOptions,
444+
lastFinalSourceWriteTime,
445+
lastFinalIncludeWriteTime,
442446
needsUpdate) != runcpp2::PipelineResult::SUCCESS)
443447
{
444448
ssLOG_ERROR("Failed to check if sources need update");
@@ -477,6 +481,8 @@ int main(int argc, char* argv[])
477481
lastParsedScriptInfo,
478482
"",
479483
parsedScriptInfo,
484+
lastFinalSourceWriteTime,
485+
lastFinalIncludeWriteTime,
480486
result);
481487

482488
static_assert(static_cast<int>(runcpp2::PipelineResult::COUNT) == 13, "Update this");
@@ -518,6 +524,9 @@ int main(int argc, char* argv[])
518524
if(currentOptions.count(runcpp2::CmdOptions::BUILD) > 0)
519525
outputDir = ghc::filesystem::current_path().string();
520526

527+
ghc::filesystem::file_time_type finalSourceWriteTime;
528+
ghc::filesystem::file_time_type finalIncludeWriteTime;
529+
521530
if(runcpp2::StartPipeline( script,
522531
profiles,
523532
preferredProfile,
@@ -526,6 +535,8 @@ int main(int argc, char* argv[])
526535
nullptr,
527536
outputDir,
528537
parsedScriptInfo,
538+
finalSourceWriteTime,
539+
finalIncludeWriteTime,
529540
result) != runcpp2::PipelineResult::SUCCESS)
530541
{
531542
return -1;

0 commit comments

Comments
 (0)