summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2018-04-25 12:33:31 +0800
committerJohn Hodge <tpg@mutabah.net>2018-04-25 12:33:31 +0800
commit3b8d8f1a392a2cb5cad1d57d08ced693a0d197d8 (patch)
tree65b8a8646dd1ac532beaf9808be529595538852f
parentc1b43f71776fda5454bd84c2cc735a0509d44436 (diff)
downloadmrust-3b8d8f1a392a2cb5cad1d57d08ced693a0d197d8.tar.gz
minicargo - Re-run build script if output is missing
-rw-r--r--tools/minicargo/build.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/minicargo/build.cpp b/tools/minicargo/build.cpp
index c7c07256..392e6a64 100644
--- a/tools/minicargo/build.cpp
+++ b/tools/minicargo/build.cpp
@@ -803,7 +803,7 @@ bool Builder::build_target(const PackageManifest& manifest, const PackageTarget&
auto out_file = output_dir_abs / "build_" + manifest.name().c_str() + ".txt";
auto out_dir = output_dir_abs / "build_" + manifest.name().c_str();
-
+
bool run_build_script = false;
// TODO: Handle a pre-existing script containing `cargo:rerun-if-changed`
auto script_exe = this->build_build_script(manifest, is_for_host, &run_build_script);
@@ -813,7 +813,8 @@ bool Builder::build_target(const PackageManifest& manifest, const PackageTarget&
return ::helpers::path();
}
- if( run_build_script )
+ // If the script changed, OR the output file doesn't exist
+ if( run_build_script || Timestamp::for_file(out_file) == Timestamp::infinite_past() )
{
auto script_exe_abs = script_exe.to_absolute();