CI linux: add clang++-11 C++20 (with LLVM libc++) build
* find-package-test fixed by passing CXX_FLAGS, i.e. -stdlib=libc++ * std::array usage in compile-test.cc replaced with plain array, because <array> header was not included
This commit is contained in:
parent
1dbadb6527
commit
b441532396
6
.github/workflows/linux.yml
vendored
6
.github/workflows/linux.yml
vendored
@ -38,6 +38,12 @@ jobs:
|
|||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 20
|
std: 20
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
- cxx: clang++-11
|
||||||
|
build_type: Debug
|
||||||
|
std: 20
|
||||||
|
cxxflags: -stdlib=libc++
|
||||||
|
os: ubuntu-20.04
|
||||||
|
install: sudo apt install libc++-11-dev libc++abi-11-dev
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -203,6 +203,7 @@ if (FMT_PEDANTIC AND NOT WIN32)
|
|||||||
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
||||||
--build-options
|
--build-options
|
||||||
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
|
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
|
||||||
|
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"
|
||||||
"-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"
|
"-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"
|
||||||
"-DFMT_DIR=${PROJECT_BINARY_DIR}"
|
"-DFMT_DIR=${PROJECT_BINARY_DIR}"
|
||||||
"-DPEDANTIC_COMPILE_FLAGS=${PEDANTIC_COMPILE_FLAGS}"
|
"-DPEDANTIC_COMPILE_FLAGS=${PEDANTIC_COMPILE_FLAGS}"
|
||||||
|
@ -323,15 +323,15 @@ TEST(CompileTest, CompileFormatStringLiteral) {
|
|||||||
(__cplusplus >= 201709L && FMT_GCC_VERSION >= 1002)
|
(__cplusplus >= 201709L && FMT_GCC_VERSION >= 1002)
|
||||||
template <size_t max_string_length, typename Char = char> struct test_string {
|
template <size_t max_string_length, typename Char = char> struct test_string {
|
||||||
template <typename T> constexpr bool operator==(const T& rhs) const noexcept {
|
template <typename T> constexpr bool operator==(const T& rhs) const noexcept {
|
||||||
return fmt::basic_string_view<Char>(rhs).compare(buffer.data()) == 0;
|
return fmt::basic_string_view<Char>(rhs).compare(buffer) == 0;
|
||||||
}
|
}
|
||||||
std::array<Char, max_string_length> buffer{};
|
Char buffer[max_string_length]{};
|
||||||
};
|
};
|
||||||
|
|
||||||
template <size_t max_string_length, typename Char = char, typename... Args>
|
template <size_t max_string_length, typename Char = char, typename... Args>
|
||||||
consteval auto test_format(auto format, const Args&... args) {
|
consteval auto test_format(auto format, const Args&... args) {
|
||||||
test_string<max_string_length, Char> string{};
|
test_string<max_string_length, Char> string{};
|
||||||
fmt::format_to(string.buffer.data(), format, args...);
|
fmt::format_to(string.buffer, format, args...);
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user