This reduces dramatically the command-line for compiling Qt sources.
These are private macros, only to be used by Qt's own modules, so the
compiler setting is either the same or, possibly, better. In other
words, in the worst case, when compiling a module with a better
compiler than for qtbase, such module might not enable all the
functionality it could otherwise do.
If we switch to a buildsystem that can support this properly in the
future, these macros should be removed.
Change-Id: I71f2d12ec98c9dd40eaab9de4a17446bd1066020
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
fi
+# Add compiler sub-architecture support
+echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
+echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
+for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
+ IWMMXT NEON \
+ MIPS_DSP MIPS_DSPR2; do
+ eval "VAL=\$CFG_$SUBARCH"
+ case "$VAL" in
+ yes)
+ echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
+ >>"$outpath/src/corelib/global/qconfig.h.new"
+ ;;
+ esac
+done
echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
esac
done
-
QMakeVar set sql-drivers "$SQL_DRIVERS"
QMakeVar set sql-plugins "$SQL_PLUGINS"
# Qt modules get compiled without exceptions enabled by default
CONFIG += exceptions_off
-
-#SIMD defines:
-sse2:DEFINES += QT_COMPILER_SUPPORTS_SSE2
-sse3:DEFINES += QT_COMPILER_SUPPORTS_SSE3
-ssse3:DEFINES += QT_COMPILER_SUPPORTS_SSSE3
-sse4_1:DEFINES += QT_COMPILER_SUPPORTS_SSE4_1
-sse4_2:DEFINES += QT_COMPILER_SUPPORTS_SSE4_2
-avx:DEFINES += QT_COMPILER_SUPPORTS_AVX
-avx2:DEFINES += QT_COMPILER_SUPPORTS_AVX2
-iwmmxt:DEFINES += QT_COMPILER_SUPPORTS_IWMMXT
-neon:DEFINES += QT_COMPILER_SUPPORTS_NEON
-mips_dsp:DEFINES += QT_COMPILER_SUPPORTS_MIPS_DSP
-mips_dspr2:DEFINES += QT_COMPILER_SUPPORTS_MIPS_DSPR2
tmpStream << endl;
}
+ tmpStream << endl << "// Compiler sub-arch support" << endl;
+ if (dictionary[ "SSE2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE2" << endl;
+ if (dictionary[ "SSE3" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE3" << endl;
+ if (dictionary[ "SSSE3" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSSE3" << endl;
+ if (dictionary[ "SSE4_1" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_1" << endl;
+ if (dictionary[ "SSE4_2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_2" << endl;
+ if (dictionary[ "AVX" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_AVX" << endl;
+ if (dictionary[ "AVX2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_AVX2" << endl;
+ if (dictionary[ "IWMMXT" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_IWMMXT" << endl;
+ if (dictionary[ "NEON" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_NEON" << endl;
+
+
tmpStream << endl << "// Compile time features" << endl;
QStringList qconfigList;