summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure11
-rw-r--r--mkspecs/features/simd.prf2
-rw-r--r--src/gui/image/image.pri4
-rw-r--r--src/gui/painting/painting.pri6
-rw-r--r--tools/configure/configureapp.cpp2
5 files changed, 17 insertions, 8 deletions
diff --git a/configure b/configure
index 9ac4bfadb6..dbd0c32107 100755
--- a/configure
+++ b/configure
@@ -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");
}