diff options
Diffstat (limited to 'src/corelib/configure.cmake')
-rw-r--r-- | src/corelib/configure.cmake | 463 |
1 files changed, 221 insertions, 242 deletions
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 08d1e0d976..18c09d2241 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,77 +396,67 @@ 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)" +# <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 ) - +# <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 @@ -527,41 +469,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 TEST_cxx_std_async_noncopyable ) 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 +514,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 +525,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 +547,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 +597,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 +612,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 +636,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" @@ -707,11 +647,15 @@ 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" 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 +668,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 +676,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 +711,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 +736,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 +820,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 +854,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 +887,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 +907,42 @@ 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 "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) 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 +954,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 +962,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 +970,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 +) |