[Development] Setting CMAKE_PREFIX_PATH to Qt prefix breaks use of system ICU via CMake
Simon Hausmann
Simon.Hausmann at qt.io
Sat Apr 29 13:38:10 CEST 2017
Hi,
Yeah, the rhel 7.2 icu packages on download.qt.io should not contain the .so symlinks.
Iikka, is this something you could help us with?
Simon
> On 29. Apr 2017, at 11:22, Konstantin Tokarev <annulen at yandex.ru> wrote:
>
>
>
> 28.04.2017, 18:58, "Thiago Macieira" <thiago.macieira at intel.com>:
>>> On Friday, 28 April 2017 11:54:53 -03 Konstantin Tokarev wrote:
>>> Hello,
>>>
>>> There is a strange situation involving official Qt SDK (>=5.8.0) binaries
>>> for Linux, ICU, cmake, and WebKit project files, I'm not sure which side
>>> really needs to be fixed.
>>>
>>> (Qt)WebKit uses custom module to find ICU, you can see its code at [1].
>>> Module uses quite popular practise of invoking pkg-config first, and then
>>> performing search of libs and headers by passing them as HINTS to
>>> find_path() and find_library(). Doing so allows to have a meaningful
>>> fallback if pkg-config is missing, misconfigured, or e.g. returns host libs
>>> when cross-compilation is needed.
>>
>> qtwebkit is built using qmake, so any CMake modules are irrelevant at this
>> point. CMake is only used for building user applications.
>>
>>> There are a few possible solutions:
>>>
>>> * Provide ICU headers as a part of Qt SDK too. This has a benefit that ICU
>>> libraries, required for QtCore, can be reused in other projects that use Qt
>>> and ICU, e.g. for building of experimental QtWebKit versions against binary
>>> SDK.
>>
>> Out of scope and you should be using qmake.
>
> I understand your point, but it seems impractical to provide wrapper qmake project
> as an interface for packagers. They know know how to deal with qmake or cmake
> packages, but dealing with cmake wrapped with qmake is a totally different business,
> and can easily double amount of issues to solve, especially when cross-compiling.
> That said, it works fine in Coin.
>
> Maintaining old qmake-based build was not considered because I don't have
> resources to maintain a build system that duplicate's one maintained by upstream.
> If there are volunteers to do that I can reconsider, but note that you will have to deal
> with lots of custom code generators, that are changed over time, and it would be
> much harder to backport upsream patches (that already include necessary cmake
> changes)
>
> As a side effect, having cmake build that is usable as a public build interface helps
> with IDE integration, e.g. I'm using existing cmake support in Qt Creator for development.
>
>>
>>> * Remove unversioned symlinks like libicuuc.so from SDK, so that they
>>> are not found by FindICU.cmake, and also by linker if it's given -licuuc
>>
>> That seems like the right solution for me. If we're not supplying the headers
>> (and it's not our business to), then we shouldn't supply the *.so symlinks
>> either.
>
> Fine with me. Looks like the problem is that archive [1] contains only necessary files,
> but [2] contains all ICU libraries + unversioned links. Archive [2] is unpacked into
> SDK image since 5.8.0.
>
> [1] http://download.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel6.6-x64.7z
>
> Files:
>
> Extracting libicudata.so.56
> Extracting libicui18n.so.56
> Extracting libicuuc.so.56
> Extracting libicudata.so.56.1
> Extracting libicui18n.so.56.1
> Extracting libicuuc.so.56.1
>
> [2] http://download.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z
>
> Files:
>
> Extracting libicudata.so
> Extracting libicui18n.so
> Extracting libicuio.so
> Extracting libicule.so
> Extracting libiculx.so
> Extracting libicutest.so
> Extracting libicutu.so
> Extracting libicuuc.so
> Extracting libicudata.so.56
> Extracting libicui18n.so.56
> Extracting libicuio.so.56
> Extracting libicule.so.56
> Extracting libiculx.so.56
> Extracting libicutest.so.56
> Extracting libicutu.so.56
> Extracting libicuuc.so.56
> Extracting libicudata.so.56.1
> Extracting libicui18n.so.56.1
> Extracting libicuio.so.56.1
> Extracting libicule.so.56.1
> Extracting libiculx.so.56.1
> Extracting libicutest.so.56.1
> Extracting libicutu.so.56.1
> Extracting libicuuc.so.56.1
>
>>
>> --
>> Thiago Macieira - thiago.macieira (AT) intel.com
>> Software Architect - Intel Open Source Technology Center
>>
>> _______________________________________________
>> Development mailing list
>> Development at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/development
>
> --
> Regards,
> Konstantin
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
More information about the Development
mailing list