Setup.md


Арго Фреймворк Википедия

Содержание

Установка Фреймворка

На данный момент в открытом доступе находится только SDK (Software Development Kit) фреймворка. Весь открытый код является экспериментальным и может модифицироваться по вашему желанию. Исключением являются основные заголовочные файлы в папке argo-sdk/target/include/. Изменение большинства из них, так или иначе, приведет к ошибкам сборки. Процесс изменений в файлах SDK будет рассказан на отдельной странице.

SDK пока может быть установлен под Ubuntu 20/22. На другие линукс платформах установка не проверялась. С большой степенью вероятности будет работать на Ubuntu 16/18. Единственное ограничение, пока что, линукс должен быть в x86-64 версии.

Установка данного SDK чрезвычайно проста. Нужны лишь следующие приложения и библиотеки:

  • git (Ну куда без него…)
  • libx11-dev

Также нужны и библиотеки Python для некоторых приложений. Поддержка Python опциональна, но без него приложения написанные питоне работать не будут.

Разумеется, что gcc компилятор и make должны быть также установлены.

Команды установки:

$ sudo apt-get update
$ sudo apt-get install git
$ sudo apt-get install libx11-dev

Если предполагается использование приложений на языке Python, то необходимо установить соответствующие пакеты:

sudo apt-get install python3
sudo apt-get install python3-dev
sudo apt-get install python3-all
sudo apt-get install python3-all-dev
sudo apt-get install libpython3-all-dev

Клонирование:

Для клонирования регистрация на https://gitflic.ru не потребуется:

$ git clone https://gitflic.ru/project/andreydedukhin/argo-framework-v4.git
$ cd argo-framework-v4
$ tar -xzf prebuilt.tar.gz

В папке argo-sdk должны появиться папки host, target/linux, target/python и target/resources.

Создание рабочей директории

Рабочая директория используется непосредственно для работы с SDK. Изменения в клонированной директории могут делаться только для коммитов. Строить и запускать фреймворк там не получится. Рабочая директория должна находиться ВНЕ клонированной директории SDK (Ну допустим, это папка WS рядом).

  • Первым делом мы должны установить переменные окружения SDK (Это может быть сделано откуда угодно):

WS$ source ../argo-framework-v4/argo-sdk/configs/sdk_setup.sh

WS$ source ../argo-framework-v4/argo-sdk/configs/sdk_setup.sh
Copyright (C) 2026 Andrey Dedukhin (adedukhin@gmail.com)
Script to setup SDK parameters v1.0.0
BASH Version: 5.0.17(1)-release
SDK_ROOT_PATH: /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk
SDK_TARGET:    /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk/target
SDK_HOST:      /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk/host
SDK_CONFIGS:   /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk/configs
SDK_APPLETS:   /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk/applets
SDK_RESOURCES: /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/argo-framework-v4/argo-sdk/resources
Done!!!

Скрипт выводит создаваемые переменные окружения, необходимые для работы в рабочем пространстве.

  • Теперь создаем рабочее пространство (Скрипт интерактивный, на большинство вопросов только ввод):

WS$ wscreate.sh

WS$ wscreate.sh
Copyright (C) 2026 Andrey Dedukhin (adedukhin@gmail.com)
Script to create workspace v1.0.0

Collect info...
Select host type (from: Linux64 Linux32): [Linux64]
Select target platform (from: Linux): [Linux]
Select target CPU (from: x86_64 x86): [x86_64]
Select build variant (from: debug release): [debug]
Use the Python environment? (from: Yes No) [Yes]
Check Python environment...
Python headers path: /usr/include/python3.8
Python library path: /usr/lib/x86_64-linux-gnu
Python library name: libpython3.8.so
Select projects to be set (from: All): [All]
Product Name:          argo
Product Build Variant: sdk
Build Home Directory:  /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/WS
Target Root Directory: /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/WS/rootfs
Target Home Directory: /home/andrey/share/FRM/FRM-V4/argo-v4-03-04-22/WS/rootfs
Add configuration files...
Add components...
Add system resources...
Add simulator root file system...
Create workspace setup script...
Done!!!

Можно отдельно выбрать вариант сборки release (по умолчанию debug) и использование Python окружения (если не выбрано, то приложения на Python работать не будут).

После этого все исходные файлы SDK кроме заголовочных и бинарных файлов будут скопированы в рабочую директорию. Указанные файлы будут по прежнему браться из SDK. Когда мы перестроим SDK новые бинарные файлы будут уже браться из рабочей директории.

  • Делаем установку рабочего пространства (Вот это ТОЛЬКО из корня рабочей папки):

WS$ source configs/wssetup.sh

Скрипт ничего не выводит, но теперь все необходимое окружение установлено. Если вы закроете эту консоль, то в новой будет достаточно сделать запуск скрипта sdk_setup.sh и запуск source configs/wssetup.sh для установки окружения.

  • И теперь строим:

WS$ make

  • Проверяем что новый бинарный файл в нашей папке, запускаем и радуемся результату:
WS$ which argo-sdk
.../WS/rootfs/usr/bin/argo-sdk
WS$ argo-sdk

Команды для постройки и очистки

Как говорилось выше, для постройки системы надо использовать команду make:

WS$ make

Её нужно использовать всегда, когда сделаны какие-либо изменения в C/C++ коде, перестройка делается с учетом зависимостей, и, если в компонентных мейкфайлах все правильно, то ошибок быть не должно. Исключением для использования этой команды является только постройка пользовательских приложений, не включенных в общий механизм постройки. В этом случае надо использовать скрипт build.sh в папке приложения (для приложений на Python не требуется):

WS$ ./applets/firstapp/build.sh

При необходимости полностью очистить все артефакты сборки (используется редко, но иногда это необходимо при отладке мейкфайлов) надо воспользоваться командой make clean:

WS$ make clean

Последующий запуск постройки будет собирать все компоненты заново.

Часто бывает необходимо поправить только файлы FML-описаний. Если просто выполнить команду make, то измененные ресурсы также применятся, но заодно все бинарные файлы будут перелинкованы (это небольшой недостаток процедуры сборки, плата за строгое управление зависимостями). Для этого случая лучше использовать команду make res:

WS$ make res

Эта команда обновит все ресурсные файлы, и нужные изменения будут применены (опять же, за исключением пользовательских приложений). Для них можно воспользоваться как скриптом build.sh, так и скриптом install.sh (для приложений на Python только её и можно применить):

WS$ ./applets/firstapp/install.sh

Если пользовательское приложение уже установлено в систему, то переустанавливать его не требуется, скрипты все обновляют.

Иногда возникает необходимость очистки ресурсных файлов без удаления бинарных файлов. Например, фреймворк сохраняет многие параметры от запуска к запуску и необходимо сбросить его состояния в начальные (этакий factory default). Для этого надо воспользоваться командой make resclean:

WS$ make resclean

После последующего запуска make res состояние системы будет восстановлено до начального состояния.

Все команды постройки и очистки должны запускаться из корня рабочего пространства.