2cb64c53468137da63e747081af13d2bf75aee34
				
			
			
		
	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%