-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:royqh1979/RedPanda-CPP
- Loading branch information
Showing
1 changed file
with
194 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,194 @@ | ||
# Основые замечания по вопросу разработки | ||
|
||
Red Panda C++ требует для сборки Qt 5.15 или 6.8+. | ||
|
||
Рекомендуемые окружения разработчика: | ||
1. Visual Studio Code. | ||
* Лучшая производительность. | ||
2. Qt Creator. | ||
* (Обычно) не требует настройки. | ||
* Встроенный дизайнер пользовательского интерфейса (UI designer). | ||
* Интеграция отладчика с Qt. | ||
|
||
Для установки окружения разработки в Visual Studio Code: | ||
0. (Только для Windows) Включить Режим разработчика (Developer Mode) в настройках Windows, включить параметр `core.symlinks` в Git (`git config core.symlinks true`). | ||
1. Установить [xmake](https://xmake.io/) и [XMake extension](https://marketplace.visualstudio.com/items?itemName=tboox.xmake-vscode). | ||
2. Установить [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) для поддержки языка и отладки. | ||
3. По возможности установить [clangd](https://clangd.llvm.org/) и [clangd extension](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) для лучшего анализа. | ||
4. Настройка рабочего окружения: | ||
- Compile commands: `.vscode/compile_commands.json` (“C/C++: Edit Configurations (UI)” из Палитры комманд); | ||
- “Clangd: Arguments”: `--compile-commands-dir=.vscode`; | ||
- “Xmake: Additional Config Arguments”: например, `--qt=/usr`. | ||
5. Запустить “XMake: UpdateIntellisense” (из Палитры комманд) для создания базы данных компиляции. | ||
|
||
\* Примечание: xmake был упомянут для создания базы данных компиляции и тестирования матрицы возможностей. Он еще не полностью функционален. | ||
|
||
# Windows | ||
|
||
|
||
| Библиотека+Инструмент \ Цель | x86 | x64 | ARM64 | | ||
| ---------------------------- | --- | --- | ----- | | ||
| MSYS2 + GNU-based MinGW | ❌ | ✔️ | ❌ | | ||
| MSYS2 + LLVM-based MinGW | ❌ | ✔️ | ✔️ | | ||
| [Windows NT 5.x](https://github.com/redpanda-cpp/qtbase-xp) + [MinGW Lite](https://github.com/redpanda-cpp/mingw-lite) | ✔️ | ✔️ | ❌ | | ||
|
||
Смотри также [другие инструкции сборки для Windows](./docs/detailed-build-win.md). | ||
|
||
## MSYS2 Библиотека Qt с набором инструментов MinGW (Рекомендуется) | ||
|
||
Red Panda C++ должна работать с любым 64-битным набором инструментов MinGW от MSYS2, включая GCC и Clangs в средах на основе GNU (MINGW64 и UCRT64), и Clangs в средах на основе LLVM (CLANG64 и CLANGARM64; см. также [документацию MSYS2] (https://www.msys2.org/docs/environments/)), в то время как следующие наборы инструментов часто тестируются: | ||
- MINGW64 GCC, | ||
- UCRT64 GCC (рекомендуется для x64) | ||
- CLANGARM64 Clang (единственный и рекомендуемый набор инструментов для ARM64). | ||
|
||
Официальные дистрибутивы Red Panda C++ построены с MINGW32 GCC (в архиве) и MINGW64 GCC. | ||
|
||
Подготовительный этап: | ||
|
||
0. Требуется Windows 10 x64 или более поздний, или Windows 11 ARM64. | ||
1. Установить MSYS2. | ||
2. В выбранном окружении, установить набор инструментов, Библиотеку Qt 5 и требуемые приложения: | ||
```bash | ||
pacman -S \ | ||
$MINGW_PACKAGE_PREFIX-{cc,make,qt5-static,7zip,cmake} \ | ||
mingw-w64-i686-nsis \ | ||
git curl | ||
``` | ||
|
||
Для сборки в запущенном окружении MSYS2 выполните: | ||
```bash | ||
./packages/msys/build-mingw.sh | ||
``` | ||
для сборки программы установи Red Panda C++ и портируемого пакета с помощью набора инструментов MinGW GCC или без компилятора; | ||
|
||
или выполните: | ||
```bash | ||
./packages/msys/build-llvm.sh | ||
``` | ||
для сборки программы установки Red Panda C++ с набором инструментов LLVM MinGW. | ||
|
||
Основные аргументы коммандной строки: | ||
- `-h`, `--help`: показать справочную информацию. | ||
- `-c`, `--clean`: очистить каталог сборки. | ||
- `-nd`, `--no-deps`: не проверять зависимости. | ||
- `-t <dir>`, `--target-dir <dir>`: установить целевой каталог для пакетов. По умолчанию: `dist/`. | ||
|
||
Дополнительные аргументя для `build-mingw.sh`: | ||
- `--mingw32`: и `assets/mingw32.7z` для сборки пакета. | ||
- `--mingw64`: и `assets/mingw64.7z` для сборки пакета. | ||
- `--mingw`: псевдоним для `--mingw64` (x64-приложение). | ||
- `--ucrt <build>`: добавить UCRT runtime из Windows SDK в пакет. Например, `--ucrt 22621` для Windows 11 SDK 22H2. | ||
|
||
## Windows NT 5.x с библиотекой Qt с набором инструментов MinGW Lite | ||
|
||
Скрипты `build-xp.sh` подобны `build-mingw.sh`, но набор инструментов обеспечивается библиотекой Qt. | ||
|
||
Подготовительные действия для сборки в естественной среде: | ||
|
||
0. Требуется Windows 10 x64 или более поздний. | ||
1. Установить MSYS2. | ||
|
||
Для сборки в естественной среде в запущенном окружении MSYS2 выполните: | ||
```bash | ||
./packages/msys/build-xp.sh -p 32-msvcrt | ||
``` | ||
|
||
Для кроссплатформенной сборки выполните: | ||
```bash | ||
podman run -it --rm -v $PWD:/mnt -w /mnt docker.io/amd64/ubuntu:24.04 | ||
|
||
# в контейнере | ||
export MIRROR=mirrors.kernel.org # дополнительно можно установить сайт зеркала | ||
./packages/xmingw/build-xp.sh -p 32-msvcrt | ||
``` | ||
|
||
Эти скрипты принимают такие же аргументы, как `build-mingw.sh`, дополнительно к этому: | ||
- `-p|--profile <profile>`: (ТРЕБУЕТСЯ) профиль MinGW Lite с библиотекой Qt. Доступные профили `64-ucrt`, `64-msvcrt`, `32-ucrt`, `32-msvcrt`. | ||
|
||
# Linux | ||
|
||
Смотри также [другие инструкции сборки для настольных систем freedesktop.org-conforming (XDG)](./docs/detailed-build-xdg.md). | ||
|
||
## Alpine Linux, Arch Linux, Debian и их производные, Fedora, openSUSE | ||
|
||
1. Установите окружение сборки (документация для [Alpine](https://wiki.alpinelinux.org/wiki/Abuild_and_Helpers), [Arch](https://wiki.archlinux.org/title/Makepkg), [Debians](https://wiki.debian.org/BuildingTutorial), [RPM](https://rpm-packaging-guide.github.io/#prerequisites)). | ||
- Для Debians: | ||
```sh | ||
sudo apt install --no-install-recommends build-essential debhelper devscripts equivs | ||
``` | ||
2. Запустите скрипт сборки: | ||
- Alpine Linux: `./packages/alpine/buildapk.sh` | ||
- Arch Linux: `./packages/archlinux/buildpkg.sh` | ||
- Debians: `./packages/debian/builddeb.sh` | ||
- Fedora: `./packages/fedora/buildrpm.sh` | ||
- openSUSE: `./packages/opensuse/buildrpm.sh` | ||
3. Установите пакет: | ||
- Alpine Linux: `~/packages/unsupported/$(uname -m)/redpanda-cpp-git-*.apk` | ||
- Arch Linux: `/tmp/redpanda-cpp-git/redpanda-cpp-git-*.pkg.tar.zst` | ||
- Debians: `/tmp/redpanda-cpp_*.deb` | ||
- Fedora, openSUSE: `~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm` | ||
4. Запустите Red Panda C++: | ||
```bash | ||
RedPandaIDE | ||
``` | ||
|
||
Обратите внимание, что некоторые из этих сценариев проверяют ветку HEAD рекозитория, поэтому любые изменения должны быть зафиксированы (commit) перед созданием. | ||
|
||
Альтернативно, можно собрать в контейнере (предпочтительно без корня Podman; Docker может нарушить права доступа к файлу): | ||
|
||
|
||
```sh | ||
podman run --rm -v $PWD:/mnt -w /mnt <image> ./packages/<distro>/01-in-docker.sh | ||
# Arch Linux for example | ||
podman run --rm -v $PWD:/mnt -w /mnt docker.io/archlinux:latest ./packages/archlinux/01-in-docker.sh | ||
``` | ||
|
||
Пакет будет помещен в `dist/`. | ||
|
||
## Статическая сборка двоичных файлов для Ubuntu 20.04 x86_64 (NOI Linux 2.0) | ||
|
||
Пакет `redpanda-cpp-bin` подобен “AppImage repack”. Двоичный файл фактически собран в контейнере. Таким образом, хост сборки - это не обязательно Ubuntu 20.04; должен работать любой дистрибутив Linux с Podman и dpkg. | ||
|
||
1. Установите Podman и dpkg, если компьютер сборки не Debian или его производные: | ||
```sh | ||
sudo apt install podman | ||
``` | ||
ВНИМАНИЕ: НЕ УСТАНАВЛИВАЙТЕ пакеты с dpkg на не-Debian-системах, или Ваша система будет уничтожена. | ||
2. Запустите скрипт сборки: | ||
```sh | ||
./packages/debian-static/builddeb.sh | ||
``` | ||
|
||
Пакет будет помещён в `dist/`. | ||
|
||
## Linux AppImage | ||
|
||
```bash | ||
podman run --rm -v $PWD:/mnt -w /mnt ghcr.io/redpanda-cpp/appimage-builder-x86_64:20241204.0 ./packages/appimage/01-in-docker.sh | ||
``` | ||
|
||
Dockerfiles доступны в [redpanda-cpp/appimage-builder](https://github.com/redpanda-cpp/appimage-builder). Доступные архитектуры: `x86_64`, `aarch64`, `riscv64`, `loong64`, `i686`. | ||
|
||
# macOS | ||
|
||
## Qt.io библиотека Qt | ||
|
||
Подготовительные действия: | ||
|
||
0. Недавно выпущенная macOS, удовлятворяющая требованиям [Qt 5](https://doc.qt.io/qt-5/macos.html) или [Qt 6](https://doc.qt.io/qt-6/macos.html). | ||
1. Установите инструменты командной строки для Xcode: | ||
```zsh | ||
xcode-select --install | ||
``` | ||
2. Установите Qt с помощью онлайн-установщика из [Qt.io](https://www.qt.io/download-qt-installer-oss). | ||
- Выберите библиотеку (в группе _Qt_, подгруппа _Qt 5.15.2_ или _Qt 6.8.0_, проверьте, что для _macOS_). | ||
|
||
Для сборки, запустите один из скриптов: | ||
|
||
```zsh | ||
./packages/macos/build.sh -a x86_64 --qt-version 5.15.2 | ||
./packages/macos/build.sh -a x86_64 --qt-version 6.8.0 | ||
./packages/macos/build.sh -a arm64 --qt-version 6.8.0 | ||
./packages/macos/build.sh -a universal --qt-version 6.8.0 | ||
``` |