diff options
Diffstat (limited to 'src/corelib/configure.cmake')
-rw-r--r-- | src/corelib/configure.cmake | 96 |
1 files changed, 94 insertions, 2 deletions
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 58329d3b8f..b34086c8ad 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -324,6 +324,37 @@ linkat(AT_FDCWD, \"foo\", AT_FDCWD, \"bar\", AT_SYMLINK_FOLLOW); } ") +# memmem +qt_config_compile_test(memmem + LABEL "memmem()" + CODE +#define _APPLE_SAUCE 1 /* Apple doesn't require anything */ +"#define _BSD_SOURCE 1 /* For FreeBSD */ +#define _GNU_SOURCE 1 /* For glibc, Bionic */ +#include <string.h> + +int main(void) +{ + const void *r = memmem(\"abc\", 3, \"bc\", 2); + (void)r; + return 0; +}") + +# memrchr +qt_config_compile_test(memrchr + LABEL "memrchr()" + CODE +"#define _BSD_SOURCE 1 /* For FreeBSD */ +#define _GNU_SOURCE 1 /* For glibc, Bionic */ +#include <string.h> + +int main(void) +{ + const void *r = memrchr(\"abc\", 'a', 3); + (void)r; + return 0; +}") + # ppoll qt_config_compile_test(ppoll LABEL "ppoll()" @@ -411,6 +442,53 @@ int main(void) } ") +# <stacktrace> +qt_config_compile_test(cxx23_stacktrace + LABEL "C++23 <stacktrace> support" + CODE +"#include <stacktrace> +#if !defined(__cpp_lib_stacktrace) +#error +#endif + +int main(void) +{ + /* BEGIN TEST: */ +const auto backtrace = std::stacktrace::current(); + /* END TEST: */ +} +" + CXX_STANDARD 23 +) + +# <future> +qt_config_compile_test(cxx_std_async_noncopyable + LABEL "std::async() NonCopyable" + CODE +"// Calling std::async with lambda which takes non-copyable argument causes compilation error on +// some platforms (VxWorks 24.03 and older with C++17-compatibility for example) +#include <future> + +class NonCopyable { +public: + NonCopyable(const NonCopyable&) = delete; + NonCopyable(NonCopyable&&) = default; + + NonCopyable(int value) + :value (value) + {} + + int value; +}; + +int main(int argc, char** argv) { + return std::async( + std::launch::deferred, + [](NonCopyable value) { return value.value; }, + NonCopyable(argc - 1)).get(); +} +") + #### Features qt_feature("clock-gettime" PRIVATE @@ -439,7 +517,7 @@ qt_feature("system-doubleconversion" PRIVATE ) qt_feature("cxx11_future" PUBLIC LABEL "C++11 <future>" - CONDITION NOT VXWORKS + CONDITION TEST_cxx_std_async_noncopyable ) qt_feature("cxx17_filesystem" PUBLIC LABEL "C++17 <filesystem>" @@ -507,6 +585,14 @@ qt_feature("std-atomic64" PUBLIC LABEL "64 bit atomic operations" CONDITION WrapAtomic_FOUND ) +qt_feature("memmem" PRIVATE + LABEL "C library function memmem()" + CONDITION TEST_memmem +) +qt_feature("memrchr" PRIVATE + LABEL "C library function memrchr()" + CONDITION TEST_memrchr +) qt_feature("mimetype" PUBLIC SECTION "Utilities" LABEL "Mimetype handling" @@ -600,6 +686,10 @@ qt_feature("backtrace" PRIVATE LABEL "backtrace" CONDITION UNIX AND QT_FEATURE_regularexpression AND WrapBacktrace_FOUND ) +qt_feature("cxx23_stacktrace" PRIVATE + LABEL "C++23 <stacktrace>" + CONDITION TEST_cxx23_stacktrace AND QT_FEATURE_cxx2b +) qt_feature("sharedmemory" PUBLIC SECTION "Kernel" LABEL "QSharedMemory" @@ -809,7 +899,8 @@ qt_feature("timezone_locale" PRIVATE SECTION "Utilities" LABEL "QTimeZone" PURPOSE "Provides support for localized time-zone display names." - DISABLE ON # Implementation is currently incomplete, so leave turned off + CONDITION + QT_FEATURE_timezone AND ( ( UNIX AND NOT APPLE AND NOT ANDROID ) OR QT_FEATURE_icu ) ) qt_feature("datetimeparser" PRIVATE SECTION "Utilities" @@ -876,6 +967,7 @@ qt_feature("openssl-hash" PRIVATE qt_configure_add_summary_section(NAME "Qt Core") qt_configure_add_summary_entry(ARGS "backtrace") +qt_configure_add_summary_entry(ARGS "cxx23_stacktrace") qt_configure_add_summary_entry(ARGS "doubleconversion") qt_configure_add_summary_entry(ARGS "system-doubleconversion") qt_configure_add_summary_entry(ARGS "forkfd_pidfd" CONDITION LINUX) |