aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2018-02-21 15:32:20 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2018-02-21 15:32:20 -0800
commit494f3002bfdf80c363ae51ca426cabc231c73339 (patch)
tree82dd61962879c3a75e38e73152d25db78a82c1da /toolsrc/src
parent97531c32d4867f6bc2d6dab9653eaaee66a74ded (diff)
downloadvcpkg-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.cpp18
-rw-r--r--toolsrc/src/vcpkg/commands.ci.cpp11
-rw-r--r--toolsrc/src/vcpkg/commands.upgrade.cpp9
-rw-r--r--toolsrc/src/vcpkg/install.cpp2
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;