magic_webgen 1.0.3
magic_webgen: ^1.0.3 copied to clipboard
Build WebAssembly libraries from C sources and generate Dart bindings from project configuration.
Пакет для работы с webasm библиотеками.
Возможности:
- сборка webasm библиотеки
- генерация dart биндингов для webasm библиотеки
- настройка проекта для работы с webasm пакетами
Установка #
Добавление dev-зависимости:
dart pub add --dev webgen --path ../webgen
Если пакет webgen опубликован на pub.dev, то путь не указывается.
Также можно установить как системную утилиту:
dart pub global activate --source path ../webgen
Компиляция webasm библиотеки и генерация биндингов #
Выполняется в корне проекта, который является оберткой для webasm
библиотеки:
dart run webgen:build
В корне проекта должен быть файл build_config.yaml.
Настройки сборки webasm описываются в секции web:
web:
api_file:
'lib/src/web/api.g.dart'
sources:
- src/sqlite3.c
headers:
- src/sqlite3.h
Поддерживаются и другие настройки в этой секции. Список настроек будет перечислен отдельно.
Настройка текущего проекта для работы с webasm #
Все webasm пакеты должны быть подключены как зависимости к пакету.
После этого требуется выполнить команду для создания .dart_tool/package_config.json:
dart pub get
Текущий пакет подключается как dev-зависимость.
dart pub add --dev webgen --path ../webgen
После этого выполняется команда:
dart run webgen:websetup
После этого в каталоге web создается каталог webasm с библиотеками
webasm из пакетов зависимостей. Текущий пакет также может быть webasm
пакетом.
Также обновляется скрипт index.html, создается при необходимости.
К списку зависимостей также требуется подключить пакет magic_js_types.
EMSDK #
Для сборки webasm библиотеки требуется наличие EMSDK. Путь к EMSDK
задается через переменную EMSDK. Путь по умолчанию к EMSDK: ~/emsdk.