aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_import.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-13 18:37:41 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-10-13 18:37:41 -0700
commite17de99599a2f114faab1bb4821fbaad4d266c95 (patch)
tree397fec8a85af3ef002c125ce013eceb60d27116d /toolsrc/src/commands_import.cpp
parent1fb5313a881fe0fcfd90dff5255045c8367ee00b (diff)
downloadvcpkg-e17de99599a2f114faab1bb4821fbaad4d266c95.tar.gz
vcpkg-e17de99599a2f114faab1bb4821fbaad4d266c95.zip
[vcpkg] Re-layout all files using new organization scheme.
All filenames and directories are lowercase. Use dots for namespace separation.
Diffstat (limited to 'toolsrc/src/commands_import.cpp')
-rw-r--r--toolsrc/src/commands_import.cpp119
1 files changed, 0 insertions, 119 deletions
diff --git a/toolsrc/src/commands_import.cpp b/toolsrc/src/commands_import.cpp
deleted file mode 100644
index 412a03d7f..000000000
--- a/toolsrc/src/commands_import.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-#include "pch.h"
-
-#include "Paragraphs.h"
-#include "StatusParagraph.h"
-#include "vcpkg_Commands.h"
-#include "vcpkg_Files.h"
-
-namespace vcpkg::Commands::Import
-{
- struct Binaries
- {
- std::vector<fs::path> dlls;
- std::vector<fs::path> libs;
- };
-
- static void check_is_directory(const LineInfo& line_info, const Files::Filesystem& fs, const fs::path& dirpath)
- {
- Checks::check_exit(line_info, fs.is_directory(dirpath), "The path %s is not a directory", dirpath.string());
- }
-
- static Binaries find_binaries_in_dir(const Files::Filesystem& fs, const fs::path& path)
- {
- auto files = fs.get_files_recursive(path);
-
- check_is_directory(VCPKG_LINE_INFO, fs, path);
-
- Binaries binaries;
- for (auto&& file : files)
- {
- if (fs.is_directory(file)) continue;
- const auto ext = file.extension();
- if (ext == ".dll")
- binaries.dlls.push_back(std::move(file));
- else if (ext == ".lib")
- binaries.libs.push_back(std::move(file));
- }
- return binaries;
- }
-
- static void copy_files_into_directory(Files::Filesystem& fs,
- const std::vector<fs::path>& files,
- const fs::path& destination_folder)
- {
- std::error_code ec;
- fs.create_directory(destination_folder, ec);
-
- for (auto const& src_path : files)
- {
- const fs::path dest_path = destination_folder / src_path.filename();
- fs.copy(src_path, dest_path, fs::copy_options::overwrite_existing);
- }
- }
-
- static void place_library_files_in(Files::Filesystem& fs,
- const fs::path& include_directory,
- const fs::path& project_directory,
- const fs::path& destination_path)
- {
- check_is_directory(VCPKG_LINE_INFO, fs, include_directory);
- check_is_directory(VCPKG_LINE_INFO, fs, project_directory);
- check_is_directory(VCPKG_LINE_INFO, fs, destination_path);
- const Binaries debug_binaries = find_binaries_in_dir(fs, project_directory / "Debug");
- const Binaries release_binaries = find_binaries_in_dir(fs, project_directory / "Release");
-
- const fs::path destination_include_directory = destination_path / "include";
- fs.copy(include_directory,
- destination_include_directory,
- fs::copy_options::recursive | fs::copy_options::overwrite_existing);
-
- copy_files_into_directory(fs, release_binaries.dlls, destination_path / "bin");
- copy_files_into_directory(fs, release_binaries.libs, destination_path / "lib");
-
- std::error_code ec;
- fs.create_directory(destination_path / "debug", ec);
- copy_files_into_directory(fs, debug_binaries.dlls, destination_path / "debug" / "bin");
- copy_files_into_directory(fs, debug_binaries.libs, destination_path / "debug" / "lib");
- }
-
- static void do_import(const VcpkgPaths& paths,
- const fs::path& include_directory,
- const fs::path& project_directory,
- const BinaryParagraph& control_file_data)
- {
- auto& fs = paths.get_filesystem();
- const fs::path library_destination_path = paths.package_dir(control_file_data.spec);
- std::error_code ec;
- fs.create_directory(library_destination_path, ec);
- place_library_files_in(paths.get_filesystem(), include_directory, project_directory, library_destination_path);
-
- const fs::path control_file_path = library_destination_path / "CONTROL";
- fs.write_contents(control_file_path, Strings::serialize(control_file_data));
- }
-
- void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths)
- {
- static const std::string EXAMPLE = Commands::Help::create_example_string(
- R"(import C:\path\to\CONTROLfile C:\path\to\includedir C:\path\to\projectdir)");
- args.check_exact_arg_count(3, EXAMPLE);
- args.check_and_get_optional_command_arguments({});
-
- const fs::path control_file_path(args.command_arguments[0]);
- const fs::path include_directory(args.command_arguments[1]);
- const fs::path project_directory(args.command_arguments[2]);
-
- const Expected<std::unordered_map<std::string, std::string>> pghs =
- Paragraphs::get_single_paragraph(paths.get_filesystem(), control_file_path);
- Checks::check_exit(VCPKG_LINE_INFO,
- pghs.get() != nullptr,
- "Invalid control file %s for package",
- control_file_path.generic_string());
-
- StatusParagraph spgh;
- spgh.package = BinaryParagraph(*pghs.get());
- auto& control_file_data = spgh.package;
-
- do_import(paths, include_directory, project_directory, control_file_data);
- Checks::exit_success(VCPKG_LINE_INFO);
- }
-}