[Development] The sorry state of the Qt6 cross compile experience
Bogdan Vatra
bogdan.vatra at kdab.com
Thu Feb 25 12:23:54 CET 2021
Hi,
În ziua de joi, 25 februarie 2021, la 12:40:30 EET, Dominik Holland a scris:
> Hi,
>
> Am 2/25/21 um 11:07 AM schrieb Bogdan Vatra:
> > Hi,
> >
> > În ziua de miercuri, 24 februarie 2021, la 17:32:57 EET, Dominik Holland a
> >
> > scris:
> >> Am 2/24/21 um 4:25 PM schrieb Joerg Bornemann:
> >>> On 2/24/21 12:56 PM, Bogdan Vatra wrote:
> >>>> Let me give you another non-android example:
> >>>> You want to create a standalone SDK for linux armhf using yocto. You'll
> >>>> generate the SDK with everything including Qt for host and for
> >>>> target, the sdk
> >>>> is a huge auto extract archive which can be shared with everyone. Can
> >>>> this
> >>>> archive contain only the Qt for the target? Nope because there is no
> >>>> way to
> >>>> know if and where the Qt for host is installed on everyone computers,
> >>>> you also
> >>>> need to know where the Qt for host it is in order to fix the
> >>>> hardcoded paths.
> >>
> >> Mhh, yocto builds both the host Qt and the target Qt and the SDK archive
> >> will contain both Qt version. But this was already the case for Qt5 as
> >> well. I don't think anything has changed here.
> >
> > Vanilla yocto does NOT add Qt 5 for host, same for buildroot!
> > You probably mean that you're forcing yocto to add Qt 5 for host as well.
> > Joust out of pure curiosity, what's the reason to add Qt 5 for host in the
> > yocto SDK?
>
> I'm not sure whether we are talking about the same thing here. But if
> you create a proper yocto SDK you want it to be usable standalone.
> Which means the host part of the yocto SDK contains the cross-compiler,
> gdb and other other host tools you need for the cross-compilation.
> This also includes the host-tools like qmake, moc, uic etc. as those are
> needed for cross-compiling to be executed on the host.
>
> Yes, whether those host tools are part of the created SDK is on you to
> decide, but so far all yocto SDKs i have used so far ship the qt host
> tools in the SDK as well.
>
> Yocto also uses the same host vs target build concept Qt6 is using now
> and for Qt5 yocto forced us to do the same thing as well, it's just
> behind the scenes:
>
> qtbase-native.bb: Native Qt build
> qtbase(-target).bb: cross Qt build (using the moc, uic and friends from
> the native build)
> qtbase-nativesdk.bb: Special nativesdk Qt build (Which provides the
> tools shiped with the SDK, this is not the same as the native build, as
> you could create a SDK for different target architecture e.g. mingw)
>
I apologize, you're right.
I only checked if buildroot's SDK if is working and it has only one Qt copy,
which it has.
Indeed the yocto minimal sdk (qt5-image:populate_sdk) does not add Qt5 tools
to host (for some reason it builds them for the target instead for the
host...).
Sorry!
Cheers,
BogDan.
More information about the Development
mailing list