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.cmake218
1 files changed, 50 insertions, 168 deletions
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake
index d84a52132e..80e6d93193 100644
--- a/src/corelib/configure.cmake
+++ b/src/corelib/configure.cmake
@@ -98,6 +98,18 @@ clock_gettime(CLOCK_MONOTONIC, &ts);
}
")
+# close_range
+qt_config_compile_test(close_range
+ LABEL "close_range()"
+ CODE
+"#include <unistd.h>
+
+int main()
+{
+ return close_range(3, 1024, 0) != 0;
+}
+")
+
# cloexec
qt_config_compile_test(cloexec
LABEL "O_CLOEXEC"
@@ -125,44 +137,6 @@ int pipes[2];
}
")
-# special case begin
-# cxx11_future
-if (UNIX AND NOT ANDROID AND NOT QNX AND NOT INTEGRITY)
- set(cxx11_future_TEST_LIBRARIES pthread)
-endif()
-qt_config_compile_test(cxx11_future
- LABEL "C++11 <future>"
- LIBRARIES
- "${cxx11_future_TEST_LIBRARIES}"
- CODE
-"#include <future>
-
-int main(void)
-{
- /* BEGIN TEST: */
-std::future<int> f = std::async([]() { return 42; });
-(void)f.get();
- /* END TEST: */
- return 0;
-}
-")
-# special case end
-
-# cxx11_random
-qt_config_compile_test(cxx11_random
- LABEL "C++11 <random>"
- CODE
-"#include <random>
-
-int main(void)
-{
- /* BEGIN TEST: */
-std::mt19937 mt(0);
- /* END TEST: */
- return 0;
-}
-")
-
# cxx17_filesystem
qt_config_compile_test(cxx17_filesystem
LABEL "C++17 <filesystem>"
@@ -198,24 +172,6 @@ int main(void)
}"
)
-# eventfd
-qt_config_compile_test(eventfd
- LABEL "eventfd"
- CODE
-"#include <sys/eventfd.h>
-
-int main(void)
-{
- /* BEGIN TEST: */
-eventfd_t value;
-int fd = eventfd(0, EFD_CLOEXEC);
-eventfd_read(fd, &value);
-eventfd_write(fd, value);
- /* END TEST: */
- return 0;
-}
-")
-
# futimens
qt_config_compile_test(futimens
LABEL "futimens()"
@@ -265,21 +221,6 @@ char buf[32];
}
")
-# glibc
-qt_config_compile_test(glibc
- LABEL "GNU libc"
- CODE
-"#include <stdlib.h>
-
-int main(void)
-{
- /* BEGIN TEST: */
-return __GLIBC__;
- /* END TEST: */
- return 0;
-}
-")
-
# inotify
qt_config_compile_test(inotify
LABEL "inotify"
@@ -455,44 +396,6 @@ renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEO
}
")
-# statx
-qt_config_compile_test(statx
- LABEL "statx() in libc"
- CODE
-"#define _ATFILE_SOURCE 1
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-int main(void)
-{
- /* BEGIN TEST: */
-struct statx statxbuf;
-unsigned int mask = STATX_BASIC_STATS;
-return statx(AT_FDCWD, \"\", AT_STATX_SYNC_AS_STAT, mask, &statxbuf);
- /* END TEST: */
- return 0;
-}
-")
-
-# syslog
-qt_config_compile_test(syslog
- LABEL "syslog"
- CODE
-"#include <syslog.h>
-
-int main(void)
-{
- /* BEGIN TEST: */
-openlog(\"qt\", 0, LOG_USER);
-syslog(LOG_INFO, \"configure\");
-closelog();
- /* END TEST: */
- return 0;
-}
-")
-
# cpp_winrt
qt_config_compile_test(cpp_winrt
LABEL "cpp/winrt"
@@ -508,40 +411,25 @@ int main(void)
}
")
-# xlocalescanprint
-qt_config_compile_test(xlocalescanprint
- LABEL "xlocale.h (or equivalents)"
+# <stacktrace>
+qt_config_compile_test(cxx23_stacktrace
+ LABEL "C++23 <stacktrace> support"
CODE
-"#define QT_BEGIN_NAMESPACE
-#define QT_END_NAMESPACE
-
-#ifdef _MSVC_VER
-#define Q_CC_MSVC _MSVC_VER
+"#include <stacktrace>
+#if !defined(__cpp_lib_stacktrace)
+#error
#endif
-#define QT_NO_DOUBLECONVERSION
-
-#include QDSP_P_H
-
int main(void)
{
/* BEGIN TEST: */
-#ifdef _MSVC_VER
-_locale_t invalidLocale = NULL;
-#else
-locale_t invalidLocale = NULL;
-#endif
-double a = 3.4;
-qDoubleSnprintf(argv[0], 1, invalidLocale, \"invalid format\", a);
-qDoubleSscanf(argv[0], invalidLocale, \"invalid format\", &a, &argc);
+const auto backtrace = std::stacktrace::current();
/* END TEST: */
- return 0;
}
-"# FIXME: qmake: DEFINES += QDSP_P_H=$$shell_quote(\"@PWD@/text/qdoublescanprint_p.h\")
+"
+ CXX_STANDARD 23
)
-
-
#### Features
qt_feature("clock-gettime" PRIVATE
@@ -553,6 +441,11 @@ qt_feature("clock-monotonic" PUBLIC
CONDITION QT_FEATURE_clock_gettime AND TEST_clock_monotonic
)
qt_feature_definition("clock-monotonic" "QT_NO_CLOCK_MONOTONIC" NEGATE VALUE "1")
+qt_feature("close_range" PRIVATE
+ LABEL "close_range()"
+ CONDITION QT_FEATURE_process AND TEST_close_range
+ AUTODETECT UNIX
+)
qt_feature("doubleconversion" PRIVATE
LABEL "DoubleConversion"
)
@@ -565,7 +458,7 @@ qt_feature("system-doubleconversion" PRIVATE
)
qt_feature("cxx11_future" PUBLIC
LABEL "C++11 <future>"
- CONDITION TEST_cxx11_future
+ CONDITION NOT VXWORKS
)
qt_feature("cxx17_filesystem" PUBLIC
LABEL "C++17 <filesystem>"
@@ -575,11 +468,6 @@ qt_feature("dladdr" PRIVATE
LABEL "dladdr"
CONDITION QT_FEATURE_dlopen AND TEST_dladdr
)
-qt_feature("eventfd" PUBLIC
- LABEL "eventfd"
- CONDITION NOT WASM AND TEST_eventfd
-)
-qt_feature_definition("eventfd" "QT_NO_EVENTFD" NEGATE VALUE "1")
qt_feature("futimens" PRIVATE
LABEL "futimens()"
CONDITION NOT WIN32 AND TEST_futimens
@@ -598,11 +486,6 @@ qt_feature("glib" PUBLIC PRIVATE
CONDITION GLIB2_FOUND
)
qt_feature_definition("glib" "QT_NO_GLIB" NEGATE VALUE "1")
-qt_feature("glibc" PRIVATE
- LABEL "GNU libc"
- AUTODETECT ( LINUX OR HURD )
- CONDITION TEST_glibc
-)
qt_feature("icu" PRIVATE
LABEL "ICU"
AUTODETECT NOT WIN32
@@ -617,7 +500,7 @@ qt_feature("ipc_posix"
LABEL "Defaulting legacy IPC to POSIX"
CONDITION TEST_posix_shm AND TEST_posix_sem AND (
FEATURE_ipc_posix OR (APPLE AND QT_FEATURE_appstore_compliant)
- OR NOT (TEST_sysv_shm AND TEST_sysv_sem)
+ OR NOT TEST_sysv_shm OR NOT TEST_sysv_sem
)
)
qt_feature_definition("ipc_posix" "QT_POSIX_IPC")
@@ -688,7 +571,7 @@ qt_feature("poll_select" PRIVATE
qt_feature_definition("poll_select" "QT_NO_NATIVE_POLL")
qt_feature("posix_sem" PRIVATE
LABEL "POSIX semaphores"
- CONDITION TEST_posix_sem
+ CONDITION TEST_posix_sem AND QT_FEATURE_systemsemaphore
)
qt_feature("posix_shm" PRIVATE
LABEL "POSIX shared memory"
@@ -707,18 +590,13 @@ qt_feature("slog2" PRIVATE
LABEL "slog2"
CONDITION Slog2_FOUND
)
-qt_feature("statx" PRIVATE
- LABEL "statx() in libc"
- CONDITION ( LINUX OR HURD ) AND TEST_statx
-)
qt_feature("syslog" PRIVATE
LABEL "syslog"
AUTODETECT OFF
- CONDITION TEST_syslog
)
qt_feature("sysv_sem" PRIVATE
LABEL "System V / XSI semaphores"
- CONDITION TEST_sysv_sem
+ CONDITION TEST_sysv_sem AND QT_FEATURE_systemsemaphore
)
qt_feature("sysv_shm" PRIVATE
LABEL "System V / XSI shared memory"
@@ -741,6 +619,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"
@@ -772,21 +654,18 @@ qt_feature("cpp-winrt" PRIVATE PUBLIC
AUTODETECT WIN32
CONDITION WIN32 AND TEST_cpp_winrt
)
-qt_feature_definition("xmlstream" "QT_NO_XMLSTREAM" NEGATE VALUE "1")
qt_feature("xmlstreamreader" PUBLIC
SECTION "Kernel"
LABEL "QXmlStreamReader"
PURPOSE "Provides a well-formed XML parser with a simple streaming API."
CONDITION QT_FEATURE_xmlstream
)
-qt_feature_definition("xmlstreamreader" "QT_NO_XMLSTREAMREADER" NEGATE VALUE "1")
qt_feature("xmlstreamwriter" PUBLIC
SECTION "Kernel"
LABEL "QXmlStreamWriter"
PURPOSE "Provides a XML writer with a simple streaming API."
CONDITION QT_FEATURE_xmlstream
)
-qt_feature_definition("xmlstreamwriter" "QT_NO_XMLSTREAMWRITER" NEGATE VALUE "1")
qt_feature("textdate" PUBLIC
SECTION "Data structures"
LABEL "Text Date"
@@ -829,7 +708,7 @@ qt_feature("library" PUBLIC
SECTION "File I/O"
LABEL "QLibrary"
PURPOSE "Provides a wrapper for dynamically loaded libraries."
- CONDITION WIN32 OR HPUX OR ( NOT NACL AND QT_FEATURE_dlopen )
+ CONDITION WIN32 OR HPUX OR QT_FEATURE_dlopen
)
qt_feature_definition("library" "QT_NO_LIBRARY" NEGATE VALUE "1")
qt_feature("settings" PUBLIC
@@ -947,7 +826,13 @@ qt_feature("timezone" PUBLIC
SECTION "Utilities"
LABEL "QTimeZone"
PURPOSE "Provides support for time-zone handling."
- CONDITION NOT WASM
+ CONDITION NOT WASM AND NOT VXWORKS
+)
+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
)
qt_feature("datetimeparser" PRIVATE
SECTION "Utilities"
@@ -1004,11 +889,17 @@ qt_feature("permissions" PUBLIC
SECTION "Utilities"
LABEL "Application permissions"
PURPOSE "Provides support for requesting user permission to access restricted data or APIs"
- CONDITION APPLE OR ANDROID OR WASM
+)
+qt_feature("openssl-hash" PRIVATE
+ LABEL "OpenSSL based cryptographic hash"
+ AUTODETECT OFF
+ CONDITION QT_FEATURE_openssl_linked AND QT_FEATURE_opensslv30
+ PURPOSE "Uses OpenSSL based implementation of cryptographic hash algorithms."
)
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)
@@ -1023,6 +914,7 @@ qt_configure_add_summary_entry(
ARGS "etw lttng ctf"
MESSAGE "Tracing backend"
)
+qt_configure_add_summary_entry(ARGS "openssl-hash")
qt_configure_add_summary_section(NAME "Logging backends")
qt_configure_add_summary_entry(ARGS "journald")
qt_configure_add_summary_entry(ARGS "syslog")
@@ -1042,16 +934,6 @@ qt_configure_add_report_entry(
)
qt_configure_add_report_entry(
TYPE ERROR
- MESSAGE "C++11 <random> is required and is missing or failed to compile."
- CONDITION NOT TEST_cxx11_random
-)
-qt_configure_add_report_entry(
- TYPE ERROR
- MESSAGE "Your C library does not provide sscanf_l or snprintf_l. You need to use libdouble-conversion for double/string conversion."
- CONDITION INPUT_doubleconversion STREQUAL 'no' AND NOT TEST_xlocalescanprint
-)
-qt_configure_add_report_entry(
- TYPE ERROR
MESSAGE "detected a std::atomic implementation that fails for function pointers. Please apply the patch corresponding to your Standard Library vendor, found in qtbase/config.tests/atomicfptr"
CONDITION NOT TEST_atomicfptr
)