| Български | English |
| Родител: Operations Topics | Documentation Index |
Скриптовете в tools/build_helpers/ са помощни инструменти за разработка, тестване на build конфигурации и управление на външни submodule-и.
| Скрипт | Цел |
|---|---|
manage_upstream.sh |
Управление на upstream remote за външни библиотеки |
debug_control.sh |
Контрол на ptrace за GDB attach |
test_qt_versions.sh |
Автоматичен тест на Qt5/Qt6 detection |
test_qt6_qtrest.sh |
Тест на Qt6 build с QtRest |
Управлява upstream remote за външните библиотеки (nodeeditor и qtrest_lib), позволява fetch, merge и синхронизация с upstream проектите.
Употреба:
./tools/build_helpers/manage_upstream.sh [--dry-run] [--yes] <command>
Команди:
| Команда | Описание |
|---|---|
status |
Показва текущо upstream HEAD и дали са налични нови commit-и |
fetch |
Изтегля нови commit-и от upstream remote |
check |
Проверява колко нови commit-а има спрямо upstream |
setup |
Добавя upstream remote ако липсва |
merge <lib\|all> |
Merge upstream промени в submodule; all — и двете libs |
cherry-pick <commit> |
Cherry-pick на конкретен commit от upstream |
help |
Показва help |
Опции:
| Опция | Описание |
|---|---|
--dry-run |
Показва какво би направил без да изпълнява |
--yes |
Не пита за потвърждение |
Env override:
NODEEDITOR_UPSTREAM=https://github.com/my-fork/nodeeditor.git \
./tools/build_helpers/manage_upstream.sh fetch
Пример:
# Проверка за нови commit-и
./tools/build_helpers/manage_upstream.sh check
# Merge на nodeeditor от upstream
./tools/build_helpers/manage_upstream.sh merge nodeeditor
# Dry-run преди merge
./tools/build_helpers/manage_upstream.sh --dry-run merge all
Контролира kernel.yama.ptrace_scope за разрешаване на GDB remote attach към процеси (нужно за debugging на plugins в Daqster).
Изисква
sudo. Промяната е временна (до рестарт), освен ако не е записана в/etc/sysctl.d/.
Употреба:
./tools/build_helpers/debug_control.sh <команда> [--yes]
Команди:
| Команда | Описание |
|---|---|
on / enable |
Задава ptrace_scope=0 (разрешава attach) |
off / disable |
Задава ptrace_scope=1 (ограничава attach) |
status |
Показва текущата стойност |
restore |
Възстановява стойността отпреди последната промяна |
help |
Показва help |
Пример за debug сесия:
# Преди debugging
./tools/build_helpers/debug_control.sh on
# ... GDB attach, debug ...
# След debugging
./tools/build_helpers/debug_control.sh restore
Тества чрез cmake configure дали Qt версия detection работи правилно за всички сценарии: USE_QT6 flag и auto-detect от CMAKE_PREFIX_PATH.
Употреба:
./tools/build_helpers/test_qt_versions.sh
ENV променливи:
| Променлива | Default | Описание |
|---|---|---|
BUILD_DIR |
test_build |
Директория за тестовия build |
QT5_PREFIX |
/mnt/Builder/bin/Linux/Qt/5.15.2/gcc_64 |
Път до Qt5 |
QT6_PREFIX |
/mnt/Builder/bin/Linux/Qt/6.9.2/gcc_64 |
Път до Qt6 |
Какво тества:
USE_QT6=OFF + Qt5 prefixUSE_QT6=ON + Qt6 prefixПример:
QT5_PREFIX=/usr/lib/qt5 ./tools/build_helpers/test_qt_versions.sh
Тества Qt6 build и проверява дали qtrest_lib артефактите са генерирани. Полезен е след промени в QtRest за Qt6 съвместимост.
Статус: QtRest е портнат за Qt6 и
qtrest_libсе компилира коректно на Qt5/Qt6.
Употреба:
./tools/build_helpers/test_qt6_qtrest.sh [--clean] [--qt-prefix PATH] [--build-dir DIR]
Опции:
| Опция | Default | Описание |
|---|---|---|
--clean |
off | Изтрива build директорията преди configure |
--qt-prefix PATH |
/mnt/Builder/bin/Linux/Qt/6.9.2/gcc_64 |
Път до Qt6 |
--build-dir DIR |
build_qt6_qtrest |
Директория за build-а |
Пример:
# Чист Qt6 build тест
./tools/build_helpers/test_qt6_qtrest.sh --clean
# С друг Qt6 path
./tools/build_helpers/test_qt6_qtrest.sh --qt-prefix /usr/lib/qt6