|
|
| Line 1: |
Line 1: |
| [[Category:Windows]]<br />[[Category:Qt5]]<br />[[Category:ICU]]
| |
|
| |
|
| == Compiling ICU with MinGW (for adding Unicode support) ==
| |
|
| |
| Qt 5 / QtWebkit requires ICU, which MinGW distributions do not ship.
| |
|
| |
| == Pre-built packages ==
| |
|
| |
| The "ICU Project site&quot;:http://site.icu-project.org/download provides pre-compiled libraries for both 32 and 64 bit. However, these depend on the Microsoft Visual C++ 2010 runtime being installed.
| |
|
| |
| "download.qt.io&quot;:http://download.qt.io/development_releases/prebuilt/icu/prebuilt/mingw/ also hosts packages for the MinGW toolchains Qt ships.
| |
|
| |
| Inside MSYS2 shell, a pre-built ICU can be obtained. MSYS2 also contains pre-built dynamic Qt & QtCreator (and static Qt) with ICU & OpenSSL support.
| |
|
| |
| == Compiling on your own ==
| |
|
| |
| === Requirements ===
| |
|
| |
| * Either use MSYS or use [[MSYS2]].
| |
| ** MSYS shell command prompt (an sh shell + some UNIX tools, get it from http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe/download?use_mirror=garr. It's also an (optional) part of mingw.org installer.)
| |
| ** [[MSYS2]] shell command prompt, (similar to MSYS), it can be obtained from https://msys2.github.io/
| |
| * Working MinGW, or MinGW-w64 toolchain.
| |
| ** Load MinGW or MinGW-w64 toolchains.
| |
| ** NOTE: Do not use (or try to avoid using) different type of toolchains for building different sub-components for the same/main project, targeted for same platform/OS. If you are using MinGW-w64 toolchains from MSYS2\mingw32 or MSYS2\mingw64, then for building main project & all of its sub-components, use same MSYS2 toolchains. If you are using MinGW toolchain, then for building all of your sub-components & main project, use same MinGW toolchain. If you are using MinGW-w64 toolchains from "MinGW-builds&quot;, then for building all sub-components & main project, use same MinGW-builds toolchains.
| |
|
| |
| === How to build ===
| |
|
| |
| * Download latest ICU4C source code from http://site.icu-project.org/download (e.g. icu4c-52_1-src.zip), unzip
| |
| * Either start MSYS-shell, or start MSYS2-shell:
| |
| ** Start a MSYS shell command prompt (C:.0\msys.bat)
| |
| ** Or, start MSYS2 shell command prompt (C:2\msys2_shell.bat)
| |
| *** See in [[MSYS2]] page, how to prepare MSYS2-shell with build/compile related tools & dependencies & toolchains
| |
|
| |
| * Inside MSYS or MSYS2 shell, run/execute below command:<br /><code><br />&#36; cd icu/source<br /></code>
| |
|
| |
| * Check that gcc is in PATH, otherwise add it:
| |
| ** If using MSYS shell, and if MinGW (32bit) is installed inside /c/mingw32 (C:32 directory, then execute this:<br /><code><br />&#36; export PATH="/c/mingw32/bin:&#36;PATH&quot;<br /></code>
| |
| ** If using MSYS2 shell, execute this, if you are building for 32bit:<br /><code><br />&#36; export PATH="/c/msys2/mingw32/bin:&#36;PATH&quot;<br /></code>
| |
| ** If using MSYS2 shell, execute this, if you are building for 64bit:<br /><code><br />$ export PATH="/c/msys2/mingw64/bin:&#36;PATH&quot;<br /></code>
| |
|
| |
| * Run configure && build:<br /><code><br />&#36; ./runConfigureICU MinGW —prefix=&#36;PWD/../dist<br /></code><br /> This will generate a release shared build that you can use in both a debug and release build of Qt.
| |
|
| |
| * To link ICU statically (e.g. for a static release build of Qt), you have to append ‘—enable-static —disable-shared’ :<br /><code><br />&#36; ./runConfigureICU MinGW —prefix=&#36;PWD/../dist —enable-static —disable-shared<br /></code>
| |
|
| |
| * To link ICU statically and build it in debug mode (e.g. for a static debug build of Qt), you have to prepend ‘—enable-debug —disable-release’ to the arguments:<br /><code><br />&#36; ./runConfigureICU —enable-debug —disable-release MinGW —prefix=&#36;PWD/../dist —enable-static —disable-shared<br /></code>
| |
|
| |
| * Finally, run make && make install<br /><code><br />&#36; make && make install<br /></code>
| |
|
| |
| == Using it ==
| |
|
| |
| * Add the include, lib folders to your compilation environment, e.g. for cmd.exe (Cmd-shell) :<br /><code><br />C:gt; set PATH=&#37;PATH&amp;#37;;C:C:gt; set INCLUDE=&#37;INCLUDE&amp;#37;;C:C:gt; set LIB=&#37;LIB&amp;#37;;C:</code>
| |
|
| |
| * Add the include, lib folders to your compilation environment, e.g. for MSYS2-shell (or for MSYS-shell) :
| |
|
| |
| <code>
| |
| $ export PATH="$PATH:/c/icu/dist/lib"
| |
|
| |
| $ export INCLUDE="$INCLUDE:/c/icu/dist/include"
| |
|
| |
| $ export LIB="$LIB:/c/icu/dist/lib&"
| |
|
| |
| </code>
| |
|
| |
| When you now run Qt’s configure.exe ICU should be detected, and Qt links against the libraries.
| |