diff --git a/doc/building.dox b/doc/building.dox index bcc11f585..a3ece2914 100644 --- a/doc/building.dox +++ b/doc/building.dox @@ -38,8 +38,9 @@ namespace Magnum { Minimal set of tools and libraries required for building is: - C++ compiler with good C++11 support. Compilers which are tested to have - everything needed are **GCC** >= 4.8.1, **Clang** >= 3.3 and **MSVC** - >= 2015. On Windows you can also use **Clang-CL** or **MinGW-w64**. + everything needed are **GCC** >= 4.8.1, **Clang** >= 6 (or equivalently + **Apple Clang** >= 10) and **MSVC** >= 2015. On Windows you can also use + **Clang-CL** or **MinGW-w64**. - **CMake** >= 3.4 - **Corrade** --- Plugin management and utility library. See @ref building-corrade "Corrade download and installation guide" for more diff --git a/doc/changelog.dox b/doc/changelog.dox index dfa11c6ff..be6643a91 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -569,6 +569,9 @@ See also: @subsection changelog-latest-buildsystem Build system +- The oldest supported Clang version is now 6.0 (available on Ubuntu 18.04), + or equivalently Apple Clang 10.0 (Xcode 10). Oldest supported GCC version + is still 4.8. - Fixed compilation of the @ref GL library on macOS with ANGLE --- new code assumed macOS is always desktop GL (see [mosra/magnum#452](https://github.com/mosra/magnum/issues/452)) - Avoiding conflicts of Magnum's own GL headers with `GLES3/gl32.h` (see diff --git a/src/Magnum/ShaderTools/AbstractConverter.cpp b/src/Magnum/ShaderTools/AbstractConverter.cpp index b3f0c49b6..54b527bd9 100644 --- a/src/Magnum/ShaderTools/AbstractConverter.cpp +++ b/src/Magnum/ShaderTools/AbstractConverter.cpp @@ -287,7 +287,7 @@ AbstractConverter::convertDataToData(const Stage stage, const Containers::ArrayV CORRADE_ASSERT(!out || !out->deleter(), "ShaderTools::AbstractConverter::convertDataToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::OptionalButAlsoArray{std::move(out)}; #else @@ -435,7 +435,7 @@ AbstractConverter::convertFileToData(const Stage stage, const Containers::String CORRADE_ASSERT(!out || !out->deleter(), "ShaderTools::AbstractConverter::convertFileToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::OptionalButAlsoArray{std::move(out)}; #else @@ -479,7 +479,7 @@ AbstractConverter::linkDataToData(const Containers::ArrayViewdeleter(), "ShaderTools::AbstractConverter::linkDataToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::OptionalButAlsoArray{std::move(out)}; #else @@ -693,7 +693,7 @@ AbstractConverter::linkFilesToData(const Containers::ArrayViewdeleter(), "ShaderTools::AbstractConverter::linkFilesToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::OptionalButAlsoArray{std::move(out)}; #else diff --git a/src/Magnum/Trade/AbstractImageConverter.cpp b/src/Magnum/Trade/AbstractImageConverter.cpp index bfcc85b76..e21af8147 100644 --- a/src/Magnum/Trade/AbstractImageConverter.cpp +++ b/src/Magnum/Trade/AbstractImageConverter.cpp @@ -308,7 +308,7 @@ AbstractImageConverter::convertToData(const ImageView1D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -341,7 +341,7 @@ AbstractImageConverter::convertToData(const ImageView2D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -381,7 +381,7 @@ AbstractImageConverter::convertToData(const ImageView3D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -414,7 +414,7 @@ AbstractImageConverter::convertToData(const CompressedImageView1D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -447,7 +447,7 @@ AbstractImageConverter::convertToData(const CompressedImageView2D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -487,7 +487,7 @@ AbstractImageConverter::convertToData(const CompressedImageView3D& image) { Containers::Optional> out = doConvertToData(image); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -603,7 +603,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -642,7 +642,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -681,7 +681,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -720,7 +720,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -759,7 +759,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else @@ -798,7 +798,7 @@ AbstractImageConverter::convertToData(const Containers::ArrayView> out = doConvertToData(imageLevels); CORRADE_ASSERT(!out || !out->deleter(), "Trade::AbstractImageConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::ImageConverterOptionalButAlsoArray{std::move(out)}; #else diff --git a/src/Magnum/Trade/AbstractSceneConverter.cpp b/src/Magnum/Trade/AbstractSceneConverter.cpp index b4c795855..309ab7807 100644 --- a/src/Magnum/Trade/AbstractSceneConverter.cpp +++ b/src/Magnum/Trade/AbstractSceneConverter.cpp @@ -163,7 +163,7 @@ AbstractSceneConverter::convertToData(const MeshData& mesh) { CORRADE_ASSERT(!out || !out->deleter() || out->deleter() == static_cast(Implementation::nonOwnedArrayDeleter) || out->deleter() == ArrayAllocator::deleter, "Trade::AbstractSceneConverter::convertToData(): implementation is not allowed to use a custom Array deleter", {}); - /* GCC 4.8 and Clang 3.8 need an explicit conversion here */ + /* GCC 4.8 needs an explicit conversion here */ #ifdef MAGNUM_BUILD_DEPRECATED return Implementation::SceneConverterOptionalButAlsoArray{std::move(out)}; #else diff --git a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp index 6c2a2e287..06761c6c9 100644 --- a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp +++ b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp @@ -516,7 +516,7 @@ void AbstractSceneConverterTest::convertMeshToDataGrowableDeleter() { Containers::Array out; Containers::arrayAppend(out, {'h', 'e', 'l', 'l', 'o'}); - /* GCC 4.8 and Clang 3.8 need extra help here */ + /* GCC 4.8 needs extra help here */ return Containers::optional(std::move(out)); } } converter; diff --git a/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp b/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp index 258df9f43..2a9863fb8 100644 --- a/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp +++ b/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp @@ -86,7 +86,7 @@ Containers::Optional> TgaImageConverter::doConvertToData pixel = Math::gather<'b', 'g', 'r', 'a'>(pixel); } - /* GCC 4.8 and Clang 3.8 need extra help here */ + /* GCC 4.8 needs extra help here */ return Containers::optional(std::move(data)); }