diff options
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/qt_module_headers.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 12 | ||||
-rw-r--r-- | mkspecs/features/simd.prf | 41 |
3 files changed, 51 insertions, 4 deletions
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 3f2383c120..f8ac561317 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -92,7 +92,7 @@ headersclean:!internal_module { -DQT_NO_URL_CAST_FROM_STRING=1 \ -DQT_NO_CAST_FROM_BYTEARRAY=1 \ -DQT_NO_KEYWORDS=1 \ - -DQT_USE_FAST_CONCATENATION \ + -DQT_USE_QSTRINGBUILDER \ -DQT_USE_FAST_OPERATOR_PLUS \ -Dsignals=int \ -Dslots=int \ diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index 7a38ff8f38..1f04c8b0d7 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -49,9 +49,15 @@ for(resource, RESOURCES) { for(file, $${resource}.files) { abs_path = $$absolute_path($$file, $$_PRO_FILE_PWD_) - alias = $$relative_path($$abs_path, $$abs_base) - resource_file_content += \ - "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$abs_path)</file>" + files = $$files($$abs_path/*, true) + isEmpty(files): \ + files = $$abs_path + for (file, files) { + exists($$file/*): next() # exclude directories + alias = $$relative_path($$file, $$abs_base) + resource_file_content += \ + "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$file)</file>" + } } resource_file_content += \ diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf index 700d79a1b5..4aafdbe5ed 100644 --- a/mkspecs/features/simd.prf +++ b/mkspecs/features/simd.prf @@ -95,6 +95,47 @@ addSimdCompiler(sse4_1) addSimdCompiler(sse4_2) addSimdCompiler(avx) addSimdCompiler(avx2) +addSimdCompiler(avx512f) +addSimdCompiler(avx512cd) +addSimdCompiler(avx512er) +addSimdCompiler(avx512pf) +addSimdCompiler(avx512dq) +addSimdCompiler(avx512bw) +addSimdCompiler(avx512vl) +addSimdCompiler(avx512ifma) +addSimdCompiler(avx512vbmi) addSimdCompiler(neon) addSimdCompiler(mips_dsp) addSimdCompiler(mips_dspr2) + +# Follow the Intel compiler's lead and define profiles of AVX512 instructions +defineTest(addAvx512Profile) { + name = $$1 + dependencies = $$2 + upname = $$upper($$name) + varname = QMAKE_CFLAGS_$$upname + + cpu_features_missing = + cflags = $$QMAKE_CFLAGS_AVX512F + for(part, dependencies) { + !CONFIG($$part): return() # Profile isn't supported by the compiler + + uppart = $$upper($$part) + cflags *= $$eval(QMAKE_CFLAGS_$${uppart}) + !contains(QT_CPU_FEATURES, $$uppart): cpu_features_missing += $$uppart + } + + CONFIG += $$name + isEmpty(cpu_features_missing): QT_CPU_FEATURES += $$name + $$varname = $$cflags + + export(QT_CPU_FEATURES) + export(CONFIG) + export($$varname) + addSimdCompiler($$name) +} +addAvx512Profile(avx512common, avx512cd) +addAvx512Profile(avx512mic, avx512cd avx512er avx512pf) +addAvx512Profile(avx512core, avx512cd avx512bw avx512dq avx512vl) +addAvx512Profile(avx512ifmavl, avx512ifma avx512vl) +addAvx512Profile(avx512vbmivl, avx512vbmi avx512vl) |