aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/os.rst46
-rw-r--r--src/build-data/os/windows.txt1
-rw-r--r--src/lib/utils/boost/info.txt3
-rw-r--r--src/lib/utils/filesystem.cpp74
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);