Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I'm new to Yocto Project. The initial idea is to create a custom image based on
core-image-full-cmdline
(this is with no windowing system) and
generate
a Qt5 SDK against this image.
So my target to be able to run Qt applications needs to have some
headers & libraries installed, isn't ? What I must specify on my image recipe ?
Doing
$ bitbake my_image -c populate_sdk
will generate
my_image
with Qt5 support + SDK installer ?
As I understood, to get a Qt SDK the steps would be:
Download and add
meta-qt5
to bblayers.conf.
Add to the image recipe against which you want to build the SDK:
inherit populate_sdk_qt5
Configure the SDK build (add/remove features). <- Here I need help. I only want
EGLFS
support, no X11/Wayland and no Qtwebkit (and idk, maybe some other features that I'm not aware yet).
bitbake my_image -c populate_sdk
My build got an error compiling wayland although I have this:
DISTRO_FEATURES_remove = "x11 wayland"
–
–
–
–
Download and add
meta-qt5
to bblayers.conf.
Add to the image recipe against which you want to build the SDK:
inherit populate_sdk_qt5
. Now the do_populate_sdk task knows the target and will install the needed headers and libs on the respective sysroot (which will be needed later to be able to configure QtCreator per example)
2.1 As we gonna generate an SDK, dev packages are needed. Add this to the image recipe:
IMAGE_FEATURES += "dev-pkgs"
2.2 If our distro doesn't have any windows manager:
DISTRO_FEATURES_remove = "x11 wayland"
. My mistake was to put this on my image recipe but it must be set on
local.conf
so all the recipes are aware of this.
More info about Qt backends
2.3 I'm not sure about this but I wanted to remove qtwebkit, and I added (on local.conf):
PACKAGECONFIG_remove_pn-qttools = "qtwebkit"
PACKAGECONFIG_remove_pn-qtquick1 = "qtwebkit"
. Still qtwebkit module is built. I need to investigate more about this.
Build the image
$ bitbake my_image
Build the SDK
$ bitbake my_image -c populate_sdk
Now we got a toolchain needed for cross-compile.
If you want to add Qt5 to your image-based SDK, you need to add the following line to your image recipe:
inherit populate_sdk_qt5
If you want default Qt5 SDK
use
bitbake meta-toolchain-qt5
or
If you need Qt5 sdk with extra packages then first compile your qt5 image with required packages after that compile sdk.
bitbake custom-qt5-image
bitbake -c do_populate_sdk custom-qt5-image
You have to add the path of meta-qt5 in your conf/bblayers.conf to the BBLAYERS variable.
I think it's all you need to start.
–
Use Default Qt5 SDK for default Qt5 packages:
Follow this steps in below link
Yocto Qt5 Toolchain Installation
Or inherit populate_sdk populate_sdk_qt5
and IMAGE_FEATURES += "other packages"
in your-custom-image.bb
bitbake your-custom-image -c populate_sdk
to remove qtwebkit , you need to adjust this package
meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
RDEPENDS_${PN}_remove = " \
qtwebkit-dev \
qtwebkit-mkspecs \
qtwebkit-qmlplugins \
bitbake your-custom-image -c populate_sdk
–
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.