Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in
read-only mode
.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
Hej Folks,
I would like to work with SCXML in QT5. I got it to work in QtCreator and let it run on my hostmachine.
Works like a charm. (QT5 and Creator was install through the online installer. (
Online Installer
))
But problems begin when running qmake and make in my yocto variscite environment.
As Target I have the VAR-SOM-6UL, so I run everything as described in there "How To" (
Part One
,
Part Two
).
Hostmachine: Ubuntu 20.04
The steps I do are the following:
$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm
$ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev python-git \
sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 \
help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev \
mercurial automake groff curl lzop asciidoc u-boot-tools dos2unix mtd-utils pv \
libncurses5 libncurses5-dev libncursesw5-dev libelf-dev zlib1g-dev bc rename
$ mkdir ~/bin (this step may not be needed if the bin folder already exists)
$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH
$ mkdir ~/var-fslc-yocto && cd ~/var-fslc-yocto
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b dunfell
$ repo sync -j$(nproc)
$ MACHINE=var-som-mx6 DISTRO=fslc-x11 . setup-environment build_x11
To include the QtSCXML I change the conf/local.conf file. My local.conf now looks as following:
MACHINE ??= 'var-som-mx6'
DISTRO ?= 'fslc-x11'
PACKAGE_CLASSES ?= 'package_rpm'
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
CONF_VERSION = "1"
DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"
#check connectivity using google
CONNECTIVITY_CHECK_URIS = "https://www.google.com/"
IMAGE_INSTALL_append = " qtscxml"
TOOLCHAIN_HOST_TASK_append = " nativesdk-qtscxml-dev"
I run bitbake, the .sh, set the source and at the end I run qmake and make:
$ bitbake -c populate_sdk fsl-image-qt5
$ . ~/var-fslc-yocto/build_x11/tmp/deploy/sdk/fslc-x11-glibc-x86_64-fsl-image-qt5-cortexa9t2hf-neon-var-som-mx6-toolchain-3.1.sh
$ . /opt/fslc-x11/3.1/environment-setup-cortexa9t2hf-neon-fslc-linux-gnueabi
$ cd ~/TestProject
$ mkdir build
$ qmake -makefile -o build/MakeFile test.pro
$ make -C build/
But make fails with No rule to make target.
The detailed Error is:
make: Entering directory '/home/yocto/TestProject/build'
make: *** No rule to make target '/opt/fslc-x11/3.1/sysroots/x86_64-fslcsdk-linux/usr/bin/qscxmlc', needed by 'Test.h'. Stop.
make: Leaving directory '/home/yocto/TestProject/build'
If I look into /opt/..usr/bin/ but I can't find the qscxmlc compiler. So it wasn't provided? How do I change that?
I mean I can't just copy paste the qscxmlc executable from the ~/Qt/ installation (where it works) into it ..
Thanks for every help .. I've been struggling for weeks on that ..
I have exactly the same problem, both for building my application software with bitbake and in the populated sdk. qscxmlc is the state machine compiler, which translates scxml files into C++.
A temporary working solution is to manually copy the qscxmlc executable from the work directory of the qtscxml package to the work directory of my application:
from .../tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/qtscxml/5.10.1+gitAUTOINC+d9b2f8c56d-r0/recipe-sysroot-native/usr/bin/qt5/qscxmlc
to .../tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/my-app/00.A.01-r0/recipe-sysroot-native/usr/bin/qt5
Doing this I can at least complete my software compilation; it doesn't completely solve the issue of course. I'm trying to find how to add qscxmlc to the files installed by the qtscxml recipe, still without success...
The same solution, made automatic: add to your application recipe the following code
do_configure_prepend() {
cp ${WORKDIR}/../../qtscxml/*/recipe-sysroot-native/usr/bin/qt5/qscxmlc \
${OE_QMAKE_PATH_HOST_PREFIX}/usr/bin/qt5
Anyway, this is still a dirty trick, the final solution should be in the qt5 recipes.