aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_build_external.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-02-10 17:00:46 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-02-15 18:06:06 -0800
commit2b9035063234f04fb68c3b4fefe8d3da7a5175a6 (patch)
tree13140f379847760858f124096c429a5a32600ef8 /toolsrc/src/commands_build_external.cpp
parent1ecf03e2b08c0ec3be62da4989730108c7c8de23 (diff)
downloadvcpkg-2b9035063234f04fb68c3b4fefe8d3da7a5175a6.tar.gz
vcpkg-2b9035063234f04fb68c3b4fefe8d3da7a5175a6.zip
Separate dependency check from build_package()
Diffstat (limited to 'toolsrc/src/commands_build_external.cpp')
-rw-r--r--toolsrc/src/commands_build_external.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/toolsrc/src/commands_build_external.cpp b/toolsrc/src/commands_build_external.cpp
index 8e9bf50fd..319e3c3d8 100644
--- a/toolsrc/src/commands_build_external.cpp
+++ b/toolsrc/src/commands_build_external.cpp
@@ -12,6 +12,8 @@ namespace vcpkg::Commands::BuildExternal
static const std::string example = Commands::Help::create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)");
args.check_exact_arg_count(2, example);
+ StatusParagraphs status_db = database_load_check(paths);
+
expected<package_spec> maybe_current_spec = package_spec::from_string(args.command_arguments[0], default_target_triplet);
if (auto spec = maybe_current_spec.get())
{
@@ -21,8 +23,10 @@ namespace vcpkg::Commands::BuildExternal
const expected<SourceParagraph> maybe_spgh = try_load_port(port_dir);
if (auto spgh = maybe_spgh.get())
{
- const Build::BuildResult result = Commands::Build::build_package(*spgh, *spec, paths, port_dir);
- if (result !=Build::BuildResult::SUCCESS)
+ const Build::DependencyStatus dependency_status = Build::check_dependencies(*spgh, *spec, status_db);
+ Checks::check_exit(dependency_status == Build::DependencyStatus::ALL_DEPENDENCIES_INSTALLED);
+ const Build::BuildResult result = Commands::Build::build_package(*spgh, *spec, paths, port_dir, dependency_status);
+ if (result != Build::BuildResult::SUCCESS)
{
exit(EXIT_FAILURE);
}