diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2018-02-21 15:32:20 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2018-02-21 15:32:20 -0800 |
| commit | 494f3002bfdf80c363ae51ca426cabc231c73339 (patch) | |
| tree | 82dd61962879c3a75e38e73152d25db78a82c1da /toolsrc/src | |
| parent | 97531c32d4867f6bc2d6dab9653eaaee66a74ded (diff) | |
| download | vcpkg-494f3002bfdf80c363ae51ca426cabc231c73339.tar.gz vcpkg-494f3002bfdf80c363ae51ca426cabc231c73339.zip | |
Add internal option to clean packages\<port> after the build
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg/build.cpp | 18 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/commands.ci.cpp | 11 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/commands.upgrade.cpp | 9 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/install.cpp | 2 |
4 files changed, 25 insertions, 15 deletions
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 7d249bd0c..f6c995f2a 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -61,8 +61,10 @@ namespace vcpkg::Build::Command spec.name()); const StatusParagraphs status_db = database_load_check(paths); - const Build::BuildPackageOptions build_package_options{ - Build::UseHeadVersion::NO, Build::AllowDownloads::YES, Build::CleanBuildtrees::NO}; + const Build::BuildPackageOptions build_package_options{Build::UseHeadVersion::NO, + Build::AllowDownloads::YES, + Build::CleanBuildtrees::NO, + Build::CleanPackages::NO}; const std::unordered_set<std::string> features_as_set(full_spec.features.begin(), full_spec.features.end()); @@ -385,7 +387,7 @@ namespace vcpkg::Build if (config.build_package_options.clean_buildtrees == CleanBuildtrees::YES) { auto& fs = paths.get_filesystem(); - auto buildtrees_dir = paths.buildtrees / config.scf.core_paragraph->name; + const fs::path buildtrees_dir = paths.buildtrees / config.scf.core_paragraph->name; auto buildtree_files = fs.get_files_non_recursive(buildtrees_dir); for (auto&& file : buildtree_files) { @@ -397,6 +399,16 @@ namespace vcpkg::Build } } + if (config.build_package_options.clean_packages == CleanPackages::YES) + { + auto& fs = paths.get_filesystem(); + const PackageSpec spec = PackageSpec::from_name_and_triplet(config.scf.core_paragraph->name, config.triplet) + .value_or_exit(VCPKG_LINE_INFO); + const fs::path package_dir = paths.package_dir(spec); + std::error_code ec; + fs.remove_all(package_dir, ec); + } + return result; } diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp index 7672755ba..313582b7b 100644 --- a/toolsrc/src/vcpkg/commands.ci.cpp +++ b/toolsrc/src/vcpkg/commands.ci.cpp @@ -24,17 +24,16 @@ namespace vcpkg::Commands::CI { Input::check_triplet(triplet, paths); std::vector<PackageSpec> specs = PackageSpec::to_package_specs(ports, triplet); - auto featurespecs = Util::fmap(specs, [](auto& spec) { return FeatureSpec(spec, ""); }); + const auto featurespecs = Util::fmap(specs, [](auto& spec) { return FeatureSpec(spec, ""); }); StatusParagraphs status_db = database_load_check(paths); const auto& paths_port_file = Dependencies::PathsPortFileProvider(paths); auto action_plan = Dependencies::create_feature_install_plan(paths_port_file, featurespecs, status_db); - const Build::BuildPackageOptions install_plan_options = { - Build::UseHeadVersion::NO, - Build::AllowDownloads::YES, - Build::CleanBuildtrees::YES, - }; + const Build::BuildPackageOptions install_plan_options = {Build::UseHeadVersion::NO, + Build::AllowDownloads::YES, + Build::CleanBuildtrees::YES, + Build::CleanPackages::YES}; for (auto&& action : action_plan) { diff --git a/toolsrc/src/vcpkg/commands.upgrade.cpp b/toolsrc/src/vcpkg/commands.upgrade.cpp index bb26dc735..c5b48f2a2 100644 --- a/toolsrc/src/vcpkg/commands.upgrade.cpp +++ b/toolsrc/src/vcpkg/commands.upgrade.cpp @@ -141,11 +141,10 @@ namespace vcpkg::Commands::Upgrade Checks::check_exit(VCPKG_LINE_INFO, !plan.empty()); - const Build::BuildPackageOptions install_plan_options = { - Build::UseHeadVersion::NO, - Build::AllowDownloads::YES, - Build::CleanBuildtrees::NO, - }; + const Build::BuildPackageOptions install_plan_options = {Build::UseHeadVersion::NO, + Build::AllowDownloads::YES, + Build::CleanBuildtrees::NO, + Build::CleanPackages::NO}; // Set build settings for all install actions for (auto&& action : plan) diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 631b16c59..d032f77d8 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -547,7 +547,7 @@ namespace vcpkg::Install Util::Enum::to_enum<Build::UseHeadVersion>(use_head_version), Util::Enum::to_enum<Build::AllowDownloads>(!no_downloads), Build::CleanBuildtrees::NO, - }; + Build::CleanPackages::NO}; // Note: action_plan will hold raw pointers to SourceControlFiles from this map std::vector<AnyAction> action_plan; |
