summaryrefslogtreecommitdiffstats
path: root/src/corelib/configure.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/configure.cmake')
-rw-r--r--src/corelib/configure.cmake96
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)