<!-- 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. ## 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 ## 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.