OHOS build command line tool
Project description
Compilation and Building (for Mini and Small Systems)
Introduction
The compilation and building subsystem is a build framework based on Generate Ninja (GN) and Ninja, which supports component-based OpenHarmony development. This subsystem can be used to:
-
Build products.
-
Build chipset vendor components independently.
-
Build a single component independently.
It is considered best practice to learn the following basic concepts before you start development and build:
-
Component
A component is a reusable software unit that can contain source code, configuration files, resource files, and build scripts.
-
GN
GN is short for Generate Ninja, which is a build system used to generate Ninja files.
-
Ninja
Ninja is a small high-speed build system.
Build Process
The following figure shows the build process.
- hb set: Set the OpenHarmony source code directory and the product to build.
- hb build: Build the product, development board, or component. The process to build the solution is as follows:
- Reading configuration: Read the development board configuration, which covers the toolchain, linking commands, and build options.
- Running gn: Run the gn gen command to read the product configuration (related to the development board, kernel, and system components) and generate the out directory and ninja files for the solution.
- Running Ninja: Run ninja -C out/company/product to start build.
- Packaging: Package the build result to create a file system image.
Directory Structure
build/lite # Primary directory
├── components # Component description file
├── hb # hb pip installation package
├── make_rootfs # make script for the file system
├── config # Build configuration items
│ ├── component # Definitions of component-related templates, including static libraries, dynamic libraries, extension components, and emulator libraries
│ ├── kernel # Build configuration parameters of the kernel
│ └── subsystem # Subsystem template
├── ndk # NDK-related build scripts and configuration parameters
└── toolchain # Build toolchain, which contain the compiler directories, build options, and linking options
Usage
Usage Guidelines
-
Prerequisites
- Server and OS version: Linux server running 64-bit Ubuntu 16.04 or later
- Python version: 3.7.4 or later
- Repository: build_lite of OpenHarmony source code
-
Installing hb
-
Run the following command in the root directory of the source code:
python3 -m pip install --user build/lite
-
Run the hb -h command. If the following information is displayed, the installation is successful:
usage: hb OHOS build system positional arguments: {build,set,env,clean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output optional arguments: -h, --help Show this help message and exit
-
Uninstalling hb
Run the following command to uninstall hb:
python3 -m pip uninstall ohos-build
-
-
Build Commands
-
hb set
hb set -h usage: hb set [-h] [-root [ROOT_PATH]] [-p] optional arguments: -h, --help Show this help message and exit. -root [ROOT_PATH], --root_path [ROOT_PATH] Set OHOS root path. -p, --product Set OHOS board and kernel.
- If you run hb set with no argument, the default setting process starts.
- You can run hb set -root [ROOT_PATH] to set the root directory of the source code.
- hb set -p --product is used to set the product to build.
-
hb env
View the current configuration.
hb env [OHOS INFO] root path: xxx [OHOS INFO] board: hispark_taurus [OHOS INFO] kernel: liteos [OHOS INFO] product: ipcamera [OHOS INFO] product path: xxx/vendor/hisilicon/ipcamera [OHOS INFO] device path: xxx/device/hisilicon/hispark_taurus/sdk_linux_4.19
-
hb build
hb build -h usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [--dmverity] [-p PRODUCT] [-f] [-n] [component [component ...]] positional arguments: component Name of the component. optional arguments: -h, --help Show this help message and exit. -b BUILD_TYPE, --build_type BUILD_TYPE Release or debug version. -c COMPILER, --compiler COMPILER Specify compiler. -t [TEST [TEST ...]], --test [TEST [TEST ...]] Compile test suit. --dmverity Enable dmverity. -p PRODUCT, --product PRODUCT Build a specified product with {product_name}@{company}, eg: ipcamera@hisilcon. -f, --full Full code compilation. -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] Compile single target
- If you run hb build with no argument, the previously configured code directory, product, and options are used for build.
- You can run hb build {component} to build product components separately based on the development board and kernel set for the product, for example, hb build kv_store.
- You can run hb build -p PRODUCT to skip the setting step and build the product directly.
- You can run hb build in device/device_company/board to select the kernel and start build based on the current development board and the selected kernel to generate an image that contains the kernel and driver only.
-
hb clean
Clear the build result of the product in the out directory, and leave the args.gn and build.log files only. To clear files in a specified directory, add the directory parameter to the command, for example, hb clean xxx/out/xxx.
hb clean usage: hb clean [-h] [out_path] positional arguments: out_path Clean a specified path. optional arguments: -h, --help Show this help message and exit.
-
Repositories Involved
Compilation and building subsystem
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ohos-build-0.4.6.tar.gz
.
File metadata
- Download URL: ohos-build-0.4.6.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95ce6cb03efcc391fac014eb6bb43bd6b870ca6a8f98f1b4e412cef83cd52409 |
|
MD5 | 01e2001d8bb9279291f2a4b0d781c777 |
|
BLAKE2b-256 | 0a127405c147e9a579733be31e6ed11b4c3ffd1821c57c31d1f02a08fd9468ba |
File details
Details for the file ohos_build-0.4.6-py3-none-any.whl
.
File metadata
- Download URL: ohos_build-0.4.6-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cff5cd92e5778d55a6d2c0802007c2710919a4ddc2aa5af47399a19574be29e |
|
MD5 | 4b10174a7697be6d94d0ebd1a1e24d63 |
|
BLAKE2b-256 | 2969c608439e63da8e7a63b4b672e311609c2866bbdf00739aa1ee3506ce4a39 |