aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-02-26 18:22:17 -0800
committerRobert Schumacher <roschuma@microsoft.com>2018-02-26 18:22:17 -0800
commita2e6ffd86d435f08116e5e80b04796fe6898ebd0 (patch)
tree182ea446b99a10d593c5430084c3b0af583a8f8f
parente2980c8f91327614f24abec6704a5831d8074a8a (diff)
downloadvcpkg-a2e6ffd86d435f08116e5e80b04796fe6898ebd0.tar.gz
vcpkg-a2e6ffd86d435f08116e5e80b04796fe6898ebd0.zip
[vcpkg] Refactor VcpkgCmdArguments to not utilize global state
-rw-r--r--toolsrc/include/vcpkg/vcpkgcmdarguments.h2
-rw-r--r--toolsrc/src/vcpkg.cpp1
-rw-r--r--toolsrc/src/vcpkg/vcpkgcmdarguments.cpp5
3 files changed, 6 insertions, 2 deletions
diff --git a/toolsrc/include/vcpkg/vcpkgcmdarguments.h b/toolsrc/include/vcpkg/vcpkgcmdarguments.h
index d84be9c22..bce22b6f9 100644
--- a/toolsrc/include/vcpkg/vcpkgcmdarguments.h
+++ b/toolsrc/include/vcpkg/vcpkgcmdarguments.h
@@ -79,6 +79,8 @@ namespace vcpkg
Optional<bool> sendmetrics = nullopt;
Optional<bool> printmetrics = nullopt;
+ // feature flags
+ Optional<bool> featurepackages = nullopt;
std::string command;
std::vector<std::string> command_arguments;
diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp
index adb32c723..ffda7ede9 100644
--- a/toolsrc/src/vcpkg.cpp
+++ b/toolsrc/src/vcpkg.cpp
@@ -265,6 +265,7 @@ int main(const int argc, const char* const* const argv)
const VcpkgCmdArguments args = VcpkgCmdArguments::create_from_command_line(argc, argv);
+ if (const auto p = args.featurepackages.get()) GlobalState::feature_packages = *p;
if (const auto p = args.printmetrics.get()) Metrics::g_metrics.lock()->set_print_metrics(*p);
if (const auto p = args.sendmetrics.get()) Metrics::g_metrics.lock()->set_send_metrics(*p);
if (const auto p = args.debug.get()) GlobalState::debugging = *p;
diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
index 84ad17fe3..18acf8e12 100644
--- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
+++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
@@ -126,12 +126,13 @@ namespace vcpkg
}
if (arg == "--featurepackages")
{
- GlobalState::feature_packages = true;
+ parse_switch(true, "featurepackages", args.featurepackages);
continue;
}
if (arg == "--no-featurepackages")
{
- GlobalState::feature_packages = false;
+ parse_switch(false, "featurepackages", args.featurepackages);
+ continue;
continue;
}