<div dir="ltr"><div>Hi,</div><div>I pushed some scripts in issue <a class="gmail-issue-link" href="https://bugreports.qt.io/browse/QBS-1188" id="gmail-key-val" rel="250364">QBS-1188</a>.<br></div><div>They allow to compile qbs inside yocto and also to use qbs to compile inside a recipe (just by inheriting from qbs).</div><div><br></div><div>But when developing code using qtc this is not very convenient so I have a script that generates this kind of profile:</div><div>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\cCompilerName=gcc<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\compilerName=g++<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\cxxCompilerName=g++<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\platformCommonCompilerFlags=@Invalid()<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\platformLinkerFlags=@Invalid()<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\toolchainInstallPath=/usr/local/oecore-x86_64/sysroots/x86_64-cascadesdk-linux/usr/bin/arm-cascade-linux-gnueabi<br>qt-project\qbs\profiles\qtc_oe_25deb62a\cpp\toolchainPrefix=arm-cascade-linux-gnueabi-<br>qt-project\qbs\profiles\qtc_oe_25deb62a\moduleProviders\Qt\qmakeFilePaths=/home/raphael/src/yocto/rocko/poky/meta-cascade/script/qmake<br>qt-project\qbs\profiles\qtc_oe_25deb62a\qbs\architecture=arm<br>qt-project\qbs\profiles\qtc_oe_25deb62a\qbs\sysroot=/usr/local/oecore-x86_64/sysroots/cortexa9hf-neon-cascade-linux-gnueabi<br>qt-project\qbs\profiles\qtc_oe_25deb62a\qbs\targetPlatform=linux<br>qt-project\qbs\profiles\qtc_oe_25deb62a\qbs\toolchain=@Variant(\0\0\0\t\0\0\0\x1\0\0\0\n\0\0\0\x6\0g\0\x63\0\x63)</div><div><br></div><div>I've attached the different scripts.</div><div>It's not very clean but allows to use qbs/qtc without having to source the yocto env.</div><div><br></div><div>Having a qbs-setup-yocto script/program could be used to achieve that.</div><div>This tool should be provided by qbs like all other qbs-setup-*.</div><div>I don't know what should be done about the qbs recipes. Trying to add them in meta-qt?</div><div><br></div><div>Raph<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le sam. 23 mai 2020 à 03:34, Christian Gagneraud <<a href="mailto:chgans@gmail.com">chgans@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sat, 23 May 2020 at 07:34, Richard Weickelt <<a href="mailto:richard@weickelt.de" target="_blank">richard@weickelt.de</a>> wrote:<br>
> > Thus I don't think that it should be made into the official Qbs codebase.<br>
> > Maybe this code could be used in some How-To section or something.<br>
><br>
> What's your experience in using Qbs with Yocto? Once you solved the<br>
> EnvironmentScriptProbe, were there a lot of additional steps needed? Any<br>
> pitfalls? I guess a howto would be nice in general and might be interesting<br>
> for some people. On the other hand - and without having much knowledge about<br>
> yocto - how high is the risk that this howto would be outdated by tomorrow?<br>
<br>
Yocto is a "classic" for embedded Linux system. It's been around for<br>
many years (ages).<br>
It is a REFERENCE in this domain, is sponsored by the Linux<br>
foundation, and SoC manufacturers contribute mainstream by providing<br>
their own "hardware layer".<br>
It support all common (and uncommon) architectures used in the<br>
industry (PowerPC, Mips, Arm, ...)<br>
Last but not least, Yocto is the technology behind Boot2Qt, Qt5 has<br>
it's own layer:<br>
<a href="https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-qt5" rel="noreferrer" target="_blank">https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-qt5</a>,<br>
and boot2qt-opensource too:<br>
<a href="https://code.qt.io/cgit/yocto/meta-boot2qt.git/" rel="noreferrer" target="_blank">https://code.qt.io/cgit/yocto/meta-boot2qt.git/</a><br>
<br>
Adding support for Yocto to Qbs is IMHO a big win.<br>
Unfortunately using Yocto (aka. Poky, OpenEmbedded, ...) starts with<br>
sourcing an env file.<br>
An alternative to this probe would be a to make the qbs-setup-* tools<br>
do the right thing when run from a shell which has sourced that file.<br>
That will allow to setup different profiles for different version of<br>
Yocto (typ. stable vs dev) and name them accordingly.<br>
<br>
Call me crazy, but i would say that a qbs-setup-yocto tool that takes<br>
a path to an env file would be a good idea, or something similar to<br>
qbs-setup-android.<br>
<br>
FYI, this is the sort of things the env file defines:<br>
<a href="https://www.yoctoproject.org/docs/2.3.3/sdk-manual/sdk-manual.html#sdk-running-the-extensible-sdk-environment-setup-script" rel="noreferrer" target="_blank">https://www.yoctoproject.org/docs/2.3.3/sdk-manual/sdk-manual.html#sdk-running-the-extensible-sdk-environment-setup-script</a><br>
<br>
IMHO, it is worth having a quick look at the "app developer workflow":<br>
<a href="https://www.yoctoproject.org/docs/2.3.3/sdk-manual/sdk-manual.html#sdk-use-devtool-to-add-an-application" rel="noreferrer" target="_blank">https://www.yoctoproject.org/docs/2.3.3/sdk-manual/sdk-manual.html#sdk-use-devtool-to-add-an-application</a><br>
Haven't tried, but i'm suspecting QtC integrates this somehow.<br>
<br>
Chris<br>
_______________________________________________<br>
Qbs mailing list<br>
<a href="mailto:Qbs@qt-project.org" target="_blank">Qbs@qt-project.org</a><br>
<a href="https://lists.qt-project.org/listinfo/qbs" rel="noreferrer" target="_blank">https://lists.qt-project.org/listinfo/qbs</a><br>
</blockquote></div>