aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-07-07 02:55:03 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-07-09 07:06:29 -0700
commitd977ac231e995250c169ac1778b7de34f7f57ead (patch)
tree19ca101230a287329c5a42a1f88b0803249bdcc1 /toolsrc/src
parent802f51a142283a117bf5bfa3f456493d8a20017d (diff)
downloadvcpkg-d977ac231e995250c169ac1778b7de34f7f57ead.tar.gz
vcpkg-d977ac231e995250c169ac1778b7de34f7f57ead.zip
[vcpkg] Remove vcpkg::Archives from vcpkg::base. Add vcpkg::Hash.
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/archives.cpp (renamed from toolsrc/src/vcpkg/base/archives.cpp)2
-rw-r--r--toolsrc/src/vcpkg/base/downloads.cpp17
-rw-r--r--toolsrc/src/vcpkg/base/hash.cpp (renamed from toolsrc/src/vcpkg/commands.hash.cpp)48
-rw-r--r--toolsrc/src/vcpkg/build.cpp10
-rw-r--r--toolsrc/src/vcpkg/commands.cpp25
-rw-r--r--toolsrc/src/vcpkg/metrics.cpp3
-rw-r--r--toolsrc/src/vcpkg/tools.cpp5
7 files changed, 57 insertions, 53 deletions
diff --git a/toolsrc/src/vcpkg/base/archives.cpp b/toolsrc/src/vcpkg/archives.cpp
index 5d0f1c7a1..8943893d6 100644
--- a/toolsrc/src/vcpkg/base/archives.cpp
+++ b/toolsrc/src/vcpkg/archives.cpp
@@ -1,6 +1,6 @@
#include "pch.h"
-#include <vcpkg/base/archives.h>
+#include <vcpkg/archives.h>
#include <vcpkg/commands.h>
namespace vcpkg::Archives
diff --git a/toolsrc/src/vcpkg/base/downloads.cpp b/toolsrc/src/vcpkg/base/downloads.cpp
index 746e457d3..1d7b3527d 100644
--- a/toolsrc/src/vcpkg/base/downloads.cpp
+++ b/toolsrc/src/vcpkg/base/downloads.cpp
@@ -1,11 +1,13 @@
#include "pch.h"
#include <vcpkg/base/downloads.h>
+#include <vcpkg/base/hash.h>
#include <vcpkg/base/util.h>
-#include <vcpkg/commands.h>
#if defined(_WIN32)
#include <VersionHelpers.h>
+#else
+#include <vcpkg/base/system.h>
#endif
namespace vcpkg::Downloads
@@ -32,10 +34,12 @@ namespace vcpkg::Downloads
target_file_path,
std::to_string(err));
- auto hSession = WinHttpOpen(
- L"vcpkg/1.0",
- IsWindows8Point1OrGreater() ? WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY : WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
- WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
+ auto hSession = WinHttpOpen(L"vcpkg/1.0",
+ IsWindows8Point1OrGreater() ? WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY
+ : WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
+ WINHTTP_NO_PROXY_NAME,
+ WINHTTP_NO_PROXY_BYPASS,
+ 0);
Checks::check_exit(VCPKG_LINE_INFO, hSession, "WinHttpOpen() failed: %d", GetLastError());
// Use Windows 10 defaults on Windows 7
@@ -98,7 +102,7 @@ namespace vcpkg::Downloads
const fs::path& path,
const std::string& sha512)
{
- const std::string actual_hash = Commands::Hash::get_file_hash(fs, path, "SHA512");
+ const std::string actual_hash = vcpkg::Hash::get_file_hash(fs, path, "SHA512");
Checks::check_exit(VCPKG_LINE_INFO,
sha512 == actual_hash,
"File does not have the expected hash:\n"
@@ -144,5 +148,4 @@ namespace vcpkg::Downloads
download_path.u8string(),
ec.message());
}
-
}
diff --git a/toolsrc/src/vcpkg/commands.hash.cpp b/toolsrc/src/vcpkg/base/hash.cpp
index 0c7aa72c4..31bd8d05e 100644
--- a/toolsrc/src/vcpkg/commands.hash.cpp
+++ b/toolsrc/src/vcpkg/base/hash.cpp
@@ -4,10 +4,16 @@
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.h>
#include <vcpkg/base/util.h>
-#include <vcpkg/commands.h>
-#include <vcpkg/help.h>
-namespace vcpkg::Commands::Hash
+#if defined(_WIN32)
+#include <bcrypt.h>
+
+#ifndef NT_SUCCESS
+#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
+#endif
+#endif
+
+namespace vcpkg::Hash
{
static void verify_has_only_allowed_chars(const std::string& s)
{
@@ -18,17 +24,7 @@ namespace vcpkg::Commands::Hash
" % s",
s);
}
-}
-
#if defined(_WIN32)
-#include <bcrypt.h>
-
-#ifndef NT_SUCCESS
-#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
-#endif
-
-namespace vcpkg::Commands::Hash
-{
namespace
{
std::string to_hex(const unsigned char* string, const size_t bytes)
@@ -165,11 +161,8 @@ namespace vcpkg::Commands::Hash
verify_has_only_allowed_chars(s);
return BCryptHasher{hash_type}.hash_string(s);
}
-}
#else
-namespace vcpkg::Commands::Hash
-{
static std::string get_digest_size(const std::string& hash_type)
{
if (!Strings::case_insensitive_ascii_starts_with(hash_type, "SHA"))
@@ -217,28 +210,5 @@ namespace vcpkg::Commands::Hash
const std::string cmd_line = Strings::format(R"(echo -n "%s" | shasum -a %s)", s, digest_size);
return run_shasum_and_post_process(cmd_line);
}
-}
#endif
-
-namespace vcpkg::Commands::Hash
-{
- const CommandStructure COMMAND_STRUCTURE = {
- Strings::format("The argument should be a file path\n%s",
- Help::create_example_string("hash boost_1_62_0.tar.bz2")),
- 1,
- 2,
- {},
- nullptr,
- };
-
- void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths)
- {
- Util::unused(args.parse_arguments(COMMAND_STRUCTURE));
-
- const fs::path file_to_hash = args.command_arguments[0];
- const std::string algorithm = args.command_arguments.size() == 2 ? args.command_arguments[1] : "SHA512";
- const std::string hash = get_file_hash(paths.get_filesystem(), file_to_hash, algorithm);
- System::println(hash);
- Checks::exit_success(VCPKG_LINE_INFO);
- }
}
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index 4e7a58048..dc7653795 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -1,11 +1,13 @@
#include "pch.h"
+#include <vcpkg/base/hash.h>
#include <vcpkg/base/checks.h>
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/enums.h>
#include <vcpkg/base/optional.h>
#include <vcpkg/base/stringliteral.h>
#include <vcpkg/base/system.h>
+
#include <vcpkg/build.h>
#include <vcpkg/commands.h>
#include <vcpkg/dependencies.h>
@@ -467,9 +469,9 @@ namespace vcpkg::Build
abi_tag_entries.insert(abi_tag_entries.end(), dependency_abis.begin(), dependency_abis.end());
abi_tag_entries.emplace_back(
- AbiEntry{"portfile", Commands::Hash::get_file_hash(fs, config.port_dir / "portfile.cmake", "SHA1")});
+ AbiEntry{"portfile", vcpkg::Hash::get_file_hash(fs, config.port_dir / "portfile.cmake", "SHA1")});
abi_tag_entries.emplace_back(
- AbiEntry{"control", Commands::Hash::get_file_hash(fs, config.port_dir / "CONTROL", "SHA1")});
+ AbiEntry{"control", vcpkg::Hash::get_file_hash(fs, config.port_dir / "CONTROL", "SHA1")});
if (pre_build_info.cmake_system_name == "Linux")
{
@@ -509,7 +511,7 @@ namespace vcpkg::Build
const auto abi_file_path = paths.buildtrees / name / (triplet.canonical_name() + ".vcpkg_abi_info.txt");
fs.write_contents(abi_file_path, full_abi_info);
- return AbiTagAndFile{Commands::Hash::get_file_hash(fs, abi_file_path, "SHA1"), abi_file_path};
+ return AbiTagAndFile{Hash::get_file_hash(fs, abi_file_path, "SHA1"), abi_file_path};
}
System::println(
@@ -804,7 +806,7 @@ namespace vcpkg::Build
{
return it_hash->second;
}
- auto hash = Commands::Hash::get_file_hash(paths.get_filesystem(), triplet_file_path, "SHA1");
+ auto hash = Hash::get_file_hash(paths.get_filesystem(), triplet_file_path, "SHA1");
s_hash_cache.emplace(triplet_file_path, hash);
return hash;
diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp
index 76fdf54fc..7204b6e78 100644
--- a/toolsrc/src/vcpkg/commands.cpp
+++ b/toolsrc/src/vcpkg/commands.cpp
@@ -1,5 +1,7 @@
#include "pch.h"
+#include <vcpkg/base/hash.h>
+
#include <vcpkg/build.h>
#include <vcpkg/commands.h>
#include <vcpkg/export.h>
@@ -78,3 +80,26 @@ namespace vcpkg::Commands::Fetch
Checks::exit_success(VCPKG_LINE_INFO);
}
}
+
+namespace vcpkg::Commands::Hash
+{
+ const CommandStructure COMMAND_STRUCTURE = {
+ Strings::format("The argument should be a file path\n%s",
+ Help::create_example_string("hash boost_1_62_0.tar.bz2")),
+ 1,
+ 2,
+ {},
+ nullptr,
+ };
+
+ void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths)
+ {
+ Util::unused(args.parse_arguments(COMMAND_STRUCTURE));
+
+ const fs::path file_to_hash = args.command_arguments[0];
+ const std::string algorithm = args.command_arguments.size() == 2 ? args.command_arguments[1] : "SHA512";
+ const std::string hash = vcpkg::Hash::get_file_hash(paths.get_filesystem(), file_to_hash, algorithm);
+ System::println(hash);
+ Checks::exit_success(VCPKG_LINE_INFO);
+ }
+}
diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp
index 1d5bb381b..2a73dba89 100644
--- a/toolsrc/src/vcpkg/metrics.cpp
+++ b/toolsrc/src/vcpkg/metrics.cpp
@@ -5,6 +5,7 @@
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/files.h>
+#include <vcpkg/base/hash.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.h>
@@ -261,7 +262,7 @@ namespace vcpkg::Metrics
const auto match = *next;
if (match[0] != "00-00-00-00-00-00")
{
- return vcpkg::Commands::Hash::get_string_hash(match[0], "SHA256");
+ return vcpkg::Hash::get_string_hash(match[0], "SHA256");
}
++next;
}
diff --git a/toolsrc/src/vcpkg/tools.cpp b/toolsrc/src/vcpkg/tools.cpp
index d47035edf..313b5997b 100644
--- a/toolsrc/src/vcpkg/tools.cpp
+++ b/toolsrc/src/vcpkg/tools.cpp
@@ -1,13 +1,16 @@
#include "pch.h"
+#include <vcpkg/archives.h>
#include <vcpkg/tools.h>
#include <vcpkg/vcpkgpaths.h>
-#include <vcpkg/base/archives.h>
+#include <vcpkg/base/checks.h>
#include <vcpkg/base/downloads.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/optional.h>
#include <vcpkg/base/stringrange.h>
+#include <vcpkg/base/strings.h>
+#include <vcpkg/base/system.h>
#include <vcpkg/base/util.h>
namespace vcpkg