Qt for OpenHarmony: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(update the contents)
 
(40 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=OpenHarmony Introduction=
=OpenHarmony Introduction=
OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation, with the goal of building a framework and platform for intelligent terminal device operating systems. It aims to cater to the era of full-scenario, full-connectivity, and full-intelligence, and promote the prosperous development of the Internet of Everything industry.
OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation, with the goal of building a framework and platform for intelligent terminal device operating systems. It aims to cater to the era of full-scenario, full-connectivity, and full-intelligence, and promote the prosperous development of the Internet of Everything industry.


[https://gitee.com/openharmony OpenHarmony Open source project]
[https://gitee.com/openharmony OpenHarmony Open source project]
=HUAWEI DevEco Studio Installation=
=How to install/build=
If you want to develop Qt for OpenHarmony applications, apart from using Qt Creator, you also need to rely on DevEco Studio.
[[Building Qt for OpenHarmony]]
 
=Code management for OH=
https://developer.huawei.com/consumer/cn/deveco-studio/
[[Qt for OpenHarmony Source Code]]
 
In general, there is no need to configure the sdk version used by DevEco Studio because DevEco Studio comes with one sdk by default.
 
However, if the included sdk does not meet your needs, you can set the sdk version you want to use by using the following method:
 
For OpenHarmony 5, you want to install API Version 12 SDK:
 
[[File:DevEco_Studio_Preferences.png|alt=DevEco_Studio_Preferences|864x864px]]
 
To avoid any issues caused by the development environment, please first confirm if you can use DevEco Studio to develop Arkts applications.
=Gerrit Introduction=
The Qt source code is hosted on Gerrit for code review and version control. All needed information about how to work with Gerrit is written on the following pages:
*[[Setting up Gerrit]]
*[[Gerrit Introduction]]
=How to get Qt for OpenHarmony source code=
 
# Access and login to: https://codereview.qt-project.org.
# Click on the "Settings" in the upper right corner to open the settings page.
# Click on "Settings" -> "HTTP Credentials" -> "GENERATE NEW PASSWORD" to generate a new password. Save the password for later use with "git clone".
# Access https://codereview.qt-project.org/admin/repos/qt/tqtc-qt5, and copy the git repository address.
[[File:Codereview-settings.png|left|873x873px]]
 
 
 
 
 
 
 
[[File:GENERATE-NEW-PASSWORD.png|left|874x874px]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[[File:Git-address.png|874x874px]]
=Building Qt Library for Qt for OpenHarmony in macOS=
 
=== Prepare for third-party dependencies ===
Following instruction has been prepared based on macOS Sonoma 14.0.  Does not represent a minimum dependency condition.
 
* git version 2.39.3
* python 3.12.0
 
=== System environments ===
Open ''~/.zshrc'' or ''~/.bashrc'' and add the following:<syntaxhighlight lang="shell">
local HARMONY_OS_API_VER=12
local HOME_LIBRARY=${HOME}/Library
export OHOS_SDK_ROOT=${HOME_LIBRARY}/OpenHarmony/Sdk
export HOS_SDK_HOME=${HOME_LIBRARY}/OpenHarmony/Sdk
export OHOS_SDK_12=${HOS_SDK_HOME}/${HARMONY_OS_API_VER}
export NATIVE_OHOS_SDK=${OHOS_SDK_12}/native
</syntaxhighlight>
 
=== Building Qt sources ===
You can use below script to build Qt for arm64-v8a target.
 
Please fill-in path to your local source directory.<syntaxhighlight lang="shell">
#!/bin/sh
 
# Target architecure
ARCH="arm64-v8a"
 
# Source and build directories
QT5_ROOT_DIR=<ENTER PATH TO YOUR qt/qt5 DIRECORY>
QT5_BUILD_DIR="$QT5_ROOT_DIR/build_${ARCH}"
 
# Prepare build directory
mkdir "$QT5_BUILD_DIR"
cd "$QT5_BUILD_DIR"
 
../configure \
    -v \
    -xplatform ohos-clang \
    -prefix ${NATIVE_OHOS_SDK}/opt/Qt/5.12.12/ohos-${ARCH}-clang/ \
    -opensource \
    -confirm-license \
    -release \
    -no-use-gold-linker \
    -no-gcc-sysroot \
    -ohos-arch ${ARCH} \
    -opengles3 \
    -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts \
    -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtdocgallery -skip qtfeedback \
    -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtnetworkauth \
    -skip qtpim -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools \
    -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport \
    -skip qtspeech -skip qtsystems -skip qttools -skip qttranslations -skip qtvirtualkeyboard \
    -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets \
    -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -skip doc \
    -no-dbus \
    -c++std c++14 \
    -make tests
</syntaxhighlight>then,<syntaxhighlight lang="shell">
make -j16
make install
</syntaxhighlight>
 
=Building Qt Application for OpenHarmony in macOS=
 
=== Creating development kit for OpenHarmony in Qt Creator ===
Go to '''Preferences''' → '''Kits''' → '''Qt Versions'''.
Click the button '''Add…'''.
 
[[File:Macos-qtversion-add.jpg|869x869px]]
 
=== Configuring Qt Version ===
Select the '''qmake''' file generated by compiling the Qt for OpenHarmony source code:
 
[[File:Macos-oh-qmake.jpg|867x867px]]
 
=== Configuring Compilers ===
Go to the Compilers tab. Click on the button Add, then select '''Custom''' → '''C'''.
 
[[File:Oh-compile-c.png|alt=Oh-compile-c|866x866px]]
 
Set:
 
Name: '''OHOS Clang'''
 
Compiler path: '''/''path''/''to''/OpenHarmony/Sdk/12/native/llvm/bin/clang'''
 
Make Path: '''/usr/bin/make'''
 
ABI: '''arm - linux - generic - elf - 64bit'''
 
[[File:Compilers-filled.jpg|866x866px]]<br />Follow the above steps for the C++ compiler. However, this time, make sure to set Name to OHOS Clang++ and in Compiler path select the
 
clang++ instead.
 
[[File:CppCompilers-filled.jpg|866x866px]]
 
=== Configuring Kits ===
Go to '''Kits''' tab.
 
Click the '''Add''' button.
 
[[File:Kits.jpg|869x869px]]
 
=== Setting required environment variables in Qt Creator ===
Go '''Preferences''' → '''Environment''' → '''System''' and click the '''Change…''' button in Environment section.
 
Add a new environment variable by adding a line:
 
'''NATIVE_OHOS_SDK'''=/''path''/''to''/OpenHarmony/Sdk/12/native
 
[[File:Change-env.jpg|869x869px]]
 
= Building Qt Library for OHOS in Windows =
 
=== Preparing the Build Environment ===
 
* Clone qt5 repository from Gerrit using --recursive parameter to get also all submodules:
 
* Install DevEco Studio and download the OpenHarmony/native package from its SDK manager.
 
* Download MinGW toolchain
 
For example llvm-mingw-20230919-ucrt-x86_64.zip from [https://github.com/mstorsjo/llvm-mingw/releases Releases · mstorsjo/llvm-mingw]
 
Unzip and copy folder for example to c:\
 
* Install Perl
 
[https://strawberryperl.com/ Strawberry Perl for Windows]
 
* Add MinGW and Perl paths to PATH environment variable as shown below:
 
* Add also MINGW_ROOT and PERL_ROOT environment variables as shown below:
 
* To fix possible opengl errors when running configure run this one off command.
 
Open command prompt in administrator mode.
 
Go to your qt5 repo root.


Run hack script(change path to you sysroot location):
= User Development Guide =
[[Qt_for_OpenHarmony/user_development_guide|User Development Guide]]

Latest revision as of 09:33, 14 March 2025

OpenHarmony Introduction

OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation, with the goal of building a framework and platform for intelligent terminal device operating systems. It aims to cater to the era of full-scenario, full-connectivity, and full-intelligence, and promote the prosperous development of the Internet of Everything industry.

OpenHarmony Open source project

How to install/build

Building Qt for OpenHarmony

Code management for OH

Qt for OpenHarmony Source Code

User Development Guide

User Development Guide