aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Files.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 21:43:59 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 21:43:59 -0700
commit54341f745c134d740ddc6a6538483070ad5877ef (patch)
tree44496d7e98adccd73a980b87f1049a1894ab801d /toolsrc/src/vcpkg_Files.cpp
parenta1b7756c456137b0a9c169a4be03170da81cd5d7 (diff)
downloadvcpkg-54341f745c134d740ddc6a6538483070ad5877ef.tar.gz
vcpkg-54341f745c134d740ddc6a6538483070ad5877ef.zip
MOve recursive upwards search to Files
Diffstat (limited to 'toolsrc/src/vcpkg_Files.cpp')
-rw-r--r--toolsrc/src/vcpkg_Files.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg_Files.cpp b/toolsrc/src/vcpkg_Files.cpp
index 49a661157..ef330ea27 100644
--- a/toolsrc/src/vcpkg_Files.cpp
+++ b/toolsrc/src/vcpkg_Files.cpp
@@ -35,4 +35,19 @@ namespace vcpkg {namespace Files
return std::move(output);
}
+
+ fs::path find_file_recursively_up(const fs::path& starting_dir, const std::string& filename)
+ {
+ fs::path current_dir = starting_dir;
+ for (; !current_dir.empty(); current_dir = current_dir.parent_path())
+ {
+ const fs::path candidate = current_dir / filename;
+ if (fs::exists(candidate))
+ {
+ break;
+ }
+ }
+
+ return current_dir;
+ }
}}