aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-28 17:27:07 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-04-30 03:36:55 -0700
commitcbc52bc6a4f92ac4c5379912b09adb37a6ea1918 (patch)
treeebd28c77d4268f6ac8fc1c0906ce2e279e530e63 /toolsrc/src
parent5419aebcfed8cf044f723e07dd785b839fd6bb5b (diff)
downloadvcpkg-cbc52bc6a4f92ac4c5379912b09adb37a6ea1918.tar.gz
vcpkg-cbc52bc6a4f92ac4c5379912b09adb37a6ea1918.zip
[vcpkg] Remove OptBool in favor of Optional<bool>
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/OptBool.cpp31
-rw-r--r--toolsrc/src/PostBuildLint.cpp20
-rw-r--r--toolsrc/src/PostBuildLint_BuildInfo.cpp10
-rw-r--r--toolsrc/src/VcpkgCmdArguments.cpp14
-rw-r--r--toolsrc/src/tests_arguments.cpp12
-rw-r--r--toolsrc/src/vcpkg.cpp10
6 files changed, 31 insertions, 66 deletions
diff --git a/toolsrc/src/OptBool.cpp b/toolsrc/src/OptBool.cpp
deleted file mode 100644
index 78069df6a..000000000
--- a/toolsrc/src/OptBool.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "pch.h"
-
-#include "OptBool.h"
-#include "vcpkg_Checks.h"
-
-namespace vcpkg
-{
- static const std::string UNSPECIFIED_NAME = "unspecified";
- static const std::string ENABLED_NAME = "enabled";
- static const std::string DISABLED_NAME = "disabled";
-
- OptBool OptBool::parse(const std::string& s)
- {
- if (s == UNSPECIFIED_NAME)
- {
- return OptBoolC::UNSPECIFIED;
- }
-
- if (s == ENABLED_NAME)
- {
- return OptBoolC::ENABLED;
- }
-
- if (s == DISABLED_NAME)
- {
- return OptBoolC::DISABLED;
- }
-
- Checks::exit_with_message(VCPKG_LINE_INFO, "Could not convert string [%s] to OptBool", s);
- }
-}
diff --git a/toolsrc/src/PostBuildLint.cpp b/toolsrc/src/PostBuildLint.cpp
index 5d7d7b441..7df74cf31 100644
--- a/toolsrc/src/PostBuildLint.cpp
+++ b/toolsrc/src/PostBuildLint.cpp
@@ -59,19 +59,16 @@ namespace vcpkg::PostBuildLint
}
template<class T>
- static bool contains_and_enabled(const std::map<T, OptBool> map, const T& key)
+ static bool contains_and_enabled(const std::map<T, bool> map, const T& key)
{
auto it = map.find(key);
- if (it != map.cend() && it->second == OptBoolC::ENABLED)
- {
- return true;
- }
+ if (it != map.cend()) return it->second;
return false;
}
static LintStatus check_for_files_in_include_directory(const Files::Filesystem& fs,
- const std::map<BuildPolicies, OptBool>& policies,
+ const std::map<BuildPolicies, bool>& policies,
const fs::path& package_dir)
{
if (contains_and_enabled(policies, BuildPoliciesC::EMPTY_INCLUDE_FOLDER))
@@ -495,14 +492,13 @@ namespace vcpkg::PostBuildLint
return LintStatus::ERROR_DETECTED;
}
- static LintStatus check_lib_files_are_available_if_dlls_are_available(
- const std::map<BuildPolicies, OptBool>& policies,
- const size_t lib_count,
- const size_t dll_count,
- const fs::path& lib_dir)
+ static LintStatus check_lib_files_are_available_if_dlls_are_available(const std::map<BuildPolicies, bool>& policies,
+ const size_t lib_count,
+ const size_t dll_count,
+ const fs::path& lib_dir)
{
auto it = policies.find(BuildPoliciesC::DLLS_WITHOUT_LIBS);
- if (it != policies.cend() && it->second == OptBoolC::ENABLED)
+ if (it != policies.cend() && it->second)
{
return LintStatus::SUCCESS;
}
diff --git a/toolsrc/src/PostBuildLint_BuildInfo.cpp b/toolsrc/src/PostBuildLint_BuildInfo.cpp
index 65072b8ed..22d312398 100644
--- a/toolsrc/src/PostBuildLint_BuildInfo.cpp
+++ b/toolsrc/src/PostBuildLint_BuildInfo.cpp
@@ -1,9 +1,9 @@
#include "pch.h"
-#include "OptBool.h"
#include "Paragraphs.h"
#include "PostBuildLint_BuildInfo.h"
#include "vcpkg_Checks.h"
+#include "vcpkg_optional.h"
#include "vcpkglib_helpers.h"
namespace vcpkg::PostBuildLint
@@ -39,8 +39,12 @@ namespace vcpkg::PostBuildLint
const BuildPolicies policy = BuildPolicies::parse(p.first);
Checks::check_exit(
VCPKG_LINE_INFO, policy != BuildPoliciesC::NULLVALUE, "Unknown policy found: %s", p.first);
- const OptBool status = OptBool::parse(p.second);
- build_info.policies.emplace(policy, status);
+ if (p.second == "enabled")
+ build_info.policies.emplace(policy, true);
+ else if (p.second == "disabled")
+ build_info.policies.emplace(policy, false);
+ else
+ Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown setting for policy '%s': %s", p.first, p.second);
}
return build_info;
diff --git a/toolsrc/src/VcpkgCmdArguments.cpp b/toolsrc/src/VcpkgCmdArguments.cpp
index d12f4f78c..25f4c5582 100644
--- a/toolsrc/src/VcpkgCmdArguments.cpp
+++ b/toolsrc/src/VcpkgCmdArguments.cpp
@@ -31,9 +31,9 @@ namespace vcpkg
option_field = std::make_unique<std::string>(*arg_begin);
}
- static void parse_switch(OptBool new_setting, const std::string& option_name, OptBool& option_field)
+ static void parse_switch(bool new_setting, const std::string& option_name, Optional<bool>& option_field)
{
- if (option_field != OptBoolC::UNSPECIFIED && option_field != new_setting)
+ if (option_field && option_field != new_setting)
{
System::println(System::Color::error, "Error: conflicting values specified for --%s", option_name);
Metrics::track_property("error", "error conflicting switches");
@@ -94,27 +94,27 @@ namespace vcpkg
}
if (arg == "--debug")
{
- parse_switch(OptBoolC::ENABLED, "debug", args.debug);
+ parse_switch(true, "debug", args.debug);
continue;
}
if (arg == "--sendmetrics")
{
- parse_switch(OptBoolC::ENABLED, "sendmetrics", args.sendmetrics);
+ parse_switch(true, "sendmetrics", args.sendmetrics);
continue;
}
if (arg == "--printmetrics")
{
- parse_switch(OptBoolC::ENABLED, "printmetrics", args.printmetrics);
+ parse_switch(true, "printmetrics", args.printmetrics);
continue;
}
if (arg == "--no-sendmetrics")
{
- parse_switch(OptBoolC::DISABLED, "sendmetrics", args.sendmetrics);
+ parse_switch(false, "sendmetrics", args.sendmetrics);
continue;
}
if (arg == "--no-printmetrics")
{
- parse_switch(OptBoolC::DISABLED, "printmetrics", args.printmetrics);
+ parse_switch(false, "printmetrics", args.printmetrics);
continue;
}
diff --git a/toolsrc/src/tests_arguments.cpp b/toolsrc/src/tests_arguments.cpp
index 9145dcdb9..624fbb910 100644
--- a/toolsrc/src/tests_arguments.cpp
+++ b/toolsrc/src/tests_arguments.cpp
@@ -17,9 +17,9 @@ namespace UnitTest1
std::vector<std::string> t = {"--vcpkg-root", "C:\\vcpkg", "--debug", "--sendmetrics", "--printmetrics"};
auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
Assert::AreEqual("C:\\vcpkg", v.vcpkg_root_dir.get()->c_str());
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.debug);
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.sendmetrics);
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.printmetrics);
+ Assert::IsTrue(v.debug && *v.debug.get());
+ Assert::IsTrue(v.sendmetrics && v.sendmetrics.get());
+ Assert::IsTrue(v.printmetrics && *v.printmetrics.get());
}
TEST_METHOD(create_from_arg_sequence_options_upper)
@@ -27,9 +27,9 @@ namespace UnitTest1
std::vector<std::string> t = {"--VCPKG-ROOT", "C:\\vcpkg", "--DEBUG", "--SENDMETRICS", "--PRINTMETRICS"};
auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
Assert::AreEqual("C:\\vcpkg", v.vcpkg_root_dir.get()->c_str());
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.debug);
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.sendmetrics);
- Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.printmetrics);
+ Assert::IsTrue(v.debug && *v.debug.get());
+ Assert::IsTrue(v.sendmetrics && v.sendmetrics.get());
+ Assert::IsTrue(v.printmetrics && *v.printmetrics.get());
}
};
} \ No newline at end of file
diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp
index 744d4d77f..d24fad0e6 100644
--- a/toolsrc/src/vcpkg.cpp
+++ b/toolsrc/src/vcpkg.cpp
@@ -207,13 +207,9 @@ int wmain(const int argc, const wchar_t* const* const argv)
const VcpkgCmdArguments args = VcpkgCmdArguments::create_from_command_line(argc, argv);
- if (args.printmetrics != OptBoolC::UNSPECIFIED) Metrics::set_print_metrics(args.printmetrics == OptBoolC::ENABLED);
- if (args.sendmetrics != OptBoolC::UNSPECIFIED) Metrics::set_send_metrics(args.sendmetrics == OptBoolC::ENABLED);
-
- if (args.debug != OptBoolC::UNSPECIFIED)
- {
- g_debugging = (args.debug == OptBoolC::ENABLED);
- }
+ if (auto p = args.printmetrics.get()) Metrics::set_print_metrics(*p);
+ if (auto p = args.sendmetrics.get()) Metrics::set_send_metrics(*p);
+ if (auto p = args.debug.get()) g_debugging = *p;
if (g_debugging)
{