When a .js module is used, every single file that imports it creates its own duplicated environment in memory for that module. Instead, use a simple QtObject with all the functions, and declare it in Window.qml so that it is available to all children everywhere in the app.
harmonyqml
Dependencies setup
From your distribution's package manager, install:
Qt 5.12+, including:
-
qt5-declarative-devel
-
qt5-quickcontrols2-devel
-
qt5-svg-devel
-
qt5-graphicaleffects
-
qt5-qmake
-
qt5-devel
-
python3
-
python3-devel
-
olm-python3 >= 3.1
Make sure that the right version of Qt is selected and compiler flags are
correctly set:
export QT_SELECT=5
export CFLAGS="-march=native -O2 -pipe"
export CXXFLAGS="$CFLAGS"
export MAKEFLAGS="$(nproc)"
Install pyotherside:
git clone https://github.com/thp/pyotherside
cd pyotherside
qmake && make && sudo make install
After this, verify the permissions of the installed plugin files.
To ensure that they're correctly set:
sudo chmod -R 755 /usr/lib/qt5/qml/io
sudo chmod 644 /usr/lib/qt5/qml/io/thp/pyotherside/*
sudo chmod 755 /usr/lib/qt5/qml/io/thp/pyotherside/*.so
Install the Python 3 dependencies:
pip3 install --user -Ur requirements.txt
Optional dependency for performance improvements:
pip3 install --user -U uvloop==0.13.0
Building
git clone --recursive <TODO>
cd harmonyqml
qmake harmonyqml.pro && make && sudo make install
After this if no errors happened, run harmonyqml
.
If you get a version mismatch error related to cffi, try:
pip3 install --user --upgrade --force-reinstall cffi
Description
Languages
QML
64.4%
Python
32.2%
C++
2.8%
QMake
0.4%
Shell
0.2%