diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-04-17 18:36:35 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-04-21 18:06:52 -0700 |
| commit | 989083caacfe44e442a88db851ded8e2b519c143 (patch) | |
| tree | 2f37f03e01ecbd1cfbbbf205ad7d24b9d567edc5 /toolsrc/src/commands_export.cpp | |
| parent | 92cf32d59a5b3a1fd68bce4edf5c5d576e637678 (diff) | |
| download | vcpkg-989083caacfe44e442a88db851ded8e2b519c143.tar.gz vcpkg-989083caacfe44e442a88db851ded8e2b519c143.zip | |
`export`: Do the export by using the install machinery
Diffstat (limited to 'toolsrc/src/commands_export.cpp')
| -rw-r--r-- | toolsrc/src/commands_export.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/toolsrc/src/commands_export.cpp b/toolsrc/src/commands_export.cpp index cde4ae0dc..efd12b836 100644 --- a/toolsrc/src/commands_export.cpp +++ b/toolsrc/src/commands_export.cpp @@ -9,6 +9,7 @@ namespace vcpkg::Commands::Export { + using Install::InstallDir; using Dependencies::ExportPlanAction; using Dependencies::RequestType; using Dependencies::ExportPlanType; @@ -88,6 +89,28 @@ namespace vcpkg::Commands::Export Checks::exit_success(VCPKG_LINE_INFO); } + Files::Filesystem& fs = paths.get_filesystem(); + const fs::path output = paths.root / "exported"; + std::error_code ec; + fs.remove_all(output, ec); + paths.get_filesystem().create_directory(output, ec); + + // execute the plan + for (const ExportPlanAction& action : export_plan) + { + const std::string display_name = action.spec.to_string(); + System::println("Exporting package %s... ", display_name); + + const BinaryParagraph& binary_paragraph = action.any_paragraph.binary_paragraph.value_or_exit(VCPKG_LINE_INFO); + const InstallDir dirs = InstallDir::from_destination_root( + output, + action.spec.triplet().to_string(), + output / "vcpkg" / "info" / (binary_paragraph.fullstem() + ".list")); + + Install::install_files_and_write_listfile(paths.get_filesystem(), paths.package_dir(action.spec), dirs); + System::println(System::Color::success, "Exporting package %s... done", display_name); + } + Checks::exit_success(VCPKG_LINE_INFO); } } |
