aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-01 03:30:52 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-04-01 03:30:52 -0700
commitb788c2b2098093843d4521d12a617199af39e7dc (patch)
treeffcd55b39c9019adab6993c99dde130fa2aceb5d /toolsrc/src
parentbb865fb312d9f603a18a40768ae357da0421905d (diff)
downloadvcpkg-b788c2b2098093843d4521d12a617199af39e7dc.tar.gz
vcpkg-b788c2b2098093843d4521d12a617199af39e7dc.zip
[vcpkg] ImmutableSortedVector is actually Mutable via move.
Use fmap instead of construct/insert. Don't cache VS2015 instances since it is called once. Add ParagraphDataMap alias.
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/commands_install.cpp18
-rw-r--r--toolsrc/src/commands_portsdiff.cpp2
-rw-r--r--toolsrc/src/commands_update.cpp2
-rw-r--r--toolsrc/src/vcpkg_paths.cpp29
-rw-r--r--toolsrc/src/vcpkglib.cpp2
5 files changed, 23 insertions, 30 deletions
diff --git a/toolsrc/src/commands_install.cpp b/toolsrc/src/commands_install.cpp
index e504cf8ee..bba3c665f 100644
--- a/toolsrc/src/commands_install.cpp
+++ b/toolsrc/src/commands_install.cpp
@@ -106,14 +106,14 @@ namespace vcpkg::Commands::Install
continue;
}
- output.insert(output.end(), t.files.cbegin(), t.files.cend());
+ output.insert(output.end(), t.files.begin(), t.files.end());
}
std::sort(output.begin(), output.end());
return output;
}
- static ImmutableSortedVector<std::string> build_list_of_package_files(const fs::path& package_dir)
+ static SortedVector<std::string> build_list_of_package_files(const fs::path& package_dir)
{
const std::vector<fs::path> package_file_paths = Files::recursive_find_all_files_in_dir(package_dir);
const size_t package_remove_char_count = package_dir.generic_string().size() + 1; // +1 for the slash
@@ -124,16 +124,16 @@ namespace vcpkg::Commands::Install
return std::move(as_string);
});
- return ImmutableSortedVector<std::string>::create(std::move(package_files));
+ return SortedVector<std::string>(std::move(package_files));
}
- static ImmutableSortedVector<std::string> build_list_of_installed_files(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const triplet& triplet)
+ static SortedVector<std::string> build_list_of_installed_files(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const triplet& triplet)
{
std::vector<std::string> installed_files = extract_files_in_triplet(pgh_and_files, triplet);
const size_t installed_remove_char_count = triplet.canonical_name().size() + 1; // +1 for the slash
remove_first_n_chars(&installed_files, installed_remove_char_count);
- return ImmutableSortedVector<std::string>::create(std::move(installed_files));
+ return SortedVector<std::string>(std::move(installed_files));
}
void install_package(const vcpkg_paths& paths, const BinaryParagraph& binary_paragraph, StatusParagraphs* status_db)
@@ -142,12 +142,12 @@ namespace vcpkg::Commands::Install
const triplet& triplet = binary_paragraph.spec.target_triplet();
const std::vector<StatusParagraph_and_associated_files> pgh_and_files = get_installed_files(paths, *status_db);
- const ImmutableSortedVector<std::string> package_files = build_list_of_package_files(package_dir);
- const ImmutableSortedVector<std::string> installed_files = build_list_of_installed_files(pgh_and_files, triplet);
+ const SortedVector<std::string> package_files = build_list_of_package_files(package_dir);
+ const SortedVector<std::string> installed_files = build_list_of_installed_files(pgh_and_files, triplet);
std::vector<std::string> intersection;
- std::set_intersection(package_files.cbegin(), package_files.cend(),
- installed_files.cbegin(), installed_files.cend(),
+ std::set_intersection(package_files.begin(), package_files.end(),
+ installed_files.begin(), installed_files.end(),
std::back_inserter(intersection));
if (!intersection.empty())
diff --git a/toolsrc/src/commands_portsdiff.cpp b/toolsrc/src/commands_portsdiff.cpp
index d3c8b29e1..ce1e6a4c7 100644
--- a/toolsrc/src/commands_portsdiff.cpp
+++ b/toolsrc/src/commands_portsdiff.cpp
@@ -4,7 +4,7 @@
#include "vcpkg_Maps.h"
#include "SourceParagraph.h"
#include "Paragraphs.h"
-#include "ImmutableSortedVector.h"
+#include "SortedVector.h"
namespace vcpkg::Commands::PortsDiff
{
diff --git a/toolsrc/src/commands_update.cpp b/toolsrc/src/commands_update.cpp
index 701302dfc..b6c933521 100644
--- a/toolsrc/src/commands_update.cpp
+++ b/toolsrc/src/commands_update.cpp
@@ -44,7 +44,7 @@ namespace vcpkg::Commands::Update
const StatusParagraphs status_db = database_load_check(paths);
- const auto outdated_packages = ImmutableSortedVector<outdated_package>::create(find_outdated_packages(paths, status_db),
+ const auto outdated_packages = SortedVector<outdated_package>(find_outdated_packages(paths, status_db),
&outdated_package::compare_by_name);
if (outdated_packages.empty())
diff --git a/toolsrc/src/vcpkg_paths.cpp b/toolsrc/src/vcpkg_paths.cpp
index dd26e89e4..eb2478f2e 100644
--- a/toolsrc/src/vcpkg_paths.cpp
+++ b/toolsrc/src/vcpkg_paths.cpp
@@ -5,6 +5,7 @@
#include "vcpkg_System.h"
#include "package_spec.h"
#include "vcpkg_Files.h"
+#include "vcpkg_Util.h"
namespace vcpkg
{
@@ -62,10 +63,7 @@ namespace vcpkg
return {};
}
- const std::vector<std::string> paths_to_add = Strings::split(out.output, "\n");
- std::vector<fs::path> v;
- v.insert(v.end(), paths_to_add.cbegin(), paths_to_add.cend());
- return v;
+ return Util::fmap(Strings::split(out.output, "\n"), [](auto&& s) { return fs::path(s); });
}
static fs::path fetch_dependency(const fs::path scripts_folder, const std::wstring& tool_name, const fs::path& expected_downloaded_path)
@@ -252,21 +250,16 @@ namespace vcpkg
return Strings::split(ec_data.output, "\n");
}
- static const optional<fs::path>& get_VS2015_installation_instance()
+ static optional<fs::path> get_VS2015_installation_instance()
{
- static const optional<fs::path> vs2015_path = []() -> optional<fs::path>
- {
- const optional<std::wstring> vs2015_cmntools_optional = System::get_environmental_variable(L"VS140COMNTOOLS");
- if (auto v = vs2015_cmntools_optional.get())
- {
- static const fs::path vs2015_cmntools = fs::path(*v).parent_path(); // The call to parent_path() is needed because the env variable has a trailing backslash
- static const fs::path vs2015_path = vs2015_cmntools.parent_path().parent_path();
- return vs2015_path;
- }
+ const optional<std::wstring> vs2015_cmntools_optional = System::get_environmental_variable(L"VS140COMNTOOLS");
+ if (auto v = vs2015_cmntools_optional.get())
+ {
+ const fs::path vs2015_cmntools = fs::path(*v).parent_path(); // The call to parent_path() is needed because the env variable has a trailing backslash
+ return vs2015_cmntools.parent_path().parent_path();
+ }
- return nullopt;
- }();
- return vs2015_path;
+ return nullopt;
}
static toolset_t find_toolset_instance(const vcpkg_paths& paths)
@@ -312,7 +305,7 @@ namespace vcpkg
}
// VS2015
- const optional<fs::path>& vs_2015_installation_instance = get_VS2015_installation_instance();
+ const optional<fs::path> vs_2015_installation_instance = get_VS2015_installation_instance();
if (auto v = vs_2015_installation_instance.get())
{
const fs::path vs2015_vcvarsall_bat = *v / "VC" / "vcvarsall.bat";
diff --git a/toolsrc/src/vcpkglib.cpp b/toolsrc/src/vcpkglib.cpp
index 47592ea1d..152b9ac2b 100644
--- a/toolsrc/src/vcpkglib.cpp
+++ b/toolsrc/src/vcpkglib.cpp
@@ -208,7 +208,7 @@ namespace vcpkg
}
), installed_files_of_current_pgh.end());
- StatusParagraph_and_associated_files pgh_and_files = { *pgh, ImmutableSortedVector<std::string>::create(std::move(installed_files_of_current_pgh)) };
+ StatusParagraph_and_associated_files pgh_and_files = { *pgh, SortedVector<std::string>(std::move(installed_files_of_current_pgh)) };
installed_files.push_back(std::move(pgh_and_files));
}