1 Star 0 Fork 5K

空LA / docs

forked from OpenHarmony / docs 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
compilation-and-building-overview.md 5.63 KB
一键复制 编辑 原始数据 按行查看 历史
NEEN 提交于 2021-04-08 16:33 . fixed bugs

Compilation and Building Overview

The compilation and building subsystem is a building framework based on Generate Ninja (GN) and Ninja, which supports component-based OpenHarmony development. This subsystem can be used to:

  • Build existing products.

  • Build chipset source code independently.

  • Build a single component independently.

Basic Concepts

It is considered best practice to learn the following basic concepts before you start development and building:

  • Component

    A component is a reusable software unit that can contain source code, configuration files, resource files, and compilation scripts.

  • GN

    GN is short for Generate Ninja, which is used to generate Ninja files.

  • Ninja

    Ninja is a small high-speed building system.

Usage Guidelines

  1. Building Process

    Figure 1 shows the building process.

    Figure 1 Building process

    1. hb set: Set the OpenHarmony source code directory and the product to build.
    2. 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 compilation 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 compilation.
      • Packaging: Package the compilation result to create a file system image.
  2. Building Commands

    1. 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 dir to set the root directory of the source code.
      • hb set -p is used to set the product to compile.
    2. 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
    3. 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 suite
        --dmverity            Enable dmverity
        -p PRODUCT, --product PRODUCT
                              build a specified product with
                              {product_name}@{company}, eg: ipcamera@hisilcon
        -f, --full            full code compilation
      • If you run hb build with no argument, the previously configured code directory, product, and options are used for the compilation. The -f option will delete all products to be compiled, which is equivalent to running hb clean and hb build.
      • You can run hb build {component_name} to compile 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 ipcamera@hisilicon to skip the setting step and compile the product directly.
      • You can run hb build in device/device_company/board to select the kernel and start compilation based on the current development board and the selected kernel to generate an image that contains the kernel and driver only.
    4. hb clean

      Clear the compilation result of the product in the out directory, and retain 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

Limitations and Constraints

Ensure that the development environment has GN and Ninja, Python 3.7.4 and later, and hb commands. You must download the complete code before you start.

1
https://gitee.com/kongla/docs.git
git@gitee.com:kongla/docs.git
kongla
docs
docs
master

搜索帮助