diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-04-01 03:30:52 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-04-01 03:30:52 -0700 |
| commit | b788c2b2098093843d4521d12a617199af39e7dc (patch) | |
| tree | ffcd55b39c9019adab6993c99dde130fa2aceb5d /toolsrc/src | |
| parent | bb865fb312d9f603a18a40768ae357da0421905d (diff) | |
| download | vcpkg-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.cpp | 18 | ||||
| -rw-r--r-- | toolsrc/src/commands_portsdiff.cpp | 2 | ||||
| -rw-r--r-- | toolsrc/src/commands_update.cpp | 2 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg_paths.cpp | 29 | ||||
| -rw-r--r-- | toolsrc/src/vcpkglib.cpp | 2 |
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)); } |
