Это компиляторная система, основанная на gn и ninja, поддерживающая компонентизированное развитие OpenHarmony. Основные функции включают:
Перед разработкой компиляторной системы следует ознакомиться с основными концепциями:
Компонент
Пересборяемый программный модуль, который может включать исходный код, файлы конфигурации, ресурсы и скрипты сборки.
gn
Сокращение от Generate ninja, мета-система сборки, используемая для создания файлов ninja.
ninja
Легковесная система сборки, ориентированная на скорость.
Процесс сборки представлен на рисунке 1, который включает в себя настройку и сборку:
Рис. 1 Процесс сборки и компиляции
1. hb set: Установка каталога исходного кода OpenHarmony и продукта для сборки.
2. hb build: Сборка продукта, платы разработки или компонента. Реализация решения сборки включает:
- Чтение конфигурации платы разработки: включает компиляторные инструменты, команды и параметры компиляции и линковки.
- Вызов gn: Вызов gn gen для чтения конфигурации продукта (включает плату разработки, ядро, выбранные компоненты и т.д.) и генерации решения в каталоге out и файла ninja.
- Вызов ninja: Вызов ninja -C out/company/product для запуска сборки.
- Упаковка системного образа: Упаковка результатов сборки компонентов и создание образа файловой системы.## Каталог
build/lite # Основной каталог сборки
├── components # Описание компонентов
├── hb # Исходный код hb pip-пакета
├── make_rootfs # Скрипты создания файловой системы
├── config # Конфигурационные параметры сборки
│ ├── component # Шаблоны определения компонентов. Включают: статические библиотеки, динамические библиотеки, расширенные компоненты, библиотеки симулятора и т. д.
│ ├── kernel # Параметры компиляции ядра
│ └── subsystem # Шаблоны подсистем
├── ndk # Скрипты и параметры компиляции Native API
└── toolchain # Конфигурационные параметры компилятора, включая: пути к компиляторам, параметры компиляции, параметры линковки и т. д.
Предварительные условия
Установка hb
Выполните следующую команду в корневой директории исходного кода:
python3 -m pip install --user build/lite
Выполните hb -h для получения справочной информации. Если отображается информация, значит установка выполнена успешно: ``` использование: hb
Система сборки OHOS
позиционные аргументы: {build,set,env,clean} build Сборка исходного кода set Настройки сборки OHOS env Показать среду сборки OHOS clean Очистить выходные файлы
необязательные аргументы: -h, --help показать это сообщение о помощи и выйти
python3 -m pip uninstall ohos-build
Команды компиляции
hb set
hb set -h
использование: hb set [-h] [-root [ROOT_PATH]] [-p]
необязательные аргументы:
-h, --help Показать это сообщение справки и выйти.
-root [ROOT_PATH], --root_path [ROOT_PATH]
Установить корневую директорию OHOS.
-p, --product Установить продукт OHOS.
hb env
Просмотр текущих настроек
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
использование: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]]
[--dmverity] [-p PRODUCT] [-f] [-n]
[component [component ...]]
позиционные аргументы:
component Имя компонента.
```необязательные аргументы:
-h, --help Показать это сообщение о помощи и выйти. -b BUILD_TYPE, --build_type BUILD_TYPE Версия для выпуска или отладки. -c COMPILER, --compiler COMPILER Указать компилятор. -t [TEST [TEST ...]], --test [TEST [TEST ...]] Скомпилировать тестовый набор. --dmverity Включить dmverity. -p PRODUCT, --product PRODUCT Скомпилировать указанный продукт с {product_name}@{company}, например: ipcamera@hisilicon. -f, --full Полное компилирование кода. -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] Скомпилировать отдельную цель
- hb build без параметров выполняет сборку по настроенным путям кода и продукту, используя те же параметры сборки, что и раньше.
- hb build component: выполняет отдельную сборку компонента на основе настроенных продуктов, отдельных плат и ядра (например: hb build kv_store).
- hb build -p PRODUCT: выполняет сборку продукта без предварительной настройки, пропуская шаг настройки и сразу переходя к сборке.
- Выполнение hb build в директории device/device_company/board приведет к появлению интерфейса выбора ядра. После выбора ядра будет собран образ, содержащий только ядро и драйверы, на основе текущей платы.
``` 4. **hb clean**
Удаляет результаты сборки для соответствующего продукта из директории `out`, оставляя только `args.gn` и `build.log`. Удаление по указанному пути можно выполнить с помощью параметра пути: `hb clean xxx/out/xxx`. Если путь не указан, будет удалена директория `out` для продукта, настроенного с помощью `hb set`.
```
hb clean
Использование: hb clean [-h] [out_path]
Позиционные аргументы:
out_path Удаляет указанный путь.
Опциональные аргументы:
-h, --help Показывает это сообщение о помощи и завершает выполнение.
```
## Связанные репозитории<a name="section1371113476307"></a>
**[Подсистема сборки и компиляции](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/编译构建子系统.md)**
**[build](https://gitee.com/openharmony/build/blob/master/README_zh.md)**
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )