diff options
Diffstat (limited to 'src/corelib/configure.cmake')
-rw-r--r-- | src/corelib/configure.cmake | 78 |
1 files changed, 76 insertions, 2 deletions
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 80e6d93193..93ccf87e11 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -26,6 +26,9 @@ 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_extend_sbom(TARGETS GLIB2::GLIB2 + LICENSE_EXPRESSION "LGPL-2.1-or-later" +) qt_find_package(ICU 50.1 COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data MODULE_NAME core QMAKE_LIB icu) @@ -35,6 +38,9 @@ endif() qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd MODULE_NAME core QMAKE_LIB journald) 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_extend_sbom(TARGETS Libb2::Libb2 + LICENSE_EXPRESSION "CC0-1.0" +) qt_find_package(WrapRt PROVIDED_TARGETS WrapRt::WrapRt MODULE_NAME core QMAKE_LIB librt) qt_find_package(WrapSystemPCRE2 10.20 PROVIDED_TARGETS WrapSystemPCRE2::WrapSystemPCRE2 MODULE_NAME core QMAKE_LIB pcre2) set_package_properties(WrapPCRE2 PROPERTIES TYPE REQUIRED) @@ -324,6 +330,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()" @@ -430,6 +467,34 @@ const auto backtrace = std::stacktrace::current(); 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 @@ -458,7 +523,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>" @@ -526,6 +591,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" @@ -832,7 +905,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" |