Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
On 6/3/23 23:19, Lisandro Damián Nicanor Pérez Meyer wrote: Changing Prefix to be a relative path would then break all qmake builds. do you see any possible workaround for this? Switching to CMake should do the trick I guess. Alternatively, - rename qt.conf to somethingelse.conf - rename qmake to qmake_orig - create a wrapper script that calls "qmake-orig -qtconf somethingelse.conf $@" - name that wrapper script qmake -- Jörg Bornemann | The Qt Company -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
Hi, On Fri, 2 Jun 2023 at 06:24, arslan.ahmad--- via Development wrote: > > > Changing Prefix to be a relative path would then break all qmake builds. > > do you see any possible workaround for this? Switching to CMake should do the trick I guess. -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
> Changing Prefix to be a relative path would then break all qmake builds. do you see any possible workaround for this? From: Development on behalf of Samuli Piippo via Development Sent: Friday, June 2, 2023 2:15 PM To: development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths qt.conf is there mainly for qmake, which needs to know both target paths and host paths. Now unfortunately, this also affects lupdate which expect LibraryExecutables to be a host path, while qt.conf tells qmake that it's really HostLibraryExecutables. Changing Prefix to be a relative path would then break all qmake builds. -samuli From: Development on behalf of arslan.ahmad--- via Development Sent: 02 June 2023 11:58 To: Joerg Bornemann ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths > Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. Yocto sdk generates Qt tools to be used on the host machine, but the paths are not relative to the sdk in the qt.conf. I believe these should be relative to the sdk. Otherwise the host tools in the sdk can't be used > Why is there a separate qt.conf? Separate qt.conf are created by the populate_sdk_qt6_base.bbclass: https://code.qt.io/cgit/yocto/meta-qt6.git/tree/classes/populate_sdk_qt6_base.bbclass#n45 From: Jörg Bornemann Sent: Friday, June 2, 2023 1:13 PM To: Ahmad, Arslan (DI SW CAS ES LI MEL) ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths On 5/30/23 16:50, arslan.ahmad--- via Development wrote: > When running lupdate from a yocto sdk, I get the following error: > > $ lupdate -pro example.pro > sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company From: Development on behalf of arslan.ahmad--- via Development Sent: 02 June 2023 11:58 To: Joerg Bornemann ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths > Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. Yocto sdk generates Qt tools to be used on the host machine, but the paths are not relative to the sdk in the qt.conf. I believe these should be relative to the sdk. Otherwise the host tools in the sdk can't be used > Why is there a separate qt.conf? Separate qt.conf are created by the populate_sdk_qt6_base.bbclass: https://code.qt.io/cgit/yocto/meta-qt6.git/tree/classes/populate_sdk_qt6_base.bbclass#n45 From: Jörg Bornemann Sent: Friday, June 2, 2023 1:13 PM To: Ahmad, Arslan (DI SW CAS ES LI MEL) ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths On 5/30/23 16:50, arslan.ahmad--- via Development wrote: > When running lupdate from a yocto sdk, I get the following error: > > $ lupdate -pro example.pro > sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
qt.conf is there mainly for qmake, which needs to know both target paths and host paths. Now unfortunately, this also affects lupdate which expect LibraryExecutables to be a host path, while qt.conf tells qmake that it's really HostLibraryExecutables. Changing Prefix to be a relative path would then break all qmake builds. -samuli From: Development on behalf of arslan.ahmad--- via Development Sent: 02 June 2023 11:58 To: Joerg Bornemann ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths > Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. Yocto sdk generates Qt tools to be used on the host machine, but the paths are not relative to the sdk in the qt.conf. I believe these should be relative to the sdk. Otherwise the host tools in the sdk can't be used > Why is there a separate qt.conf? Separate qt.conf are created by the populate_sdk_qt6_base.bbclass: https://code.qt.io/cgit/yocto/meta-qt6.git/tree/classes/populate_sdk_qt6_base.bbclass#n45 From: Jörg Bornemann Sent: Friday, June 2, 2023 1:13 PM To: Ahmad, Arslan (DI SW CAS ES LI MEL) ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths On 5/30/23 16:50, arslan.ahmad--- via Development wrote: > When running lupdate from a yocto sdk, I get the following error: > > $ lupdate -pro example.pro > sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company From: Development on behalf of arslan.ahmad--- via Development Sent: 02 June 2023 11:58 To: Joerg Bornemann ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths > Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. Yocto sdk generates Qt tools to be used on the host machine, but the paths are not relative to the sdk in the qt.conf. I believe these should be relative to the sdk. Otherwise the host tools in the sdk can't be used > Why is there a separate qt.conf? Separate qt.conf are created by the populate_sdk_qt6_base.bbclass: https://code.qt.io/cgit/yocto/meta-qt6.git/tree/classes/populate_sdk_qt6_base.bbclass#n45 From: Jörg Bornemann Sent: Friday, June 2, 2023 1:13 PM To: Ahmad, Arslan (DI SW CAS ES LI MEL) ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths On 5/30/23 16:50, arslan.ahmad--- via Development wrote: > When running lupdate from a yocto sdk, I get the following error: > > $ lupdate -pro example.pro > sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
> Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. Yocto sdk generates Qt tools to be used on the host machine, but the paths are not relative to the sdk in the qt.conf. I believe these should be relative to the sdk. Otherwise the host tools in the sdk can't be used > Why is there a separate qt.conf? Separate qt.conf are created by the populate_sdk_qt6_base.bbclass: https://code.qt.io/cgit/yocto/meta-qt6.git/tree/classes/populate_sdk_qt6_base.bbclass#n45 From: Jörg Bornemann Sent: Friday, June 2, 2023 1:13 PM To: Ahmad, Arslan (DI SW CAS ES LI MEL) ; development@qt-project.org Subject: Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths On 5/30/23 16:50, arslan.ahmad--- via Development wrote: > When running lupdate from a yocto sdk, I get the following error: > > $ lupdate -pro example.pro > sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
On 5/30/23 16:50, arslan.ahmad--- via Development wrote: When running lupdate from a yocto sdk, I get the following error: $ lupdate -pro example.pro sh: 1: /usr/libexec/lupdate-pro: not found Looks like you're somehow mixing a host Qt and a cross-compiled Qt? lupdate assumes that lupdate-pro is located in the same host Qt that lupdate belongs to. That's why LibraryExecutables is used. > The same problem occurs again when it enters usr/libexec since there is a separate qt.conf Why is there a separate qt.conf? -- Jörg Bornemann | The Qt Company -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
[Development] unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
When running lupdate from a yocto sdk, I get the following error: $ lupdate -pro example.pro sh: 1: /usr/libexec/lupdate-pro: not found qt.conf: [Paths] Prefix = /usr Headers = /usr/include Libraries = /usr/lib64 ArchData = /usr/lib64 Data = /usr/share Binaries = /usr/bin LibraryExecutables = /usr/libexec Plugins = /usr/lib64/plugins Qml2Imports = /usr/lib64/qml Translations = /usr/share/translations Documentation = /usr/share/doc Settings = /etc/xdg Examples = /usr/share/examples Tests = /usr/tests HostPrefix = ../.. HostData = ../armv8a-oe-linux/usr/lib64 HostBinaries = usr/bin HostLibraries = usr/lib64 HostLibraryExecutables = usr/libexec Sysroot = ../../../armv8a-oe-linux HostSpec = linux-oe-g++ TargetSpec = linux-oe-g++ SysrootifyPrefix = true I was of the view that qttools would use HostLibraryExecutables but looking at the source of qttools, i came to know that LibraryExecutables will be used and since that is an absolute path instead relative to the sdk, i get the above error. I can resolve this by setting Prefix to ../.. and LibraryExecutables to usr/libexec, i.e. the values being used by HostPrefix and HostLibraryExecutables respectively. The same problem occurs again when it enters usr/libexec since there is a separate qt.conf there that lupdate-pro uses: $ lupdate -pro example.pro sh: 1: /usr/libexec/lprodump: not found I made the same changes as the previous qt.conf, and now it works. So my question here is that is this approach correct to update the qt.conf or will it cause any issues to the sdk? I am using meta-qt6 on 6.2 LTS -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development