* [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
@ 2014-01-13 0:58 Jacob Kroon
2014-01-13 10:11 ` Martin Jansa
0 siblings, 1 reply; 8+ messages in thread
From: Jacob Kroon @ 2014-01-13 0:58 UTC (permalink / raw)
To: openembedded-devel
Hi,
I'm seeing what I believe is a problem with the *.la files in the Qt5
dev-packages.
The files references paths in my OE build environment, like so:
...
# Libraries that this one depends upon.
dependency_libs='-lQt5Gui
-L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib
-lQt5Core -lpthread '
...
# Directory that this library needs to be installed in:
libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr'
...
I noticed this since my Qt5 autotools project wouldn't link properly when
using the SDK, unless I first removed all libQt5*.la files.
I'm not quite sure where to look for the problem so any pointers would be
appreciated.
-- Jacob
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-13 0:58 [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories Jacob Kroon
@ 2014-01-13 10:11 ` Martin Jansa
2014-01-14 0:03 ` Jacob Kroon
0 siblings, 1 reply; 8+ messages in thread
From: Martin Jansa @ 2014-01-13 10:11 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 1462 bytes --]
On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
> Hi,
>
> I'm seeing what I believe is a problem with the *.la files in the Qt5
> dev-packages.
> The files references paths in my OE build environment, like so:
>
> ...
> # Libraries that this one depends upon.
> dependency_libs='-lQt5Gui
> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib
> -lQt5Core -lpthread '
> ...
> # Directory that this library needs to be installed in:
> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr'
> ...
>
> I noticed this since my Qt5 autotools project wouldn't link properly when
> using the SDK, unless I first removed all libQt5*.la files.
>
> I'm not quite sure where to look for the problem so any pointers would be
> appreciated.
Probably bad rebase on my side, please compare
mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
changed in:
https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
and
https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
Or better in meta-qt5's qtbase repo:
https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/features/qt_module.prf
https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/features/qt_module.prf
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-13 10:11 ` Martin Jansa
@ 2014-01-14 0:03 ` Jacob Kroon
2014-01-18 10:03 ` Jacob Kroon
0 siblings, 1 reply; 8+ messages in thread
From: Jacob Kroon @ 2014-01-14 0:03 UTC (permalink / raw)
To: openembedded-devel
On Mon, 13 Jan 2014, Martin Jansa wrote:
> On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>> Hi,
>>
>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>> dev-packages.
>> The files references paths in my OE build environment, like so:
>>
>> ...
>> # Libraries that this one depends upon.
>> dependency_libs='-lQt5Gui
>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib
>> -lQt5Core -lpthread '
>> ...
>> # Directory that this library needs to be installed in:
>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr'
>> ...
>>
>> I noticed this since my Qt5 autotools project wouldn't link properly when
>> using the SDK, unless I first removed all libQt5*.la files.
>>
>> I'm not quite sure where to look for the problem so any pointers would be
>> appreciated.
>
> Probably bad rebase on my side, please compare
>
> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>
> changed in:
> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
> and
> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>
> Or better in meta-qt5's qtbase repo:
> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/features/qt_module.prf
> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/features/qt_module.prf
>
I tried building Qt 5.1.1 from master again, the .la-files do look
better, "libdir" looks correct (taken from libQt5Svg.la):
<snip>
# Directory that this library needs to be installed in:
libdir='/usr/lib'
</snip>
however
<snip>
dependency_libs='-lQt5Gui
-L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib
-lQt5Core -lpthread '
</snip>
Dunno wether this is a problem or not, I never tried building the
project with 5.1.1 using the SDK.
Will hopefully have some time tomorrow to look at the links you sent.
Thanks,
Jacob
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-14 0:03 ` Jacob Kroon
@ 2014-01-18 10:03 ` Jacob Kroon
2014-01-18 11:09 ` Jacob Kroon
2014-01-18 11:38 ` Martin Jansa
0 siblings, 2 replies; 8+ messages in thread
From: Jacob Kroon @ 2014-01-18 10:03 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 5925 bytes --]
Hi Andreas and Martin,
On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>
> On Mon, 13 Jan 2014, Martin Jansa wrote:
>
> On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>>
>>> Hi,
>>>
>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>>> dev-packages.
>>> The files references paths in my OE build environment, like so:
>>>
>>> ...
>>> # Libraries that this one depends upon.
>>> dependency_libs='-lQt5Gui
>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>> sysroots/wandboard-solo/usr/lib
>>> -lQt5Core -lpthread '
>>> ...
>>> # Directory that this library needs to be installed in:
>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>> sysroots/wandboard-solo/usr'
>>> ...
>>>
>>> I noticed this since my Qt5 autotools project wouldn't link properly when
>>> using the SDK, unless I first removed all libQt5*.la files.
>>>
>>> I'm not quite sure where to look for the problem so any pointers would be
>>> appreciated.
>>>
>>
>> Probably bad rebase on my side, please compare
>>
>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>>
>> changed in:
>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
>> and
>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>>
>> Or better in meta-qt5's qtbase repo:
>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
>> features/qt_module.prf
>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
>> features/qt_module.prf
>>
>>
> I tried building Qt 5.1.1 from master again, the .la-files do look better,
> "libdir" looks correct (taken from libQt5Svg.la):
>
> <snip>
>
> # Directory that this library needs to be installed in:
> libdir='/usr/lib'
> </snip>
>
> however
>
> <snip>
>
> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> -lpthread '
> </snip>
>
> Dunno wether this is a problem or not, I never tried building the project
> with 5.1.1 using the SDK.
>
> Will hopefully have some time tomorrow to look at the links you sent.
>
> Thanks,
>
> Jacob
>
I'm trying to get the .la-files for Qt5 dev-packages correct.
What I've come up with so far is attached in the patch (to be applied in
top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
With the patch applied I can still build both an image and an SDK, and also
the resulting SDK can be used to build my QT5 autotools projects. But I get
these warnings when building for instance "qtxmlpatterns":
WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
include and/or library paths were used.
With my patch applied,
recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
like this:
--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
+++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
@@ -135,30 +135,36 @@ load(qt_installs)
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
else: \
rplbase = $$MODULE_BASE_OUTDIR
-include_replace.match = $$rplbase/include
-include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-include_replace.CONFIG = path
+pkgconfig_include_replace.match = $$rplbase/include
+pkgconfig_include_replace.replace = "\$$\\{includedir}"
+pkgconfig_include_replace.CONFIG = path
+pkgconfig_lib_replace.match = $$rplbase/lib
+pkgconfig_lib_replace.replace = "\$$\\{libdir}"
+pkgconfig_lib_replace.CONFIG = path
lib_replace.match = $$rplbase/lib
host_build: \
lib_replace.replace = $$[QT_HOST_LIBS]
else: \
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
lib_replace.CONFIG = path
-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
+QMAKE_PRL_INSTALL_REPLACE += lib_replace
unix|win32-g++* {
CONFIG += create_pc
QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
- QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
- QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
pkgconfig_lib_replace
}
unix {
+ lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
+ lafile_replace.replace = ""
+ lafile_replace.CONFIG = path
CONFIG += create_libtool explicitlib
QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
- QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
+ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
}
The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
? With all the sed:ing going on, that path looks phony to me...
From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
QMAKE_PRL_BUILD_DIR =
/home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
QMAKE_PRL_LIBS =
-L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
-lQt5Core -lpthread
From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
dependency_libs=' -lQt5Core -lpthread '
libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
QMAKE_PRL_BUILD_DIR =
/home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
dependency_libs=' -lQt5Core -lpthread '
libdir='/usr/lib'
-- Jacob (very confused)
[-- Attachment #2: fix-la-files.patch --]
[-- Type: text/x-patch, Size: 4038 bytes --]
diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
index f85fb33..5503e1a 100644
--- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
+++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
@@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
1 file changed, 31 insertions(+), 12 deletions(-)
-diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
-index 11509ee..2f95684 100644
---- a/mkspecs/features/qt_module.prf
-+++ b/mkspecs/features/qt_module.prf
-@@ -135,30 +135,49 @@ load(qt_installs)
+Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+===================================================================
+--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+@@ -135,30 +135,36 @@ load(qt_installs)
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
else: \
rplbase = $$MODULE_BASE_OUTDIR
-include_replace.match = $$rplbase/include
-include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-include_replace.CONFIG = path
--lib_replace.match = $$rplbase/lib
--host_build: \
-- lib_replace.replace = $$[QT_HOST_LIBS]
--else: \
+pkgconfig_include_replace.match = $$rplbase/include
+pkgconfig_include_replace.replace = "\$$\\{includedir}"
++pkgconfig_include_replace.CONFIG = path
+pkgconfig_lib_replace.match = $$rplbase/lib
+pkgconfig_lib_replace.replace = "\$$\\{libdir}"
-+!exists($$[QT_SYSROOT]) {
-+ include_replace.match = $$rplbase/include
-+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-+ include_replace.CONFIG = path
-+ lib_replace.match = $$rplbase/lib
++pkgconfig_lib_replace.CONFIG = path
+ lib_replace.match = $$rplbase/lib
+ host_build: \
+ lib_replace.replace = $$[QT_HOST_LIBS]
+ else: \
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
--lib_replace.CONFIG = path
-+ lib_replace.CONFIG = path
-+ lafile_replace.match = $$rplbase
-+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
-+} else {
-+ # include_replace and lib_replace are duplicate, but we don't want to
-+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
-+ include_replace.match = $$rplbase
-+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+ include_replace.CONFIG = path
-+ lib_replace.match = $$rplbase
-+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+ lib_replace.CONFIG = path
-+ lafile_replace.match = $$rplbase
-+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
-+}
- QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
+ lib_replace.CONFIG = path
+-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
++QMAKE_PRL_INSTALL_REPLACE += lib_replace
unix|win32-g++* {
CONFIG += create_pc
-- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
+ QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
- QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
-+ host_build: \
-+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
-+ else: \
-+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
@@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
}
unix {
++ lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
++ lafile_replace.replace = ""
++ lafile_replace.CONFIG = path
CONFIG += create_libtool explicitlib
QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
- QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
-+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
}
unix|win32-g++* {
---
-1.8.5.2
-
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-18 10:03 ` Jacob Kroon
@ 2014-01-18 11:09 ` Jacob Kroon
2014-01-18 11:38 ` Martin Jansa
1 sibling, 0 replies; 8+ messages in thread
From: Jacob Kroon @ 2014-01-18 11:09 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 6495 bytes --]
On Sat, Jan 18, 2014 at 11:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
> Hi Andreas and Martin,
>
> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com>wrote:
>
>>
>> On Mon, 13 Jan 2014, Martin Jansa wrote:
>>
>> On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>>>> dev-packages.
>>>> The files references paths in my OE build environment, like so:
>>>>
>>>> ...
>>>> # Libraries that this one depends upon.
>>>> dependency_libs='-lQt5Gui
>>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>> sysroots/wandboard-solo/usr/lib
>>>> -lQt5Core -lpthread '
>>>> ...
>>>> # Directory that this library needs to be installed in:
>>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>> sysroots/wandboard-solo/usr'
>>>> ...
>>>>
>>>> I noticed this since my Qt5 autotools project wouldn't link properly
>>>> when
>>>> using the SDK, unless I first removed all libQt5*.la files.
>>>>
>>>> I'm not quite sure where to look for the problem so any pointers would
>>>> be
>>>> appreciated.
>>>>
>>>
>>> Probably bad rebase on my side, please compare
>>>
>>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>>>
>>> changed in:
>>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
>>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
>>> and
>>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
>>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>>>
>>> Or better in meta-qt5's qtbase repo:
>>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
>>> features/qt_module.prf
>>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
>>> features/qt_module.prf
>>>
>>>
>> I tried building Qt 5.1.1 from master again, the .la-files do look
>> better, "libdir" looks correct (taken from libQt5Svg.la):
>>
>> <snip>
>>
>> # Directory that this library needs to be installed in:
>> libdir='/usr/lib'
>> </snip>
>>
>> however
>>
>> <snip>
>>
>> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
>> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
>> -lpthread '
>> </snip>
>>
>> Dunno wether this is a problem or not, I never tried building the project
>> with 5.1.1 using the SDK.
>>
>> Will hopefully have some time tomorrow to look at the links you sent.
>>
>> Thanks,
>>
>> Jacob
>>
>
> I'm trying to get the .la-files for Qt5 dev-packages correct.
>
> What I've come up with so far is attached in the patch (to be applied in
> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
>
> With the patch applied I can still build both an image and an SDK, and
> also the resulting SDK can be used to build my QT5 autotools projects. But
> I get these warnings when building for instance "qtxmlpatterns":
>
> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
> include and/or library paths were used.
>
> With my patch applied,
> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
> like this:
>
> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> @@ -135,30 +135,36 @@ load(qt_installs)
> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> else: \
> rplbase = $$MODULE_BASE_OUTDIR
> -include_replace.match = $$rplbase/include
> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -include_replace.CONFIG = path
> +pkgconfig_include_replace.match = $$rplbase/include
> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> +pkgconfig_include_replace.CONFIG = path
> +pkgconfig_lib_replace.match = $$rplbase/lib
> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> +pkgconfig_lib_replace.CONFIG = path
> lib_replace.match = $$rplbase/lib
> host_build: \
> lib_replace.replace = $$[QT_HOST_LIBS]
> else: \
> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> lib_replace.CONFIG = path
> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
>
> unix|win32-g++* {
> CONFIG += create_pc
> QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> - QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
> + QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
> pkgconfig_lib_replace
> }
>
> unix {
> + lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> + lafile_replace.replace = ""
> + lafile_replace.CONFIG = path
> CONFIG += create_libtool explicitlib
> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> + QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> }
>
> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
> ? With all the sed:ing going on, that path looks phony to me...
>
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS =
> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
> -lQt5Core -lpthread
>
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
>
> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
>
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
>
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
> libdir='/usr/lib'
>
>
I applied the "-L/usr/lib" -> "" to the .prl-files aswell, and now I don't
get any QA warnings, and everything builds, image, SDK and autotools
project using the SDK. See new version of the attached patch.
Does this look sane to you guys ?
-- Jacob
[-- Attachment #2: fix-la-files.patch --]
[-- Type: text/x-patch, Size: 4047 bytes --]
diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
index f85fb33..9079618 100644
--- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
+++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
@@ -46,57 +46,39 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
1 file changed, 31 insertions(+), 12 deletions(-)
-diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
-index 11509ee..2f95684 100644
---- a/mkspecs/features/qt_module.prf
-+++ b/mkspecs/features/qt_module.prf
-@@ -135,30 +135,49 @@ load(qt_installs)
+Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+===================================================================
+--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+@@ -135,30 +135,36 @@ load(qt_installs)
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
else: \
rplbase = $$MODULE_BASE_OUTDIR
-include_replace.match = $$rplbase/include
-include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-include_replace.CONFIG = path
--lib_replace.match = $$rplbase/lib
--host_build: \
-- lib_replace.replace = $$[QT_HOST_LIBS]
--else: \
+pkgconfig_include_replace.match = $$rplbase/include
+pkgconfig_include_replace.replace = "\$$\\{includedir}"
++pkgconfig_include_replace.CONFIG = path
+pkgconfig_lib_replace.match = $$rplbase/lib
+pkgconfig_lib_replace.replace = "\$$\\{libdir}"
-+!exists($$[QT_SYSROOT]) {
-+ include_replace.match = $$rplbase/include
-+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-+ include_replace.CONFIG = path
-+ lib_replace.match = $$rplbase/lib
++pkgconfig_lib_replace.CONFIG = path
+ lib_replace.match = $$rplbase/lib
+ host_build: \
+ lib_replace.replace = $$[QT_HOST_LIBS]
+ else: \
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
--lib_replace.CONFIG = path
-+ lib_replace.CONFIG = path
-+ lafile_replace.match = $$rplbase
-+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
-+} else {
-+ # include_replace and lib_replace are duplicate, but we don't want to
-+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
-+ include_replace.match = $$rplbase
-+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+ include_replace.CONFIG = path
-+ lib_replace.match = $$rplbase
-+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+ lib_replace.CONFIG = path
-+ lafile_replace.match = $$rplbase
-+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
-+}
- QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
+ lib_replace.CONFIG = path
+-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
++libcleanup_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
++libcleanup_replace.replace = ""
++libcleanup_replace.CONFIG = path
++QMAKE_PRL_INSTALL_REPLACE += lib_replace libcleanup_replace
unix|win32-g++* {
CONFIG += create_pc
-- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
+ QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
- QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
-+ host_build: \
-+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
-+ else: \
-+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
@@ -108,10 +90,7 @@ index 11509ee..2f95684 100644
CONFIG += create_libtool explicitlib
QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
- QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
-+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace libcleanup_replace
}
unix|win32-g++* {
---
-1.8.5.2
-
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-18 10:03 ` Jacob Kroon
2014-01-18 11:09 ` Jacob Kroon
@ 2014-01-18 11:38 ` Martin Jansa
2014-01-18 12:13 ` Jacob Kroon
1 sibling, 1 reply; 8+ messages in thread
From: Martin Jansa @ 2014-01-18 11:38 UTC (permalink / raw)
To: Jacob Kroon; +Cc: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 11333 bytes --]
On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
> Hi Andreas and Martin,
>
> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>
> >
> > On Mon, 13 Jan 2014, Martin Jansa wrote:
> >
> > On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
> >>
> >>> Hi,
> >>>
> >>> I'm seeing what I believe is a problem with the *.la files in the Qt5
> >>> dev-packages.
> >>> The files references paths in my OE build environment, like so:
> >>>
> >>> ...
> >>> # Libraries that this one depends upon.
> >>> dependency_libs='-lQt5Gui
> >>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>> sysroots/wandboard-solo/usr/lib
> >>> -lQt5Core -lpthread '
> >>> ...
> >>> # Directory that this library needs to be installed in:
> >>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>> sysroots/wandboard-solo/usr'
> >>> ...
> >>>
> >>> I noticed this since my Qt5 autotools project wouldn't link properly when
> >>> using the SDK, unless I first removed all libQt5*.la files.
> >>>
> >>> I'm not quite sure where to look for the problem so any pointers would be
> >>> appreciated.
> >>>
> >>
> >> Probably bad rebase on my side, please compare
> >>
> >> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
> >>
> >> changed in:
> >> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
> >> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
> >> and
> >> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
> >> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >>
> >> Or better in meta-qt5's qtbase repo:
> >> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
> >> features/qt_module.prf
> >> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
> >> features/qt_module.prf
> >>
> >>
> > I tried building Qt 5.1.1 from master again, the .la-files do look better,
> > "libdir" looks correct (taken from libQt5Svg.la):
> >
> > <snip>
> >
> > # Directory that this library needs to be installed in:
> > libdir='/usr/lib'
> > </snip>
> >
> > however
> >
> > <snip>
> >
> > dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> > devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> > -lpthread '
> > </snip>
> >
> > Dunno wether this is a problem or not, I never tried building the project
> > with 5.1.1 using the SDK.
> >
> > Will hopefully have some time tomorrow to look at the links you sent.
> >
> > Thanks,
> >
> > Jacob
> >
>
> I'm trying to get the .la-files for Qt5 dev-packages correct.
>
> What I've come up with so far is attached in the patch (to be applied in
> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
>
> With the patch applied I can still build both an image and an SDK, and also
> the resulting SDK can be used to build my QT5 autotools projects. But I get
> these warnings when building for instance "qtxmlpatterns":
>
> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
> include and/or library paths were used.
This warning is the reason why I've originally created this patch, so
something is definitely wrong in new version.
I know it's very confusing .prf (and last upstream changes didn't make
it any easier), I'll try to look at it this weekend.
It would be great to prepare some nice reproducer which we can use in
upstream gerrit to show that this really doesn't work well in more
complicated case (like our cross-compile with "sstate-relocateable"
.prl,.la,.pc files, where we really don't want to include host paths).
Do you have something like smaller test case or were you testing it on
"big" qtbase build?
> With my patch applied,
> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
> like this:
>
> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> @@ -135,30 +135,36 @@ load(qt_installs)
> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> else: \
> rplbase = $$MODULE_BASE_OUTDIR
> -include_replace.match = $$rplbase/include
> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -include_replace.CONFIG = path
> +pkgconfig_include_replace.match = $$rplbase/include
> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> +pkgconfig_include_replace.CONFIG = path
> +pkgconfig_lib_replace.match = $$rplbase/lib
> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> +pkgconfig_lib_replace.CONFIG = path
> lib_replace.match = $$rplbase/lib
> host_build: \
> lib_replace.replace = $$[QT_HOST_LIBS]
> else: \
> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> lib_replace.CONFIG = path
> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
>
> unix|win32-g++* {
> CONFIG += create_pc
> QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> - QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
> + QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
> pkgconfig_lib_replace
> }
>
> unix {
> + lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> + lafile_replace.replace = ""
> + lafile_replace.CONFIG = path
> CONFIG += create_libtool explicitlib
> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> + QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> }
>
> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
> ? With all the sed:ing going on, that path looks phony to me...
>
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS =
> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
> -lQt5Core -lpthread
>
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
>
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
>
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
> libdir='/usr/lib'
>
> -- Jacob (very confused)
> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> index f85fb33..5503e1a 100644
> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
> mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
> 1 file changed, 31 insertions(+), 12 deletions(-)
>
> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
> -index 11509ee..2f95684 100644
> ---- a/mkspecs/features/qt_module.prf
> -+++ b/mkspecs/features/qt_module.prf
> -@@ -135,30 +135,49 @@ load(qt_installs)
> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> +===================================================================
> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> +@@ -135,30 +135,36 @@ load(qt_installs)
> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> else: \
> rplbase = $$MODULE_BASE_OUTDIR
> -include_replace.match = $$rplbase/include
> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -include_replace.CONFIG = path
> --lib_replace.match = $$rplbase/lib
> --host_build: \
> -- lib_replace.replace = $$[QT_HOST_LIBS]
> --else: \
> +pkgconfig_include_replace.match = $$rplbase/include
> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> ++pkgconfig_include_replace.CONFIG = path
> +pkgconfig_lib_replace.match = $$rplbase/lib
> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> -+!exists($$[QT_SYSROOT]) {
> -+ include_replace.match = $$rplbase/include
> -+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -+ include_replace.CONFIG = path
> -+ lib_replace.match = $$rplbase/lib
> ++pkgconfig_lib_replace.CONFIG = path
> + lib_replace.match = $$rplbase/lib
> + host_build: \
> + lib_replace.replace = $$[QT_HOST_LIBS]
> + else: \
> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> --lib_replace.CONFIG = path
> -+ lib_replace.CONFIG = path
> -+ lafile_replace.match = $$rplbase
> -+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
> -+} else {
> -+ # include_replace and lib_replace are duplicate, but we don't want to
> -+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
> -+ include_replace.match = $$rplbase
> -+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> -+ include_replace.CONFIG = path
> -+ lib_replace.match = $$rplbase
> -+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> -+ lib_replace.CONFIG = path
> -+ lafile_replace.match = $$rplbase
> -+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
> -+}
> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> + lib_replace.CONFIG = path
> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
>
> unix|win32-g++* {
> CONFIG += create_pc
> -- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> + QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> -+ host_build: \
> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
> -+ else: \
> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
> }
>
> unix {
> ++ lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> ++ lafile_replace.replace = ""
> ++ lafile_replace.CONFIG = path
> CONFIG += create_libtool explicitlib
> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> -+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
> ++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> }
>
> unix|win32-g++* {
> ---
> -1.8.5.2
> -
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-18 11:38 ` Martin Jansa
@ 2014-01-18 12:13 ` Jacob Kroon
2014-01-18 13:31 ` Martin Jansa
0 siblings, 1 reply; 8+ messages in thread
From: Jacob Kroon @ 2014-01-18 12:13 UTC (permalink / raw)
To: Martin Jansa; +Cc: openembedded-devel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 12006 bytes --]
On Sat, 18 Jan 2014, Martin Jansa wrote:
> On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
>> Hi Andreas and Martin,
>>
>> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>>
>>>
>>> On Mon, 13 Jan 2014, Martin Jansa wrote:
>>>
>>> On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>>>>> dev-packages.
>>>>> The files references paths in my OE build environment, like so:
>>>>>
>>>>> ...
>>>>> # Libraries that this one depends upon.
>>>>> dependency_libs='-lQt5Gui
>>>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>>> sysroots/wandboard-solo/usr/lib
>>>>> -lQt5Core -lpthread '
>>>>> ...
>>>>> # Directory that this library needs to be installed in:
>>>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>>> sysroots/wandboard-solo/usr'
>>>>> ...
>>>>>
>>>>> I noticed this since my Qt5 autotools project wouldn't link properly when
>>>>> using the SDK, unless I first removed all libQt5*.la files.
>>>>>
>>>>> I'm not quite sure where to look for the problem so any pointers would be
>>>>> appreciated.
>>>>>
>>>>
>>>> Probably bad rebase on my side, please compare
>>>>
>>>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>>>>
>>>> changed in:
>>>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
>>>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
>>>> and
>>>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
>>>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>>>>
>>>> Or better in meta-qt5's qtbase repo:
>>>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
>>>> features/qt_module.prf
>>>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
>>>> features/qt_module.prf
>>>>
>>>>
>>> I tried building Qt 5.1.1 from master again, the .la-files do look better,
>>> "libdir" looks correct (taken from libQt5Svg.la):
>>>
>>> <snip>
>>>
>>> # Directory that this library needs to be installed in:
>>> libdir='/usr/lib'
>>> </snip>
>>>
>>> however
>>>
>>> <snip>
>>>
>>> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
>>> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
>>> -lpthread '
>>> </snip>
>>>
>>> Dunno wether this is a problem or not, I never tried building the project
>>> with 5.1.1 using the SDK.
>>>
>>> Will hopefully have some time tomorrow to look at the links you sent.
>>>
>>> Thanks,
>>>
>>> Jacob
>>>
>>
>> I'm trying to get the .la-files for Qt5 dev-packages correct.
>>
>> What I've come up with so far is attached in the patch (to be applied in
>> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
>>
>> With the patch applied I can still build both an image and an SDK, and also
>> the resulting SDK can be used to build my QT5 autotools projects. But I get
>> these warnings when building for instance "qtxmlpatterns":
>>
>> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
>> include and/or library paths were used.
>
> This warning is the reason why I've originally created this patch, so
> something is definitely wrong in new version.
I got rid of this warning by adding the "-L/usr/lib" -> "" substitution
for the .prl file aswell. But it's an ugly hack I guess..
> I know it's very confusing .prf (and last upstream changes didn't make
> it any easier), I'll try to look at it this weekend.
>
> It would be great to prepare some nice reproducer which we can use in
> upstream gerrit to show that this really doesn't work well in more
> complicated case (like our cross-compile with "sstate-relocateable"
> .prl,.la,.pc files, where we really don't want to include host paths).
>
> Do you have something like smaller test case or were you testing it on
> "big" qtbase build?
>
Unfortunately no, I did all testing on the big
qtbase-native/qtbase/nativesdk-qtbase packages (pats my poor laptop
harddrive). Do you have an idea of where to start for creating such a test
case ? Something like a recipe that uses qtbase but only builds qmake + a
minimal Qt module ?
>> With my patch applied,
>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
>> like this:
>>
>> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
>> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> @@ -135,30 +135,36 @@ load(qt_installs)
>> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>> else: \
>> rplbase = $$MODULE_BASE_OUTDIR
>> -include_replace.match = $$rplbase/include
>> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>> -include_replace.CONFIG = path
>> +pkgconfig_include_replace.match = $$rplbase/include
>> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
>> +pkgconfig_include_replace.CONFIG = path
>> +pkgconfig_lib_replace.match = $$rplbase/lib
>> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
>> +pkgconfig_lib_replace.CONFIG = path
>> lib_replace.match = $$rplbase/lib
>> host_build: \
>> lib_replace.replace = $$[QT_HOST_LIBS]
>> else: \
>> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
>> lib_replace.CONFIG = path
>> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
>>
>> unix|win32-g++* {
>> CONFIG += create_pc
>> QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
>> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
>> - QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
>> + QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
>> pkgconfig_lib_replace
>> }
>>
>> unix {
>> + lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
>> + lafile_replace.replace = ""
>> + lafile_replace.CONFIG = path
>> CONFIG += create_libtool explicitlib
>> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
>> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
>> + QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>> }
>>
>> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
>> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
>> ? With all the sed:ing going on, that path looks phony to me...
>>
>> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
>> QMAKE_PRL_BUILD_DIR =
>> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
>> QMAKE_PRL_LIBS =
>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
>> -lQt5Core -lpthread
>>
>> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
>> dependency_libs=' -lQt5Core -lpthread '
>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
>>
>> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
>> QMAKE_PRL_BUILD_DIR =
>> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
>> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
>>
>> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
>> dependency_libs=' -lQt5Core -lpthread '
>> libdir='/usr/lib'
>>
>> -- Jacob (very confused)
>
>> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> index f85fb33..5503e1a 100644
>> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
>> mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
>> 1 file changed, 31 insertions(+), 12 deletions(-)
>>
>> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
>> -index 11509ee..2f95684 100644
>> ---- a/mkspecs/features/qt_module.prf
>> -+++ b/mkspecs/features/qt_module.prf
>> -@@ -135,30 +135,49 @@ load(qt_installs)
>> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> +===================================================================
>> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
>> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> +@@ -135,30 +135,36 @@ load(qt_installs)
>> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>> else: \
>> rplbase = $$MODULE_BASE_OUTDIR
>> -include_replace.match = $$rplbase/include
>> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>> -include_replace.CONFIG = path
>> --lib_replace.match = $$rplbase/lib
>> --host_build: \
>> -- lib_replace.replace = $$[QT_HOST_LIBS]
>> --else: \
>> +pkgconfig_include_replace.match = $$rplbase/include
>> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
>> ++pkgconfig_include_replace.CONFIG = path
>> +pkgconfig_lib_replace.match = $$rplbase/lib
>> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
>> -+!exists($$[QT_SYSROOT]) {
>> -+ include_replace.match = $$rplbase/include
>> -+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>> -+ include_replace.CONFIG = path
>> -+ lib_replace.match = $$rplbase/lib
>> ++pkgconfig_lib_replace.CONFIG = path
>> + lib_replace.match = $$rplbase/lib
>> + host_build: \
>> + lib_replace.replace = $$[QT_HOST_LIBS]
>> + else: \
>> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
>> --lib_replace.CONFIG = path
>> -+ lib_replace.CONFIG = path
>> -+ lafile_replace.match = $$rplbase
>> -+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
>> -+} else {
>> -+ # include_replace and lib_replace are duplicate, but we don't want to
>> -+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
>> -+ include_replace.match = $$rplbase
>> -+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
>> -+ include_replace.CONFIG = path
>> -+ lib_replace.match = $$rplbase
>> -+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
>> -+ lib_replace.CONFIG = path
>> -+ lafile_replace.match = $$rplbase
>> -+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
>> -+}
>> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> + lib_replace.CONFIG = path
>> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
>>
>> unix|win32-g++* {
>> CONFIG += create_pc
>> -- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>> + QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
>> -+ host_build: \
>> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
>> -+ else: \
>> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
>> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
>> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
>> }
>>
>> unix {
>> ++ lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
>> ++ lafile_replace.replace = ""
>> ++ lafile_replace.CONFIG = path
>> CONFIG += create_libtool explicitlib
>> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
>> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
>> -+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
>> ++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>> }
>>
>> unix|win32-g++* {
>> ---
>> -1.8.5.2
>> -
>
>
> --
> Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories
2014-01-18 12:13 ` Jacob Kroon
@ 2014-01-18 13:31 ` Martin Jansa
0 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2014-01-18 13:31 UTC (permalink / raw)
To: Jacob Kroon; +Cc: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 12979 bytes --]
On Sat, Jan 18, 2014 at 01:13:48PM +0100, Jacob Kroon wrote:
>
> On Sat, 18 Jan 2014, Martin Jansa wrote:
>
> > On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
> >> Hi Andreas and Martin,
> >>
> >> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
> >>
> >>>
> >>> On Mon, 13 Jan 2014, Martin Jansa wrote:
> >>>
> >>> On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
> >>>>> dev-packages.
> >>>>> The files references paths in my OE build environment, like so:
> >>>>>
> >>>>> ...
> >>>>> # Libraries that this one depends upon.
> >>>>> dependency_libs='-lQt5Gui
> >>>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>>>> sysroots/wandboard-solo/usr/lib
> >>>>> -lQt5Core -lpthread '
> >>>>> ...
> >>>>> # Directory that this library needs to be installed in:
> >>>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>>>> sysroots/wandboard-solo/usr'
> >>>>> ...
> >>>>>
> >>>>> I noticed this since my Qt5 autotools project wouldn't link properly when
> >>>>> using the SDK, unless I first removed all libQt5*.la files.
> >>>>>
> >>>>> I'm not quite sure where to look for the problem so any pointers would be
> >>>>> appreciated.
> >>>>>
> >>>>
> >>>> Probably bad rebase on my side, please compare
> >>>>
> >>>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
> >>>>
> >>>> changed in:
> >>>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
> >>>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
> >>>> and
> >>>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
> >>>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >>>>
> >>>> Or better in meta-qt5's qtbase repo:
> >>>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
> >>>> features/qt_module.prf
> >>>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
> >>>> features/qt_module.prf
> >>>>
> >>>>
> >>> I tried building Qt 5.1.1 from master again, the .la-files do look better,
> >>> "libdir" looks correct (taken from libQt5Svg.la):
> >>>
> >>> <snip>
> >>>
> >>> # Directory that this library needs to be installed in:
> >>> libdir='/usr/lib'
> >>> </snip>
> >>>
> >>> however
> >>>
> >>> <snip>
> >>>
> >>> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> >>> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> >>> -lpthread '
> >>> </snip>
> >>>
> >>> Dunno wether this is a problem or not, I never tried building the project
> >>> with 5.1.1 using the SDK.
> >>>
> >>> Will hopefully have some time tomorrow to look at the links you sent.
> >>>
> >>> Thanks,
> >>>
> >>> Jacob
> >>>
> >>
> >> I'm trying to get the .la-files for Qt5 dev-packages correct.
> >>
> >> What I've come up with so far is attached in the patch (to be applied in
> >> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
> >>
> >> With the patch applied I can still build both an image and an SDK, and also
> >> the resulting SDK can be used to build my QT5 autotools projects. But I get
> >> these warnings when building for instance "qtxmlpatterns":
> >>
> >> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
> >> include and/or library paths were used.
> >
> > This warning is the reason why I've originally created this patch, so
> > something is definitely wrong in new version.
>
> I got rid of this warning by adding the "-L/usr/lib" -> "" substitution
> for the .prl file aswell. But it's an ugly hack I guess..
>
> > I know it's very confusing .prf (and last upstream changes didn't make
> > it any easier), I'll try to look at it this weekend.
> >
> > It would be great to prepare some nice reproducer which we can use in
> > upstream gerrit to show that this really doesn't work well in more
> > complicated case (like our cross-compile with "sstate-relocateable"
> > .prl,.la,.pc files, where we really don't want to include host paths).
> >
> > Do you have something like smaller test case or were you testing it on
> > "big" qtbase build?
> >
>
> Unfortunately no, I did all testing on the big
> qtbase-native/qtbase/nativesdk-qtbase packages (pats my poor laptop
> harddrive). Do you have an idea of where to start for creating such a test
> case ? Something like a recipe that uses qtbase but only builds qmake + a
> minimal Qt module ?
Not really, back then I was also using whole qtbase build (regenerating
Makefile with qmake and .prf edited manually, checking the replacements
in Makefile until they looked sane and then rebuilding qtbase-native/qtbase
from scratch for final test).
> >> With my patch applied,
> >> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
> >> like this:
> >>
> >> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> >> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> @@ -135,30 +135,36 @@ load(qt_installs)
> >> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> >> else: \
> >> rplbase = $$MODULE_BASE_OUTDIR
> >> -include_replace.match = $$rplbase/include
> >> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >> -include_replace.CONFIG = path
> >> +pkgconfig_include_replace.match = $$rplbase/include
> >> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> >> +pkgconfig_include_replace.CONFIG = path
> >> +pkgconfig_lib_replace.match = $$rplbase/lib
> >> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> >> +pkgconfig_lib_replace.CONFIG = path
> >> lib_replace.match = $$rplbase/lib
> >> host_build: \
> >> lib_replace.replace = $$[QT_HOST_LIBS]
> >> else: \
> >> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> >> lib_replace.CONFIG = path
> >> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
> >>
> >> unix|win32-g++* {
> >> CONFIG += create_pc
> >> QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> >> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> >> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> >> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> >> - QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
> >> + QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
> >> pkgconfig_lib_replace
> >> }
> >>
> >> unix {
> >> + lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> >> + lafile_replace.replace = ""
> >> + lafile_replace.CONFIG = path
> >> CONFIG += create_libtool explicitlib
> >> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> >> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> >> + QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> >> }
> >>
> >> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
> >> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
> >> ? With all the sed:ing going on, that path looks phony to me...
> >>
> >> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
> >> QMAKE_PRL_BUILD_DIR =
> >> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
> >> QMAKE_PRL_LIBS =
> >> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
> >> -lQt5Core -lpthread
> >>
> >> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
> >> dependency_libs=' -lQt5Core -lpthread '
> >> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
> >>
> >> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
> >> QMAKE_PRL_BUILD_DIR =
> >> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
> >> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
> >>
> >> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
> >> dependency_libs=' -lQt5Core -lpthread '
> >> libdir='/usr/lib'
> >>
> >> -- Jacob (very confused)
> >
> >> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> index f85fb33..5503e1a 100644
> >> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
> >> mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
> >> 1 file changed, 31 insertions(+), 12 deletions(-)
> >>
> >> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
> >> -index 11509ee..2f95684 100644
> >> ---- a/mkspecs/features/qt_module.prf
> >> -+++ b/mkspecs/features/qt_module.prf
> >> -@@ -135,30 +135,49 @@ load(qt_installs)
> >> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> +===================================================================
> >> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> >> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> +@@ -135,30 +135,36 @@ load(qt_installs)
> >> rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> >> else: \
> >> rplbase = $$MODULE_BASE_OUTDIR
> >> -include_replace.match = $$rplbase/include
> >> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >> -include_replace.CONFIG = path
> >> --lib_replace.match = $$rplbase/lib
> >> --host_build: \
> >> -- lib_replace.replace = $$[QT_HOST_LIBS]
> >> --else: \
> >> +pkgconfig_include_replace.match = $$rplbase/include
> >> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> >> ++pkgconfig_include_replace.CONFIG = path
> >> +pkgconfig_lib_replace.match = $$rplbase/lib
> >> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> >> -+!exists($$[QT_SYSROOT]) {
> >> -+ include_replace.match = $$rplbase/include
> >> -+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >> -+ include_replace.CONFIG = path
> >> -+ lib_replace.match = $$rplbase/lib
> >> ++pkgconfig_lib_replace.CONFIG = path
> >> + lib_replace.match = $$rplbase/lib
> >> + host_build: \
> >> + lib_replace.replace = $$[QT_HOST_LIBS]
> >> + else: \
> >> lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> >> --lib_replace.CONFIG = path
> >> -+ lib_replace.CONFIG = path
> >> -+ lafile_replace.match = $$rplbase
> >> -+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
> >> -+} else {
> >> -+ # include_replace and lib_replace are duplicate, but we don't want to
> >> -+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
> >> -+ include_replace.match = $$rplbase
> >> -+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> >> -+ include_replace.CONFIG = path
> >> -+ lib_replace.match = $$rplbase
> >> -+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> >> -+ lib_replace.CONFIG = path
> >> -+ lafile_replace.match = $$rplbase
> >> -+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
> >> -+}
> >> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> + lib_replace.CONFIG = path
> >> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
> >>
> >> unix|win32-g++* {
> >> CONFIG += create_pc
> >> -- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >> + QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >> - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> >> -+ host_build: \
> >> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
> >> -+ else: \
> >> -+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
> >> + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> >> QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> >> QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> >> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
> >> }
> >>
> >> unix {
> >> ++ lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> >> ++ lafile_replace.replace = ""
> >> ++ lafile_replace.CONFIG = path
> >> CONFIG += create_libtool explicitlib
> >> QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> >> - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> >> -+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
> >> ++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> >> }
> >>
> >> unix|win32-g++* {
> >> ---
> >> -1.8.5.2
> >> -
> >
> >
> > --
> > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
> >
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-01-18 13:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-13 0:58 [meta-qt5][jansa/qt5-5.2.0] libQt5*.la references OE build directories Jacob Kroon
2014-01-13 10:11 ` Martin Jansa
2014-01-14 0:03 ` Jacob Kroon
2014-01-18 10:03 ` Jacob Kroon
2014-01-18 11:09 ` Jacob Kroon
2014-01-18 11:38 ` Martin Jansa
2014-01-18 12:13 ` Jacob Kroon
2014-01-18 13:31 ` Martin Jansa
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.