Building QtWebEngine for different target Platforms
-
wrote on 24 Jun 2016, 07:50 last edited by
In the Qt build system there are some issues related to passing CFLAGS to the QtWebEngine build system during the process of building whole Qt (when the parameter -skip qtwebengine is not used). Qt build system reads the contents of QMAKE_CFLAGS and declare ninja variables according to found options. If we consider the qtwebengine/src/core/gyp_run.pro we can find the code for parsing QMAKE_CFLAGS contains. For example, when we deal to MIPS architecture the code of gyp_run.pro trying to find the "mips32r2" substring in the value of QMAKE_CFLAGS variable:
contains(QMAKE_CFLAGS, "mips32r2"): mips_arch_variant=\"r2\"
But in the QMAKE_CFLAGS variable the contains() function cannot find "mips32r2" string because the GCC option can be "-march=mips32r2". Also in the code above we have to add mips_arch_variant variable into GYP_CONFIG. So the correct code should be loke follow:
contains(QMAKE_CFLAGS, "-march=mips32r2"): GYP_CONFIG += mips_arch_variant=\"r2\"
Further created ninja variables are processed in the file qtwebengine/src/3rdparty/chromium/build/common.gypi where we also can see incorrect or not fulfill behaviour.
For example to tune compilation for the P5600 architecture we have to pass the following options to GCC-5.3.0
$ ${CROSS_COMPILE}gcc -march=mips32r2 -mtune=p5600
For GCC-5.4.0 we can simplify our controls to the only one option: -march=p5600.
For MIPS P5600 I can suggest patch. Please let me known who are responsible for QtWebEngine build system. I will send my suggestions as a patch. I don't want to contribute this by myself because I'm not a Qt developer.
-
In the Qt build system there are some issues related to passing CFLAGS to the QtWebEngine build system during the process of building whole Qt (when the parameter -skip qtwebengine is not used). Qt build system reads the contents of QMAKE_CFLAGS and declare ninja variables according to found options. If we consider the qtwebengine/src/core/gyp_run.pro we can find the code for parsing QMAKE_CFLAGS contains. For example, when we deal to MIPS architecture the code of gyp_run.pro trying to find the "mips32r2" substring in the value of QMAKE_CFLAGS variable:
contains(QMAKE_CFLAGS, "mips32r2"): mips_arch_variant=\"r2\"
But in the QMAKE_CFLAGS variable the contains() function cannot find "mips32r2" string because the GCC option can be "-march=mips32r2". Also in the code above we have to add mips_arch_variant variable into GYP_CONFIG. So the correct code should be loke follow:
contains(QMAKE_CFLAGS, "-march=mips32r2"): GYP_CONFIG += mips_arch_variant=\"r2\"
Further created ninja variables are processed in the file qtwebengine/src/3rdparty/chromium/build/common.gypi where we also can see incorrect or not fulfill behaviour.
For example to tune compilation for the P5600 architecture we have to pass the following options to GCC-5.3.0
$ ${CROSS_COMPILE}gcc -march=mips32r2 -mtune=p5600
For GCC-5.4.0 we can simplify our controls to the only one option: -march=p5600.
For MIPS P5600 I can suggest patch. Please let me known who are responsible for QtWebEngine build system. I will send my suggestions as a patch. I don't want to contribute this by myself because I'm not a Qt developer.
wrote on 24 Jun 2016, 09:27 last edited byYou should check out on JIRA and file a bug report.
JIRA should be also the platform for exchanging information on patches.
-
You should check out on JIRA and file a bug report.
JIRA should be also the platform for exchanging information on patches.
wrote on 24 Jun 2016, 09:37 last edited byThank you. I will look.
1/3