diff --git a/toolsrc/include/vcpkg_Files.h b/toolsrc/include/vcpkg_Files.h index 3fbaad363..e88bca7b6 100644 --- a/toolsrc/include/vcpkg_Files.h +++ b/toolsrc/include/vcpkg_Files.h @@ -24,6 +24,7 @@ namespace vcpkg::Files virtual bool is_regular_file(const fs::path& path) const = 0; virtual bool is_empty(const fs::path& path) const = 0; virtual bool create_directory(const fs::path& path, std::error_code& ec) = 0; + virtual bool create_directories(const fs::path& path, std::error_code& ec) = 0; virtual void copy(const fs::path& oldpath, const fs::path& newpath, fs::copy_options opts) = 0; virtual bool copy_file(const fs::path& oldpath, const fs::path& newpath, fs::copy_options opts, std::error_code& ec) = 0; virtual fs::file_status status(const fs::path& path, std::error_code& ec) const = 0; diff --git a/toolsrc/src/vcpkg_Files.cpp b/toolsrc/src/vcpkg_Files.cpp index 21896a53d..d0e55a215 100644 --- a/toolsrc/src/vcpkg_Files.cpp +++ b/toolsrc/src/vcpkg_Files.cpp @@ -137,6 +137,10 @@ namespace vcpkg::Files { return fs::stdfs::create_directory(path, ec); } + virtual bool create_directories(const fs::path& path, std::error_code& ec) override + { + return fs::stdfs::create_directories(path, ec); + } virtual void copy(const fs::path & oldpath, const fs::path & newpath, fs::copy_options opts) override { fs::stdfs::copy(oldpath, newpath, opts); @@ -160,6 +164,7 @@ namespace vcpkg::Files Checks::check_exit(VCPKG_LINE_INFO, count == data.size()); } + }; Filesystem & get_real_filesystem()