summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-09-07 14:21:25 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-09-07 14:21:25 +0800
commitfb18453b184e16be703e543847b233a614fb39de (patch)
tree7283ed02bb879d38d290700685d8b56a2fd01c5e
parent4f246978f8c776d9e9738c41f4430e2b94df8642 (diff)
downloadmrust-fb18453b184e16be703e543847b233a614fb39de.tar.gz
minicargo - return non-zero when build fails
-rw-r--r--tools/minicargo/build.cpp6
-rw-r--r--tools/minicargo/build.h2
-rw-r--r--tools/minicargo/main.cpp10
3 files changed, 13 insertions, 5 deletions
diff --git a/tools/minicargo/build.cpp b/tools/minicargo/build.cpp
index 144262c2..665f567e 100644
--- a/tools/minicargo/build.cpp
+++ b/tools/minicargo/build.cpp
@@ -202,7 +202,7 @@ struct Timestamp
}
};
-void MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_path)
+bool MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_path)
{
BuildList list;
@@ -221,12 +221,12 @@ void MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_p
{
if( ! builder.build_library(p) )
{
- return;
+ return false;
}
}
// TODO: If the manifest doesn't have a library, build the binary
- builder.build_library(manifest);
+ return builder.build_library(manifest);
}
void BuildList::add_dependencies(const PackageManifest& p, unsigned level, bool include_build)
diff --git a/tools/minicargo/build.h b/tools/minicargo/build.h
index 0e61b72f..45ce1679 100644
--- a/tools/minicargo/build.h
+++ b/tools/minicargo/build.h
@@ -28,4 +28,4 @@ private:
Timestamp get_timestamp(const ::helpers::path& path) const;
};
-extern void MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_path);
+extern bool MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_path);
diff --git a/tools/minicargo/main.cpp b/tools/minicargo/main.cpp
index a00e3192..04fe4fcf 100644
--- a/tools/minicargo/main.cpp
+++ b/tools/minicargo/main.cpp
@@ -56,7 +56,15 @@ int main(int argc, const char* argv[])
m.load_dependencies(repo, !bs_override_dir.is_valid());
// 3. Build dependency tree and build program.
- MiniCargo_Build(m, bs_override_dir );
+ if( !MiniCargo_Build(m, bs_override_dir ) )
+ {
+ ::std::cerr << "BUILD FAILED" << ::std::endl;
+#if _WIN32
+ ::std::cout << "Press enter to exit..." << ::std::endl;
+ ::std::cin.get();
+#endif
+ return 1;
+ }
}
catch(const ::std::exception& e)
{