Newer
Older
<!--
SPDX-FileCopyrightText: Huawei Inc.
SPDX-License-Identifier: CC-BY-4.0
-->
# meta-openharmony
**meta-openharmony** is a bitbake layer, containing recipes for building
OpenHarmony software components.
## Contributing
See the `CONTRIBUTING.md` file.
## License
See the `LICENSES` subdirectory.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
## Dependencies
URI: https://gitlab.eclipse.org/eclipse/oniro-core/oniro.git
layers: meta-oniro-staging
branch: kirkstone
URI: git://git.openembedded.org/bitbake
branch: 2.0
URI: https://git.openembedded.org/openembedded-core
layers: meta
branch: kirkstone
URI: https://git.openembedded.org/meta-openembedded
layers: meta-oe meta-python
branch: master
URI: https://github.com/kraj/meta-clang.git
branch: master
## General usage
In order to build with this layer, you need to use a compatible host OS. See
https://docs.yoctoproject.org/3.1.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html
for details on this. Sections
https://docs.yoctoproject.org/3.1.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html#compatible-linux-distribution
and
https://docs.yoctoproject.org/3.1.8/brief-yoctoprojectqs/brief-yoctoprojectqs.html#build-host-packages
in particular.
To use the meta-openharmony layer, you need a build setup with BitBake and all
needed Yocto layers.
If you are adding OpenHarmony features to an existing project, you have to add
meta-openharmony and its layer dependencies to your existing project setup. You
can use the `bitbake-layers add-layer` command to do this.
If you don't have an existing project, and simply want to quickly try out
OpenHarmony features, you could use the repo manifest included in the
meta-openharmony layer.
You can run these commands to do this:
mkdir ohoe && cd ohoe
repo init -u https://gitlab.eclipse.org/eclipse/oniro-core/meta-openharmony.git -b kirkstone
repo sync --no-clone-bundle
After this is done, you need to initialize the build environment. This modifies
the shell environment, so need to be done again after rebooting or starting
another shell/terminal. Run this in the ohoe directory:
TEMPLATECONF=../meta-openharmony/conf source oe-core/oe-init-build-env
The current directory will be changed to the build directory, from where you
should be running your `bitbake` build commands and so on.
## QEMU example image
The meta-openharmony provides an example image recipe which can be used for
quickly building and running OpenHarmony code in QEMU ARM simulator.
See [recipes-openharmony/images/README.md](recipes-openharmony/images/README.md)
for more information.
## OpenHarmony prebuilts
The meta-openharmony layer enables building of prebuilts for use with the
OpenHarmony build system. A toolchain-only image, making it possible to use the
Oniro Clang version instead of the default Clang version included, and a bundle
image which contains both the Oniro Clang compiler and Oniro versions of various
third-party components, replacing the corresponding default third-party
versions.
See
[recipes-openharmony/prebuilts/README.md](recipes-openharmony/prebuilts/README.md)
for more information.
## Repo manifests
The meta-openharmony repository includes a number of different repo manifest
files, which can be used fetch all repositories needed for building OpenHarmony.
### manifests/branch.xml
This manifest checks out all repositories with the latest revision from
their development branch, including upstream projects.
### manifests/pin.xml
This manifest checks out all repositories at known good versions, which are
locked down by commit ids in the manifest file. This is the default manifest.