diff options
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | mkspecs/features/simd.prf | 2 | ||||
-rw-r--r-- | src/gui/image/image.pri | 4 | ||||
-rw-r--r-- | src/gui/painting/painting.pri | 6 | ||||
-rw-r--r-- | tools/configure/configureapp.cpp | 2 |
5 files changed, 17 insertions, 8 deletions
@@ -4127,6 +4127,16 @@ if [ "$CFG_IWMMXT" = "yes" ]; then fi fi +# check Neon support +if [ "$CFG_NEON" = "auto" ]; then + # no compile test, just check what the compiler has + case "$CFG_CPUFEATURES" in + *neon*) + CFG_NEON=yes + ;; + esac +fi + # detect mips_dsp support if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then @@ -5634,6 +5644,7 @@ fi [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx" [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2" [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt" +[ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon" if [ "$CFG_ARCH" = "mips" ]; then [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp" [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2" diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf index f9c7486317..258a1f63e2 100644 --- a/mkspecs/features/simd.prf +++ b/mkspecs/features/simd.prf @@ -117,7 +117,7 @@ gcc { # includes intel_icc and clang variants silent:avx2_compiler.commands = @echo compiling[avx2] ${QMAKE_FILE_IN} && $$avx2_compiler.commands QMAKE_EXTRA_COMPILERS += avx2_compiler } - contains(QT_CPU_FEATURES.$$QT_ARCH, neon) { + neon { HEADERS += $$NEON_HEADERS neon_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri index bbdd0f3da7..ba4328c16e 100644 --- a/src/gui/image/image.pri +++ b/src/gui/image/image.pri @@ -78,12 +78,10 @@ contains(QT_CONFIG, jpeg):include($$PWD/qjpeghandler.pri) contains(QT_CONFIG, gif):include($$PWD/qgifhandler.pri) # SIMD -contains(QT_CPU_FEATURES.$$QT_ARCH, neon) { - SOURCES += image/qimage_neon.cpp -} contains(QT_CPU_FEATURES.$$QT_ARCH, sse2) { SOURCES += image/qimage_sse2.cpp SSSE3_SOURCES += image/qimage_ssse3.cpp } +NEON_SOURCES += image/qimage_neon.cpp MIPS_DSPR2_SOURCES += image/qimage_mips_dspr2.cpp MIPS_DSPR2_ASM += image/qimage_mips_dspr2_asm.S diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index bc4b2f27d8..8fc0156c02 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -97,10 +97,10 @@ contains(QT_CPU_FEATURES.$$QT_ARCH, sse2) { } IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp -!ios:contains(QT_CPU_FEATURES.$$QT_ARCH, neon) { +!ios:neon { CONFIG += no_clang_integrated_as - SOURCES += painting/qdrawhelper_neon.cpp - HEADERS += painting/qdrawhelper_neon_p.h + NEON_SOURCES += painting/qdrawhelper_neon.cpp + NEON_HEADERS += painting/qdrawhelper_neon_p.h NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S } diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 21bc896769..33531252bf 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -2280,7 +2280,7 @@ bool Configure::checkAvailability(const QString &part) available = (platform() == QNX || platform() == BLACKBERRY) && tryCompileProject("unix/lgmon"); } else if (part == "NEON") { - available = (dictionary["QT_ARCH"] == "arm") && tryCompileProject("unix/neon"); + available = dictionary["QT_CPU_FEATURES"].contains("neon"); } else if (part == "FONT_CONFIG") { available = tryCompileProject("unix/fontconfig"); } |