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.cmake433
1 files changed, 180 insertions, 253 deletions
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake
index 08d1e0d976..58329d3b8f 100644
--- a/src/corelib/configure.cmake
+++ b/src/corelib/configure.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
#### Inputs
@@ -14,12 +17,18 @@ set_property(CACHE INPUT_libb2 PROPERTY STRINGS undefined no qt system)
#### Libraries
-if((UNIX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+if((UNIX AND NOT QNX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ # QNX's libbacktrace has an API wholly different from all the other Unix
+ # offerings
qt_find_package(WrapBacktrace PROVIDED_TARGETS WrapBacktrace::WrapBacktrace MODULE_NAME core QMAKE_LIB backtrace)
endif()
-qt_find_package(WrapDoubleConversion PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion MODULE_NAME core QMAKE_LIB doubleconversion)
+qt_find_package(WrapSystemDoubleConversion
+ PROVIDED_TARGETS WrapSystemDoubleConversion::WrapSystemDoubleConversion
+ MODULE_NAME core QMAKE_LIB doubleconversion)
qt_find_package(GLIB2 PROVIDED_TARGETS GLIB2::GLIB2 MODULE_NAME core QMAKE_LIB glib)
-qt_find_package(ICU COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data MODULE_NAME core QMAKE_LIB icu)
+qt_find_package(ICU 50.1 COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data
+ MODULE_NAME core QMAKE_LIB icu)
+
if(QT_FEATURE_dlopen)
qt_add_qmake_lib_dependency(icu libdl)
endif()
@@ -27,8 +36,6 @@ qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd MODULE_NAME co
qt_find_package(WrapAtomic PROVIDED_TARGETS WrapAtomic::WrapAtomic MODULE_NAME core QMAKE_LIB libatomic)
qt_find_package(Libb2 PROVIDED_TARGETS Libb2::Libb2 MODULE_NAME core QMAKE_LIB libb2)
qt_find_package(WrapRt PROVIDED_TARGETS WrapRt::WrapRt MODULE_NAME core QMAKE_LIB librt)
-qt_find_package(LTTngUST PROVIDED_TARGETS LTTng::UST MODULE_NAME core QMAKE_LIB lttng-ust)
-qt_add_qmake_lib_dependency(lttng-ust libdl)
qt_find_package(WrapSystemPCRE2 10.20 PROVIDED_TARGETS WrapSystemPCRE2::WrapSystemPCRE2 MODULE_NAME core QMAKE_LIB pcre2)
set_package_properties(WrapPCRE2 PROPERTIES TYPE REQUIRED)
if((QNX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
@@ -91,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"
@@ -118,66 +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_bm_searcher
-qt_config_compile_test(cxx17_bm_searcher
- LABEL "C++17 boyer_moore_searcher"
- CODE
-"#include <algorithm>
-#include <functional>
-
-int main(void)
-{
- /* BEGIN TEST: */
-const char haystack[] = \"hello\";
-const char needle[] = \"e\";
-const auto it =
-std::search(haystack + 0, haystack + std::size(haystack),
-std::boyer_moore_searcher(needle + 0, needle + std::size(needle)));
-(void)it;
- /* END TEST: */
- return 0;
-}
-"# FIXME: qmake: CONFIG += c++17
-)
-
# cxx17_filesystem
qt_config_compile_test(cxx17_filesystem
LABEL "C++17 <filesystem>"
@@ -193,26 +152,25 @@ std::filesystem::copy(
/* END TEST: */
return 0;
}
-"# FIXME: qmake: CONFIG += c++17
+"
)
-# eventfd
-qt_config_compile_test(eventfd
- LABEL "eventfd"
+# dladdr
+qt_config_compile_test(dladdr
+ LABEL "dladdr"
+ LIBRARIES
+ dl
CODE
-"#include <sys/eventfd.h>
-
+"#define _GNU_SOURCE 1
+#include <dlfcn.h>
+int i = 0;
int main(void)
{
- /* BEGIN TEST: */
-eventfd_t value;
-int fd = eventfd(0, EFD_CLOEXEC);
-eventfd_read(fd, &value);
-eventfd_write(fd, value);
- /* END TEST: */
+ Dl_info info;
+ dladdr(&i, &info);
return 0;
-}
-")
+}"
+)
# futimens
qt_config_compile_test(futimens
@@ -227,22 +185,6 @@ futimens(-1, 0);
/* END TEST: */
return 0;
}
-"# FIXME: qmake: ["# Block futimens() on Apple platforms unless it's available on ALL", '# deployment targets. This simplifies the logic at the call site', "# dramatically, as it isn't strictly needed compared to futimes().", 'darwin: QMAKE_CXXFLAGS += -Werror=unguarded-availability -Werror=unguarded-availability-new', 'CONFIG += warn_on']
-)
-
-# futimes
-qt_config_compile_test(futimes
- LABEL "futimes()"
- CODE
-"#include <sys/time.h>
-
-int main(void)
-{
- /* BEGIN TEST: */
-futimes(-1, 0);
- /* END TEST: */
- return 0;
-}
")
# getauxval
@@ -265,6 +207,9 @@ qt_config_compile_test(getentropy
LABEL "getentropy()"
CODE
"#include <unistd.h>
+#if __has_include(<sys/random.h>)
+# include <sys/random.h>
+#endif
int main(void)
{
@@ -276,81 +221,88 @@ char buf[32];
}
")
-# glibc
-qt_config_compile_test(glibc
- LABEL "GNU libc"
+# inotify
+qt_config_compile_test(inotify
+ LABEL "inotify"
CODE
-"#include <stdlib.h>
+"#include <sys/inotify.h>
int main(void)
{
/* BEGIN TEST: */
-return __GLIBC__;
+inotify_init();
+inotify_add_watch(0, \"foobar\", IN_ACCESS);
+inotify_rm_watch(0, 1);
/* END TEST: */
return 0;
}
")
-# inotify
-qt_config_compile_test(inotify
- LABEL "inotify"
+qt_config_compile_test(sysv_shm
+ LABEL "System V/XSI shared memory"
CODE
-"#include <sys/inotify.h>
+"#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <fcntl.h>
int main(void)
{
- /* BEGIN TEST: */
-inotify_init();
-inotify_add_watch(0, \"foobar\", IN_ACCESS);
-inotify_rm_watch(0, 1);
- /* END TEST: */
+ key_t unix_key = ftok(\"test\", 'Q');
+ shmget(unix_key, 0, 0666 | IPC_CREAT | IPC_EXCL);
+ shmctl(0, 0, (struct shmid_ds *)(0));
return 0;
}
")
-# ipc_sysv
-qt_config_compile_test(ipc_sysv
- LABEL "SysV IPC"
+qt_config_compile_test(sysv_sem
+ LABEL "System V/XSI semaphores"
CODE
"#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
-#include <sys/shm.h>
#include <fcntl.h>
int main(void)
{
- /* BEGIN TEST: */
-key_t unix_key = ftok(\"test\", 'Q');
-semctl(semget(unix_key, 1, 0666 | IPC_CREAT | IPC_EXCL), 0, IPC_RMID, 0);
-shmget(unix_key, 0, 0666 | IPC_CREAT | IPC_EXCL);
-shmctl(0, 0, (struct shmid_ds *)(0));
- /* END TEST: */
+ key_t unix_key = ftok(\"test\", 'Q');
+ semctl(semget(unix_key, 1, 0666 | IPC_CREAT | IPC_EXCL), 0, IPC_RMID, 0);
return 0;
}
")
-# ipc_posix
if (LINUX)
- set(ipc_posix_TEST_LIBRARIES pthread rt)
+ set(ipc_posix_TEST_LIBRARIES pthread WrapRt::WrapRt)
endif()
-qt_config_compile_test(ipc_posix
- LABEL "POSIX IPC"
+qt_config_compile_test(posix_shm
+ LABEL "POSIX shared memory"
LIBRARIES
"${ipc_posix_TEST_LIBRARIES}"
CODE
"#include <sys/types.h>
#include <sys/mman.h>
+#include <fcntl.h>
+
+int main(void)
+{
+ shm_open(\"test\", O_RDWR | O_CREAT | O_EXCL, 0666);
+ shm_unlink(\"test\");
+ return 0;
+}
+")
+
+qt_config_compile_test(posix_sem
+ LABEL "POSIX semaphores"
+ LIBRARIES
+ "${ipc_posix_TEST_LIBRARIES}"
+ CODE
+"#include <sys/types.h>
#include <semaphore.h>
#include <fcntl.h>
int main(void)
{
- /* BEGIN TEST: */
-sem_close(sem_open(\"test\", O_CREAT | O_EXCL, 0666, 0));
-shm_open(\"test\", O_RDWR | O_CREAT | O_EXCL, 0666);
-shm_unlink(\"test\");
- /* END TEST: */
+ sem_close(sem_open(\"test\", O_CREAT | O_EXCL, 0666, 0));
return 0;
}
")
@@ -435,7 +387,7 @@ qt_config_compile_test(renameat2
#include <fcntl.h>
#include <stdio.h>
-int main(void)
+int main(int, char **argv)
{
/* BEGIN TEST: */
renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
@@ -444,78 +396,21 @@ 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"
+# cpp_winrt
+qt_config_compile_test(cpp_winrt
+ LABEL "cpp/winrt"
+ LIBRARIES
+ runtimeobject
CODE
-"#include <syslog.h>
+"// Including winrt/base.h causes an error in some configurations (Windows 10 SDK + c++20)
+# include <winrt/base.h>
int main(void)
{
- /* BEGIN TEST: */
-openlog(\"qt\", 0, LOG_USER);
-syslog(LOG_INFO, \"configure\");
-closelog();
- /* END TEST: */
return 0;
}
")
-# xlocalescanprint
-qt_config_compile_test(xlocalescanprint
- LABEL "xlocale.h (or equivalents)"
- CODE
-"#define QT_BEGIN_NAMESPACE
-#define QT_END_NAMESPACE
-
-#ifdef _MSVC_VER
-#define Q_CC_MSVC _MSVC_VER
-#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);
- /* END TEST: */
- return 0;
-}
-"# FIXME: qmake: DEFINES += QDSP_P_H=$$shell_quote(\"@PWD@/text/qdoublescanprint_p.h\")
-)
-
-
-
#### Features
qt_feature("clock-gettime" PRIVATE
@@ -527,41 +422,37 @@ 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("doubleconversion" PUBLIC PRIVATE
+qt_feature("close_range" PRIVATE
+ LABEL "close_range()"
+ CONDITION QT_FEATURE_process AND TEST_close_range
+ AUTODETECT UNIX
+)
+qt_feature("doubleconversion" PRIVATE
LABEL "DoubleConversion"
)
qt_feature_definition("doubleconversion" "QT_NO_DOUBLECONVERSION" NEGATE VALUE "1")
qt_feature("system-doubleconversion" PRIVATE
LABEL " Using system DoubleConversion"
- CONDITION QT_FEATURE_doubleconversion AND WrapDoubleConversion_FOUND
+ CONDITION QT_FEATURE_doubleconversion AND WrapSystemDoubleConversion_FOUND
ENABLE INPUT_doubleconversion STREQUAL 'system'
DISABLE INPUT_doubleconversion STREQUAL 'qt'
)
qt_feature("cxx11_future" PUBLIC
LABEL "C++11 <future>"
- CONDITION TEST_cxx11_future
-)
-qt_feature("cxx17_bm_searcher" PRIVATE
- LABEL "C++17 boyer_moore_searcher"
- CONDITION TEST_cxx17_bm_searcher
+ CONDITION NOT VXWORKS
)
qt_feature("cxx17_filesystem" PUBLIC
LABEL "C++17 <filesystem>"
CONDITION TEST_cxx17_filesystem
)
-qt_feature("eventfd" PUBLIC
- LABEL "eventfd"
- CONDITION NOT WASM AND TEST_eventfd
+qt_feature("dladdr" PRIVATE
+ LABEL "dladdr"
+ CONDITION QT_FEATURE_dlopen AND TEST_dladdr
)
-qt_feature_definition("eventfd" "QT_NO_EVENTFD" NEGATE VALUE "1")
qt_feature("futimens" PRIVATE
LABEL "futimens()"
CONDITION NOT WIN32 AND TEST_futimens
)
-qt_feature("futimes" PRIVATE
- LABEL "futimes()"
- CONDITION NOT WIN32 AND NOT QT_FEATURE_futimens AND TEST_futimes
-)
qt_feature("getauxval" PRIVATE
LABEL "getauxval()"
CONDITION LINUX AND TEST_getauxval
@@ -576,11 +467,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
- CONDITION TEST_glibc
-)
qt_feature("icu" PRIVATE
LABEL "ICU"
AUTODETECT NOT WIN32
@@ -592,9 +478,11 @@ qt_feature("inotify" PUBLIC PRIVATE
)
qt_feature_definition("inotify" "QT_NO_INOTIFY" NEGATE VALUE "1")
qt_feature("ipc_posix"
- LABEL "Using POSIX IPC"
- AUTODETECT NOT WIN32 AND ( ( APPLE AND QT_FEATURE_appstore_compliant ) OR NOT TEST_ipc_sysv )
- CONDITION TEST_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 OR NOT TEST_sysv_sem
+ )
)
qt_feature_definition("ipc_posix" "QT_POSIX_IPC")
qt_feature("journald" PRIVATE
@@ -612,7 +500,7 @@ qt_feature("system-libb2" PRIVATE
# Currently only used by QTemporaryFile; linkat() exists on Android, but hardlink creation fails due to security rules
qt_feature("linkat" PRIVATE
LABEL "linkat()"
- AUTODETECT LINUX AND NOT ANDROID
+ AUTODETECT ( LINUX AND NOT ANDROID ) OR HURD
CONDITION TEST_linkat
)
qt_feature("std-atomic64" PUBLIC
@@ -662,6 +550,14 @@ qt_feature("poll_select" PRIVATE
EMIT_IF NOT WIN32
)
qt_feature_definition("poll_select" "QT_NO_NATIVE_POLL")
+qt_feature("posix_sem" PRIVATE
+ LABEL "POSIX semaphores"
+ CONDITION TEST_posix_sem AND QT_FEATURE_systemsemaphore
+)
+qt_feature("posix_shm" PRIVATE
+ LABEL "POSIX shared memory"
+ CONDITION TEST_posix_shm AND UNIX
+)
qt_feature("qqnx_pps" PRIVATE
LABEL "PPS"
CONDITION PPS_FOUND
@@ -669,20 +565,23 @@ qt_feature("qqnx_pps" PRIVATE
)
qt_feature("renameat2" PRIVATE
LABEL "renameat2()"
- CONDITION LINUX AND TEST_renameat2
+ CONDITION ( LINUX OR HURD ) AND TEST_renameat2
)
qt_feature("slog2" PRIVATE
LABEL "slog2"
CONDITION Slog2_FOUND
)
-qt_feature("statx" PRIVATE
- LABEL "statx() in libc"
- CONDITION LINUX 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 AND QT_FEATURE_systemsemaphore
+)
+qt_feature("sysv_shm" PRIVATE
+ LABEL "System V / XSI shared memory"
+ CONDITION TEST_sysv_shm
)
qt_feature("threadsafe-cloexec"
LABEL "Threadsafe pipe creation"
@@ -690,12 +589,6 @@ qt_feature("threadsafe-cloexec"
)
qt_feature_definition("threadsafe-cloexec" "QT_THREADSAFE_CLOEXEC" VALUE "1")
qt_feature_config("threadsafe-cloexec" QMAKE_PUBLIC_QT_CONFIG)
-qt_feature("properties" PUBLIC
- SECTION "Kernel"
- LABEL "Properties"
- PURPOSE "Supports scripting Qt-based applications."
-)
-qt_feature_definition("properties" "QT_NO_PROPERTIES" NEGATE VALUE "1")
qt_feature("regularexpression" PUBLIC
SECTION "Kernel"
LABEL "QRegularExpression"
@@ -711,7 +604,7 @@ qt_feature("sharedmemory" PUBLIC
SECTION "Kernel"
LABEL "QSharedMemory"
PURPOSE "Provides access to a shared memory segment."
- CONDITION ( ANDROID OR WIN32 OR ( NOT VXWORKS AND ( TEST_ipc_sysv OR TEST_ipc_posix ) ) )
+ CONDITION WIN32 OR TEST_sysv_shm OR TEST_posix_shm
)
qt_feature_definition("sharedmemory" "QT_NO_SHAREDMEMORY" NEGATE VALUE "1")
qt_feature("shortcut" PUBLIC
@@ -724,7 +617,7 @@ qt_feature("systemsemaphore" PUBLIC
SECTION "Kernel"
LABEL "QSystemSemaphore"
PURPOSE "Provides a general counting system semaphore."
- CONDITION ( NOT INTEGRITY AND NOT VXWORKS AND NOT rtems ) AND ( ANDROID OR WIN32 OR TEST_ipc_sysv OR TEST_ipc_posix )
+ CONDITION WIN32 OR TEST_sysv_sem OR TEST_posix_sem
)
qt_feature_definition("systemsemaphore" "QT_NO_SYSTEMSEMAPHORE" NEGATE VALUE "1")
qt_feature("xmlstream" PUBLIC
@@ -732,21 +625,24 @@ qt_feature("xmlstream" PUBLIC
LABEL "XML Streaming APIs"
PURPOSE "Provides a simple streaming API for XML."
)
-qt_feature_definition("xmlstream" "QT_NO_XMLSTREAM" NEGATE VALUE "1")
+qt_feature("cpp-winrt" PRIVATE PUBLIC
+ LABEL "cpp/winrt base"
+ PURPOSE "basic cpp/winrt language projection support"
+ AUTODETECT WIN32
+ CONDITION WIN32 AND TEST_cpp_winrt
+)
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"
@@ -764,7 +660,13 @@ qt_feature("process" PUBLIC
SECTION "File I/O"
LABEL "QProcess"
PURPOSE "Supports external process invocation."
- CONDITION QT_FEATURE_processenvironment AND ( QT_FEATURE_thread OR NOT UNIX ) AND NOT UIKIT AND NOT INTEGRITY AND NOT VXWORKS AND NOT rtems
+ CONDITION QT_FEATURE_processenvironment
+ AND (QT_FEATURE_thread OR NOT UNIX)
+ AND NOT UIKIT
+ AND NOT INTEGRITY
+ AND NOT VXWORKS
+ AND NOT rtems
+ AND NOT WASM
)
qt_feature_definition("process" "QT_NO_PROCESS" NEGATE VALUE "1")
qt_feature("processenvironment" PUBLIC
@@ -783,7 +685,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
@@ -867,7 +769,7 @@ qt_feature("animation" PUBLIC
SECTION "Utilities"
LABEL "Animation"
PURPOSE "Provides a framework for animations."
- CONDITION QT_FEATURE_properties AND QT_FEATURE_easingcurve
+ CONDITION QT_FEATURE_easingcurve
)
qt_feature_definition("animation" "QT_NO_ANIMATION" NEGATE VALUE "1")
qt_feature("gestures" PUBLIC
@@ -901,7 +803,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"
@@ -928,6 +836,12 @@ qt_feature("etw" PRIVATE
ENABLE INPUT_trace STREQUAL 'etw' OR ( INPUT_trace STREQUAL 'yes' AND WIN32 )
DISABLE INPUT_trace STREQUAL 'lttng' OR INPUT_trace STREQUAL 'no'
)
+qt_feature("ctf" PRIVATE
+ LABEL "CTF"
+ AUTODETECT OFF
+ ENABLE INPUT_trace STREQUAL 'ctf'
+ DISABLE INPUT_trace STREQUAL 'etw' OR INPUT_trace STREQUAL 'no' OR INPUT_trace STREQUAL 'lttng'
+)
qt_feature("forkfd_pidfd" PRIVATE
LABEL "CLONE_PIDFD support in forkfd"
CONDITION LINUX
@@ -942,19 +856,41 @@ qt_feature("cborstreamwriter" PUBLIC
LABEL "CBOR stream writing"
PURPOSE "Provides support for writing the CBOR binary format."
)
+qt_feature("poll-exit-on-error" PRIVATE
+ LABEL "Poll exit on error"
+ AUTODETECT OFF
+ CONDITION UNIX
+ PURPOSE "Exit on error instead of just printing the error code and continue."
+)
+qt_feature("permissions" PUBLIC
+ SECTION "Utilities"
+ LABEL "Application permissions"
+ PURPOSE "Provides support for requesting user permission to access restricted data or APIs"
+)
+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 "doubleconversion")
qt_configure_add_summary_entry(ARGS "system-doubleconversion")
+qt_configure_add_summary_entry(ARGS "forkfd_pidfd" CONDITION LINUX)
qt_configure_add_summary_entry(ARGS "glib")
qt_configure_add_summary_entry(ARGS "icu")
qt_configure_add_summary_entry(ARGS "system-libb2")
qt_configure_add_summary_entry(ARGS "mimetype-database")
+qt_configure_add_summary_entry(ARGS "permissions")
+qt_configure_add_summary_entry(ARGS "ipc_posix" CONDITION UNIX)
qt_configure_add_summary_entry(
TYPE "firstAvailableFeature"
- ARGS "etw lttng"
+ 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")
@@ -966,10 +902,6 @@ qt_configure_add_summary_entry(
)
qt_configure_add_summary_entry(ARGS "pcre2")
qt_configure_add_summary_entry(ARGS "system-pcre2")
-qt_configure_add_summary_entry(
- ARGS "forkfd_pidfd"
- CONDITION LINUX
-)
qt_configure_end_summary_section() # end of "Qt Core" section
qt_configure_add_report_entry(
TYPE NOTE
@@ -978,16 +910,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
)
@@ -996,3 +918,8 @@ qt_configure_add_report_entry(
MESSAGE "Qt requires poll(), ppoll(), poll_ts() or select() on this platform"
CONDITION ( UNIX OR INTEGRITY ) AND ( NOT QT_FEATURE_poll_ppoll ) AND ( NOT QT_FEATURE_poll_pollts ) AND ( NOT QT_FEATURE_poll_poll ) AND ( NOT QT_FEATURE_poll_select )
)
+qt_configure_add_report_entry(
+ TYPE WARNING
+ MESSAGE "Basic cpp/winrt support missing. Some features might not be available."
+ CONDITION WIN32 AND NOT QT_FEATURE_cpp_winrt
+)