[Interest] Replacing icudtXX.dll without rebuilding Qt?

Elvis Stansvik elvstone at gmail.com
Sun Jan 17 15:30:26 CET 2016


2016-01-17 14:48 GMT+01:00 Elvis Stansvik <elvstone at gmail.com>:
> Hi all,
>
> In an effort to cut down on the size of the standalone ZIP
> distribution of my small command line tool [1] which only uses QtCore,
> and which to my knowledge does not depend on any localization
> features, I'd like to try replacing the icudtXX.dll that I currently
> take from the Qt bin directory with a custom one built using the ICU
> Data Library Customizer [2].

I've slightly misunderstood how the ICU Data Library Customizer works.
I thought it would generate a icudtXX.dll, but it generates a .dat
file to be used in the compilation of ICU.

So now that I know that I have to re-build ICU with this .dat file, my
question are:

1. Is it safe to replace the three icuXXXX.dll DLL files without also
re-building Qt, provided that I use the exact same ICU version,
compiled with the exact same compilation flags, but with a different
.dat file?

2. If so, which parts of the .dat file can I safely exclude with the
ICU Data Library Customizer? I don't think I need any of the features
which Qt uses ICU for, but are there some parts that must be included
for Qt to function at all?

3. Where can I find out how the ICU bundled with official Qt builds was built?

Cheers,
Elvis

>
> My questions are:
>
> 1. Is this is safe to to replace icudtXX.dll without replacing the
> other two ICU DLLs (icuinXX.dll and icuucXX.dll) and re-building the
> Qt library itself?
>
> 2. Are the ICU build options / data config used for the ICU DLLs that
> comes bundled with official Qt builds documented somewhere? I tried
> looking in the `qtqa` repo, but found no ICU build scripts or similar
> there. I know that Qt hosts some pre-built ICU version at [3]. Are
> these the ones shipped with official Qt builds? If so, how were they
> built?
>
> I'm currently using MSVC on Appveyor to build my standalone ZIP, and
> I'm using the official builds of Qt. I know I can completely cut out
> the dependency on ICU by re-building Qt, but I'm looking for solution
> where I don't have to do that.
>
> If it's unsafe to replace icudtXX.dll without also re-building Qt,
> I'll abandon the idea. If it's possible if I also replace the other
> two ICU DLLs, then I'll consider it.
>
> I know people don't really care if the size of a package is 4 MB or 11
> MB, but it just feels a bit silly that 60% of the binaries in my
> package are not really needed.
>
> Thanks in advance.
>
> Elvis
>
> [1] https://github.com/estan/protoc-gen-doc
> [2] http://apps.icu-project.org/datacustom/ICUData54.html
> [3] http://download.qt.io/development_releases/prebuilt/icu/prebuilt/



More information about the Interest mailing list