mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 12:16:49 +00:00
[libc++] Roll up fstream support into filesystem support
LIBCXX_ENABLE_FILESYSTEM should represent whether the platform has support for a filesystem, not just whether we support <filesystem>. This patch slightly generalizes the setting to also encompass whether we provide <fstream>, since that only makes sense when a filesystem is supported. Differential Revision: https://reviews.llvm.org/D152168
This commit is contained in:
parent
a3a4369ea1
commit
66a562d22e
@ -57,7 +57,10 @@ option(LIBCXX_ENABLE_ASSERTIONS
|
||||
by users in their own code regardless of this option." OFF)
|
||||
option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
|
||||
option(LIBCXX_ENABLE_STATIC "Build libc++ as a static library." ON)
|
||||
option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of the main libc++ library" ON)
|
||||
option(LIBCXX_ENABLE_FILESYSTEM
|
||||
"Whether to include support for parts of the library that rely on a filesystem being
|
||||
available on the platform. This includes things like most parts of <filesystem> and
|
||||
others like <fstream>" ON)
|
||||
option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})
|
||||
option(LIBCXX_ENABLE_DEBUG_MODE
|
||||
"Whether to build libc++ with the debug mode enabled.
|
||||
@ -76,8 +79,6 @@ option(LIBCXX_ENABLE_LOCALIZATION
|
||||
the C locale API (e.g. embedded). When localization is not supported,
|
||||
several parts of the library will be disabled: <iostream>, <regex>, <locale>
|
||||
will be completely unusable, and other parts may be only partly available." ON)
|
||||
option(LIBCXX_ENABLE_FSTREAM
|
||||
"Whether to include support for <fstream>." ON) # TODO: Consider rolling that into LIBCXX_ENABLE_FILESYSTEM
|
||||
option(LIBCXX_ENABLE_UNICODE
|
||||
"Whether to include support for Unicode in the library. Disabling Unicode can
|
||||
be useful when porting to platforms that don't support UTF-8 encoding (e.g.
|
||||
@ -779,10 +780,9 @@ config_define_if(LIBCXX_HAS_WIN32_THREAD_API _LIBCPP_HAS_THREAD_API_WIN32)
|
||||
config_define_if(LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL)
|
||||
config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC)
|
||||
config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME)
|
||||
config_define_if_not(LIBCXX_ENABLE_FILESYSTEM _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
config_define_if_not(LIBCXX_ENABLE_FILESYSTEM _LIBCPP_HAS_NO_FILESYSTEM)
|
||||
config_define_if_not(LIBCXX_ENABLE_RANDOM_DEVICE _LIBCPP_HAS_NO_RANDOM_DEVICE)
|
||||
config_define_if_not(LIBCXX_ENABLE_LOCALIZATION _LIBCPP_HAS_NO_LOCALIZATION)
|
||||
config_define_if_not(LIBCXX_ENABLE_FSTREAM _LIBCPP_HAS_NO_FSTREAM)
|
||||
config_define_if_not(LIBCXX_ENABLE_UNICODE _LIBCPP_HAS_NO_UNICODE)
|
||||
config_define_if_not(LIBCXX_ENABLE_WIDE_CHARACTERS _LIBCPP_HAS_NO_WIDE_CHARACTERS)
|
||||
config_define_if_not(LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS)
|
||||
|
@ -1 +0,0 @@
|
||||
set(LIBCXX_ENABLE_FSTREAM OFF CACHE BOOL "")
|
@ -153,3 +153,11 @@ Build System Changes
|
||||
- Building libc++ and libc++abi for Apple platforms now requires targeting macOS 10.13 and later.
|
||||
This is relevant for vendors building the libc++ shared library and for folks statically linking
|
||||
libc++ into an application that has back-deployment requirements on Apple platforms.
|
||||
|
||||
- ``LIBCXX_ENABLE_FILESYSTEM`` now represents whether a filesystem is supported on the platform instead
|
||||
of representing merely whether ``<filesystem>`` should be provided. This means that vendors building
|
||||
with ``LIBCXX_ENABLE_FILESYSTEM=OFF`` will now also get ``<fstream>`` excluded from their configuration
|
||||
of the library.
|
||||
|
||||
- ``LIBCXX_ENABLE_FSTREAM`` is not supported anymore, please use ``LIBCXX_ENABLE_FILESYSTEM=OFF`` if your
|
||||
platform does not have support for a filesystem.
|
||||
|
@ -990,7 +990,7 @@ set(files
|
||||
wctype.h
|
||||
)
|
||||
|
||||
foreach(feature LIBCXX_ENABLE_FILESYSTEM LIBCXX_ENABLE_LOCALIZATION LIBCXX_ENABLE_FSTREAM LIBCXX_ENABLE_THREADS LIBCXX_ENABLE_WIDE_CHARACTERS)
|
||||
foreach(feature LIBCXX_ENABLE_FILESYSTEM LIBCXX_ENABLE_LOCALIZATION LIBCXX_ENABLE_THREADS LIBCXX_ENABLE_WIDE_CHARACTERS)
|
||||
if (NOT ${${feature}})
|
||||
set(requires_${feature} "requires LIBCXX_CONFIGURED_WITHOUT_SUPPORT_FOR_THIS_HEADER")
|
||||
endif()
|
||||
|
@ -24,10 +24,9 @@
|
||||
#cmakedefine _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
|
||||
#cmakedefine _LIBCPP_NO_VCRUNTIME
|
||||
#cmakedefine _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION @_LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION@
|
||||
#cmakedefine _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#cmakedefine _LIBCPP_HAS_NO_FILESYSTEM
|
||||
#cmakedefine _LIBCPP_HAS_NO_RANDOM_DEVICE
|
||||
#cmakedefine _LIBCPP_HAS_NO_LOCALIZATION
|
||||
#cmakedefine _LIBCPP_HAS_NO_FSTREAM
|
||||
#cmakedefine _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
#cmakedefine01 _LIBCPP_ENABLE_ASSERTIONS_DEFAULT
|
||||
#cmakedefine _LIBCPP_ENABLE_DEBUG_MODE
|
||||
|
@ -457,7 +457,7 @@ inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_direct
|
||||
// [fs.filesystem.syn]
|
||||
#include <compare>
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if defined(_LIBCPP_HAS_NO_FILESYSTEM)
|
||||
# error "The <filesystem> library is not supported since libc++ has been configured without support for a filesystem."
|
||||
#endif
|
||||
|
||||
|
@ -194,7 +194,7 @@ typedef basic_fstream<wchar_t> wfstream;
|
||||
#include <typeinfo>
|
||||
#include <version>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if !defined(_LIBCPP_HAS_NO_FILESYSTEM)
|
||||
# include <filesystem>
|
||||
#endif
|
||||
|
||||
@ -209,7 +209,7 @@ _LIBCPP_PUSH_MACROS
|
||||
# define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_FSTREAM)
|
||||
#if !defined(_LIBCPP_HAS_NO_FILESYSTEM)
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
@ -245,7 +245,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
basic_filebuf* open(const string& __s, ios_base::openmode __mode);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
basic_filebuf* open(const _VSTD_FS::path& __p, ios_base::openmode __mode) {
|
||||
return open(__p.c_str(), __mode);
|
||||
@ -1168,7 +1168,7 @@ public:
|
||||
#endif
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ifstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in)
|
||||
: basic_ifstream(__p.c_str(), __mode) {}
|
||||
@ -1189,7 +1189,7 @@ public:
|
||||
void open(const wchar_t* __s, ios_base::openmode __mode = ios_base::in);
|
||||
#endif
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p,
|
||||
ios_base::openmode __mode = ios_base::in) {
|
||||
@ -1369,7 +1369,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ofstream(const string& __s, ios_base::openmode __mode = ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_ofstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out)
|
||||
: basic_ofstream(__p.c_str(), __mode) {}
|
||||
@ -1392,7 +1392,7 @@ public:
|
||||
#endif
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out)
|
||||
{ return open(__p.c_str(), __mode); }
|
||||
@ -1570,7 +1570,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_fstream(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
explicit basic_fstream(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in | ios_base::out)
|
||||
: basic_fstream(__p.c_str(), __mode) {}
|
||||
@ -1595,7 +1595,7 @@ public:
|
||||
#endif
|
||||
_LIBCPP_HIDE_FROM_ABI void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM _LIBCPP_INLINE_VISIBILITY
|
||||
void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in|ios_base::out)
|
||||
{ return open(__p.c_str(), __mode); }
|
||||
@ -1745,7 +1745,7 @@ extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_filebuf<char>;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP_HAS_NO_FSTREAM
|
||||
#endif // _LIBCPP_HAS_NO_FILESYSTEM
|
||||
|
||||
_LIBCPP_POP_MACROS
|
||||
|
||||
|
@ -976,7 +976,7 @@ module std [system] {
|
||||
}
|
||||
module fstream {
|
||||
@requires_LIBCXX_ENABLE_LOCALIZATION@
|
||||
@requires_LIBCXX_ENABLE_FSTREAM@
|
||||
@requires_LIBCXX_ENABLE_FILESYSTEM@
|
||||
header "fstream"
|
||||
export *
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_stringstream<char>
|
||||
template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostringstream<char>;
|
||||
template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istringstream<char>;
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_FSTREAM
|
||||
#ifndef _LIBCPP_HAS_NO_FILESYSTEM
|
||||
template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ifstream<char>;
|
||||
template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ofstream<char>;
|
||||
template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_filebuf<char>;
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
#include <filesystem>
|
||||
#endif
|
||||
#include <forward_list>
|
||||
@ -61,7 +61,7 @@ static_assert(std::__iterator_traits_detail::__cpp17_bidirectional_iterator<std:
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_bidirectional_iterator<std::deque<int>::const_reverse_iterator>);
|
||||
|
||||
// <filesystem>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_bidirectional_iterator<std::filesystem::directory_iterator>);
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_bidirectional_iterator<std::filesystem::recursive_directory_iterator>);
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
#include <filesystem>
|
||||
#endif
|
||||
#include <forward_list>
|
||||
@ -61,7 +61,7 @@ static_assert(std::__iterator_traits_detail::__cpp17_forward_iterator<std::deque
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_forward_iterator<std::deque<int>::const_reverse_iterator>);
|
||||
|
||||
// <filesystem>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_forward_iterator<std::filesystem::directory_iterator>);
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_forward_iterator<std::filesystem::recursive_directory_iterator>);
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
#include <filesystem>
|
||||
#endif
|
||||
#include <forward_list>
|
||||
@ -61,7 +61,7 @@ static_assert(std::__iterator_traits_detail::__cpp17_input_iterator<std::deque<i
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_input_iterator<std::deque<int>::const_reverse_iterator>);
|
||||
|
||||
// <filesystem>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_input_iterator<std::filesystem::directory_iterator>);
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_input_iterator<std::filesystem::recursive_directory_iterator>);
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
#include <filesystem>
|
||||
#endif
|
||||
#include <forward_list>
|
||||
@ -61,7 +61,7 @@ static_assert(std::__iterator_traits_detail::__cpp17_iterator<std::deque<int>::r
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_iterator<std::deque<int>::const_reverse_iterator>);
|
||||
|
||||
// <filesystem>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_iterator<std::filesystem::directory_iterator>);
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_iterator<std::filesystem::recursive_directory_iterator>);
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
#include <filesystem>
|
||||
#endif
|
||||
#include <forward_list>
|
||||
@ -61,7 +61,7 @@ static_assert(std::__iterator_traits_detail::__cpp17_random_access_iterator<std:
|
||||
static_assert(std::__iterator_traits_detail::__cpp17_random_access_iterator<std::deque<int>::const_reverse_iterator>);
|
||||
|
||||
// <filesystem>
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_random_access_iterator<std::filesystem::directory_iterator>);
|
||||
static_assert(!std::__iterator_traits_detail::__cpp17_random_access_iterator<std::filesystem::recursive_directory_iterator>);
|
||||
#endif
|
||||
|
@ -2,5 +2,5 @@
|
||||
if "no-localization" in config.available_features:
|
||||
config.unsupported = True
|
||||
|
||||
if "no-fstream" in config.available_features:
|
||||
if "no-filesystem" in config.available_features:
|
||||
config.unsupported = True
|
||||
|
@ -17,7 +17,7 @@
|
||||
// basic_streambuf, but I can't seem to reproduce without going through one
|
||||
// of its derived classes.
|
||||
|
||||
// UNSUPPORTED: no-fstream
|
||||
// UNSUPPORTED: no-filesystem
|
||||
|
||||
#include <cassert>
|
||||
#include <cstddef>
|
||||
|
@ -40,7 +40,7 @@
|
||||
# include <istream>
|
||||
#endif
|
||||
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
# include <filesystem>
|
||||
#endif
|
||||
|
||||
@ -156,7 +156,7 @@ static_assert(testConst<std::cregex_iterator, std::forward_iterator_tag, std::cm
|
||||
static_assert(testConst<std::cregex_token_iterator, std::forward_iterator_tag, std::csub_match>());
|
||||
#endif // !TEST_HAS_NO_LOCALIZATION
|
||||
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(test<std::filesystem::directory_iterator, std::input_iterator_tag, std::filesystem::directory_entry,
|
||||
std::ptrdiff_t, const std::filesystem::directory_entry&, const std::filesystem::directory_entry*>());
|
||||
static_assert(test<std::filesystem::recursive_directory_iterator, std::input_iterator_tag,
|
||||
|
@ -88,7 +88,7 @@ int main(int, char**)
|
||||
}
|
||||
}
|
||||
// TODO: Move this to std::stringstream once https://llvm.org/PR59083 has been resolved
|
||||
#ifndef TEST_HAS_NO_FSTREAM
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
{
|
||||
{
|
||||
std::ofstream bs("overflow.dat");
|
||||
@ -113,7 +113,7 @@ int main(int, char**)
|
||||
}
|
||||
std::remove("overflow.dat");
|
||||
}
|
||||
#endif // TEST_HAS_NO_FSTREAM
|
||||
#endif // TEST_HAS_NO_FILESYSTEM
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@
|
||||
// XFAIL: no-wide-characters
|
||||
|
||||
// TODO: Avoid using <fstream> in this test.
|
||||
// XFAIL: no-fstream
|
||||
// XFAIL: no-filesystem
|
||||
|
||||
#include <locale>
|
||||
#include <codecvt>
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include "test_macros.h"
|
||||
#include "min_allocator.h"
|
||||
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
# include <filesystem>
|
||||
#endif
|
||||
#ifndef TEST_HAS_NO_LOCALIZATION
|
||||
@ -182,7 +182,7 @@ void test_P1636() {
|
||||
assert_is_not_formattable<std::bitset<42>, CharT>();
|
||||
assert_is_not_formattable<std::complex<double>, CharT>();
|
||||
assert_is_not_formattable<std::error_code, CharT>();
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
assert_is_not_formattable<std::filesystem::path, CharT>();
|
||||
#endif
|
||||
assert_is_not_formattable<std::shared_ptr<int>, CharT>();
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "test_macros.h"
|
||||
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
# include <filesystem>
|
||||
#endif
|
||||
|
||||
@ -67,7 +67,7 @@ struct recursive_range {
|
||||
static_assert(std::ranges::input_range<recursive_range>, "format_kind requires an input range");
|
||||
static_assert(std::format_kind<recursive_range> == std::range_format::disabled);
|
||||
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#ifndef TEST_HAS_NO_FILESYSTEM
|
||||
static_assert(std::format_kind<std::filesystem::path> == std::range_format::disabled);
|
||||
#endif
|
||||
|
||||
|
@ -386,12 +386,8 @@ inline void DoNotOptimize(Tp const& value) {
|
||||
# define TEST_HAS_NO_THREADS
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
# define TEST_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_FSTREAM)
|
||||
# define TEST_HAS_NO_FSTREAM
|
||||
#if defined(_LIBCPP_HAS_NO_FILESYSTEM)
|
||||
# define TEST_HAS_NO_FILESYSTEM
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_FGETPOS_FSETPOS)
|
||||
|
@ -575,24 +575,6 @@ steps:
|
||||
limit: 2
|
||||
timeout_in_minutes: 120
|
||||
|
||||
- label: "No fstream"
|
||||
command: "libcxx/utils/ci/run-buildbot generic-no-fstream"
|
||||
artifact_paths:
|
||||
- "**/test-results.xml"
|
||||
- "**/*.abilist"
|
||||
env:
|
||||
CC: "clang-${LLVM_HEAD_VERSION}"
|
||||
CXX: "clang++-${LLVM_HEAD_VERSION}"
|
||||
ENABLE_CLANG_TIDY: "On"
|
||||
agents:
|
||||
queue: "libcxx-builders"
|
||||
os: "linux"
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: -1 # Agent was lost
|
||||
limit: 2
|
||||
timeout_in_minutes: 120
|
||||
|
||||
- label: "No locale"
|
||||
command: "libcxx/utils/ci/run-buildbot generic-no-localization"
|
||||
artifact_paths:
|
||||
|
@ -409,11 +409,6 @@ generic-no-random_device)
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-random_device.cmake"
|
||||
check-runtimes
|
||||
;;
|
||||
generic-no-fstream)
|
||||
clean
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-fstream.cmake"
|
||||
check-runtimes
|
||||
;;
|
||||
generic-no-localization)
|
||||
clean
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-localization.cmake"
|
||||
|
@ -333,10 +333,9 @@ macros = {
|
||||
"_LIBCPP_HAS_THREAD_API_PTHREAD": "libcpp-has-thread-api-pthread",
|
||||
"_LIBCPP_NO_VCRUNTIME": "libcpp-no-vcruntime",
|
||||
"_LIBCPP_ABI_VERSION": "libcpp-abi-version",
|
||||
"_LIBCPP_HAS_NO_FILESYSTEM_LIBRARY": "no-filesystem",
|
||||
"_LIBCPP_HAS_NO_FILESYSTEM": "no-filesystem",
|
||||
"_LIBCPP_HAS_NO_RANDOM_DEVICE": "no-random-device",
|
||||
"_LIBCPP_HAS_NO_LOCALIZATION": "no-localization",
|
||||
"_LIBCPP_HAS_NO_FSTREAM": "no-fstream",
|
||||
"_LIBCPP_HAS_NO_WIDE_CHARACTERS": "no-wide-characters",
|
||||
"_LIBCPP_HAS_NO_UNICODE": "libcpp-has-no-unicode",
|
||||
"_LIBCPP_ENABLE_DEBUG_MODE": "libcpp-has-debug-mode",
|
||||
|
@ -36,7 +36,7 @@ lit_header_restrictions = {
|
||||
"experimental/utility": "// UNSUPPORTED: c++03",
|
||||
"experimental/vector": "// UNSUPPORTED: c++03",
|
||||
"filesystem": "// UNSUPPORTED: no-filesystem, c++03, c++11, c++14",
|
||||
"fstream": "// UNSUPPORTED: no-localization, no-fstream",
|
||||
"fstream": "// UNSUPPORTED: no-localization, no-filesystem",
|
||||
"future": "// UNSUPPORTED: no-threads, c++03",
|
||||
"iomanip": "// UNSUPPORTED: no-localization",
|
||||
"ios": "// UNSUPPORTED: no-localization",
|
||||
|
Loading…
x
Reference in New Issue
Block a user