diff options
-rw-r--r-- | doc/os.rst | 46 | ||||
-rw-r--r-- | src/build-data/os/windows.txt | 1 | ||||
-rw-r--r-- | src/lib/utils/boost/info.txt | 3 | ||||
-rw-r--r-- | src/lib/utils/filesystem.cpp | 74 |
4 files changed, 32 insertions, 92 deletions
diff --git a/doc/os.rst b/doc/os.rst index d34011d5f..d62f298e2 100644 --- a/doc/os.rst +++ b/doc/os.rst @@ -13,6 +13,7 @@ A summary of OS features as defined in ``src/build-data/os``. c: cygwin d: darwin d: dragonfly + e: emscripten f: freebsd h: haiku h: hpux @@ -31,29 +32,30 @@ A summary of OS features as defined in ``src/build-data/os``. w: windows .. csv-table:: - :header: "Feature", "a", "a", "c", "d", "d", "f", "h", "h", "h", "i", "i", "l", "l", "m", "n", "n", "o", "q", "s", "u", "w" + :header: "Feature", "a", "a", "c", "d", "d", "e", "f", "h", "h", "h", "i", "i", "l", "l", "m", "n", "n", "o", "q", "s", "u", "w" - "arc4random", " ", " ", " ", "X", "X", "X", " ", " ", " ", " ", "X", " ", " ", " ", " ", "X", "X", " ", " ", " ", " " - "clock_gettime", "X", "X", " ", " ", "X", "X", "X", "X", "X", " ", " ", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " - "crypto_ng", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " " - "dev_random", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " - "explicit_bzero", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " " - "explicit_memset", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " " - "filesystem", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", "X", "X", "X", " ", "X", "X", "X", "X", "X", "X" - "getauxval", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " " - "getentropy", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " " - "posix1", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " - "posix_mlock", "X", "X", " ", "X", "X", "X", " ", "X", "X", " ", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " - "proc_fs", "X", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X", " ", " " - "rtlgenrandom", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X" - "rtlsecurezeromemory", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", "X" - "security_framework", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " - "sockets", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " - "stl_filesystem_msvc", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X" - "threads", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", "X", " ", "X", "X", "X", "X", "X", "X", "X", "X" - "virtual_lock", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X" - "win32", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", "X", "X" - "winsock2", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", "X" + "arc4random", " ", " ", " ", "X", "X", " ", "X", " ", " ", " ", " ", "X", " ", " ", " ", " ", "X", "X", " ", " ", " ", " " + "cap_enter", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " + "clock_gettime", "X", "X", " ", " ", "X", " ", "X", "X", "X", "X", " ", " ", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " + "commoncrypto", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " + "crypto_ng", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " " + "dev_random", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " + "explicit_bzero", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " " + "explicit_memset", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " " + "filesystem", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", "X", "X", "X", "X", " ", "X", "X", "X", "X", "X", "X" + "getauxval", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", " " + "getentropy", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " " + "pledge", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " " + "posix1", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " + "posix_mlock", "X", "X", " ", "X", "X", " ", "X", " ", "X", "X", " ", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " + "proc_fs", "X", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X", " ", " " + "rtlgenrandom", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X" + "rtlsecurezeromemory", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", "X" + "sockets", "X", "X", "X", "X", "X", " ", "X", "X", "X", "X", " ", "X", "X", " ", " ", " ", "X", "X", "X", "X", " ", " " + "threads", "X", "X", "X", "X", "X", " ", "X", "X", "X", "X", " ", "X", "X", " ", "X", "X", "X", "X", "X", "X", "X", "X" + "virtual_lock", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "X" + "win32", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", "X", "X" + "winsock2", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", "X" .. note:: This file is auto generated by ``src/scripts/update_docs.py``. Dont modify it manually. diff --git a/src/build-data/os/windows.txt b/src/build-data/os/windows.txt index 209df6e03..8eab164df 100644 --- a/src/build-data/os/windows.txt +++ b/src/build-data/os/windows.txt @@ -29,7 +29,6 @@ rtlgenrandom rtlsecurezeromemory virtual_lock -stl_filesystem_msvc threads filesystem diff --git a/src/lib/utils/boost/info.txt b/src/lib/utils/boost/info.txt index d54421147..6330cbafd 100644 --- a/src/lib/utils/boost/info.txt +++ b/src/lib/utils/boost/info.txt @@ -1,10 +1,9 @@ <defines> -BOOST_FILESYSTEM -> 20131228 BOOST_ASIO -> 20131228 </defines> load_on vendor <libs> -all -> boost_system,boost_filesystem +all -> boost_system </libs> diff --git a/src/lib/utils/filesystem.cpp b/src/lib/utils/filesystem.cpp index 053c91e70..3072a304f 100644 --- a/src/lib/utils/filesystem.cpp +++ b/src/lib/utils/filesystem.cpp @@ -1,5 +1,5 @@ /* -* (C) 2015,2017 Jack Lloyd +* (C) 2015,2017,2019 Jack Lloyd * (C) 2015 Simon Warta (Kullo GmbH) * * Botan is released under the Simplified BSD License (see license.txt) @@ -8,77 +8,25 @@ #include <botan/exceptn.h> #include <botan/internal/filesystem.h> #include <algorithm> +#include <deque> +#include <memory> -#if defined(BOTAN_TARGET_OS_HAS_STL_FILESYSTEM_MSVC) && defined(BOTAN_BUILD_COMPILER_IS_MSVC) - #include <filesystem> -#elif defined(BOTAN_HAS_BOOST_FILESYSTEM) - #include <boost/filesystem.hpp> -#elif defined(BOTAN_TARGET_OS_HAS_POSIX1) +#if defined(BOTAN_TARGET_OS_HAS_POSIX1) #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> - #include <deque> - #include <memory> #include <functional> #elif defined(BOTAN_TARGET_OS_HAS_WIN32) #define NOMINMAX 1 #define _WINSOCKAPI_ // stop windows.h including winsock.h #include <windows.h> - #include <deque> - #include <memory> #endif namespace Botan { namespace { -#if defined(BOTAN_TARGET_OS_HAS_STL_FILESYSTEM_MSVC) && defined(BOTAN_BUILD_COMPILER_IS_MSVC) -std::vector<std::string> impl_stl_filesystem(const std::string& dir) - { -#if (_MSVC_LANG >= 201703L) - using namespace std::filesystem; -#else - using namespace std::tr2::sys; -#endif - - std::vector<std::string> out; - - path p(dir); - - if(is_directory(p)) - { - for(recursive_directory_iterator itr(p), end; itr != end; ++itr) - { - if(is_regular_file(itr->path())) - { - out.push_back(itr->path().string()); - } - } - } - - return out; - } - -#elif defined(BOTAN_HAS_BOOST_FILESYSTEM) - -std::vector<std::string> impl_boost_filesystem(const std::string& dir_path) -{ - namespace fs = boost::filesystem; - - std::vector<std::string> out; - - for(fs::recursive_directory_iterator dir(dir_path), end; dir != end; ++dir) - { - if(fs::is_regular_file(dir->path())) - { - out.push_back(dir->path().string()); - } - } - - return out; -} - -#elif defined(BOTAN_TARGET_OS_HAS_POSIX1) +#if defined(BOTAN_TARGET_OS_HAS_POSIX1) std::vector<std::string> impl_readdir(const std::string& dir_path) { @@ -166,11 +114,7 @@ std::vector<std::string> impl_win32(const std::string& dir_path) bool has_filesystem_impl() { -#if defined(BOTAN_TARGET_OS_HAS_STL_FILESYSTEM_MSVC) && defined(BOTAN_BUILD_COMPILER_IS_MSVC) - return true; -#elif defined(BOTAN_HAS_BOOST_FILESYSTEM) - return true; -#elif defined(BOTAN_TARGET_OS_HAS_POSIX1) +#if defined(BOTAN_TARGET_OS_HAS_POSIX1) return true; #elif defined(BOTAN_TARGET_OS_HAS_WIN32) return true; @@ -183,11 +127,7 @@ std::vector<std::string> get_files_recursive(const std::string& dir) { std::vector<std::string> files; -#if defined(BOTAN_TARGET_OS_HAS_STL_FILESYSTEM_MSVC) && defined(BOTAN_BUILD_COMPILER_IS_MSVC) - files = impl_stl_filesystem(dir); -#elif defined(BOTAN_HAS_BOOST_FILESYSTEM) - files = impl_boost_filesystem(dir); -#elif defined(BOTAN_TARGET_OS_HAS_POSIX1) +#if defined(BOTAN_TARGET_OS_HAS_POSIX1) files = impl_readdir(dir); #elif defined(BOTAN_TARGET_OS_HAS_WIN32) files = impl_win32(dir); |