diff --git a/src/3rdparty/libwebp.pri b/src/3rdparty/libwebp.pri index 627ff95887e833ca762a07f8decff89d443108e4..865f0ff1f620f45a52e09044146045aefae52cd3 100644 --- a/src/3rdparty/libwebp.pri +++ b/src/3rdparty/libwebp.pri @@ -24,14 +24,11 @@ SOURCES += \ $$PWD/libwebp/src/demux/demux.c \ $$PWD/libwebp/src/dsp/cpu.c \ $$PWD/libwebp/src/dsp/dec.c \ - $$PWD/libwebp/src/dsp/dec_neon.c \ $$PWD/libwebp/src/dsp/dec_sse2.c \ $$PWD/libwebp/src/dsp/enc.c \ - $$PWD/libwebp/src/dsp/enc_neon.c \ $$PWD/libwebp/src/dsp/enc_sse2.c \ $$PWD/libwebp/src/dsp/lossless.c \ $$PWD/libwebp/src/dsp/upsampling.c \ - $$PWD/libwebp/src/dsp/upsampling_neon.c \ $$PWD/libwebp/src/dsp/upsampling_sse2.c \ $$PWD/libwebp/src/dsp/yuv.c \ $$PWD/libwebp/src/dsp/alpha_processing.c \ @@ -41,7 +38,6 @@ SOURCES += \ $$PWD/libwebp/src/dsp/enc_avx2.c \ $$PWD/libwebp/src/dsp/enc_mips32.c \ $$PWD/libwebp/src/dsp/lossless_mips32.c \ - $$PWD/libwebp/src/dsp/lossless_neon.c \ $$PWD/libwebp/src/dsp/lossless_sse2.c \ $$PWD/libwebp/src/dsp/yuv_mips32.c \ $$PWD/libwebp/src/dsp/yuv_sse2.c \ @@ -80,3 +76,34 @@ SOURCES += \ $$PWD/libwebp/src/utils/rescaler.c \ $$PWD/libwebp/src/utils/thread.c \ $$PWD/libwebp/src/utils/utils.c + +android { + SOURCES += $$NDK_ROOT/sources/android/cpufeatures/cpu-features.c + INCLUDEPATH += $$NDK_ROOT/sources/android/cpufeatures +} + +equals(QT_ARCH, arm) { + SOURCES_FOR_NEON += \ + $$PWD/libwebp/src/dsp/dec_neon.c \ + $$PWD/libwebp/src/dsp/enc_neon.c \ + $$PWD/libwebp/src/dsp/upsampling_neon.c \ + $$PWD/libwebp/src/dsp/lossless_neon.c + + contains(QT_CPU_FEATURES, neon) { + # Default compiler settings include this feature, so just add to SOURCES + SOURCES += $$SOURCES_FOR_NEON + } else { + neon_comp.commands = $$QMAKE_CC -c $(CFLAGS) + neon_comp.commands += $$QMAKE_CFLAGS_NEON + neon_comp.commands += $(INCPATH) ${QMAKE_FILE_IN} + msvc: neon_comp.commands += -Fo${QMAKE_FILE_OUT} + else: neon_comp.commands += -o ${QMAKE_FILE_OUT} + neon_comp.dependency_type = TYPE_C + neon_comp.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + neon_comp.input = SOURCES_FOR_NEON + neon_comp.variable_out = OBJECTS + neon_comp.name = compiling[neon] ${QMAKE_FILE_IN} + silent: neon_comp.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_comp.commands + QMAKE_EXTRA_COMPILERS += neon_comp + } +} diff --git a/src/plugins/imageformats/imageformats.pro b/src/plugins/imageformats/imageformats.pro index 54b0622325c0d6efafc2f6c29568bceafec231a2..b6e79d4f907b5d58ff962ff7076cd2555f9c2c6d 100644 --- a/src/plugins/imageformats/imageformats.pro +++ b/src/plugins/imageformats/imageformats.pro @@ -16,4 +16,4 @@ winrt { tga } -winrt|android|ios: SUBDIRS -= webp +winrt|ios: SUBDIRS -= webp