1
0
mirror of https://github.com/medigor/example-native-api-rs.git synced 2024-11-21 17:56:37 +02:00

add build scripts

This commit is contained in:
medigor 2023-12-10 20:07:47 +03:00
parent d74087af76
commit d5b9fb5af7
3 changed files with 28 additions and 1 deletions

View File

@ -61,7 +61,7 @@
При разработке использовался rust последней стабильной версии.
## Поддержка платформ
У меня в проде не используется, но в тестах использовал, поблем не замечено, также производные разработки тоже успешно используются.
У меня в проде не используется, но в тестах использовал, проблем не замечено, также производные разработки тоже успешно используются.
- Windows x64 - тестировал, работает и gnu и msvc.
- Windows x32 - тестировал, работает и gnu и msvc.
- Linux x64 - тестировал, работает.
@ -69,6 +69,9 @@
- MacOS - не тестировал, думаю должно работать, т.к. работает Linux x64.
- Android/iOS/веб-клиент - не реализовано и планов таких нет.
## Сборка без установки Rust в контейнере
Собрать можно в контейнере с помощью скриптов: [build-with-docker-linux](build-with-docker-linux) и [build-with-docker-windows](build-with-docker-windows), требуется установленный `podman` или `docker`. Скрипты не предназначены для CI, а необходимы лишь для одноразовой сборки, чтобы пощупать технологию.
## Замечания по разработке внешних компонент
- Самый легкий способ разработать компоненту - вместо нее сделать микросервис с http api. Используйте этот способ в первую очередь.
- Если вдруг полностью нативный способ (предложенный в этом проекте) не работает, то можно разработать на rust статическую библиотеку(crate-type = "staticlib") и использовать её в проекте c++.

10
build-with-docker-linux Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
if which podman>/dev/null;
then
PROGRAM=podman;
else
PROGRAM=docker;
fi
$PROGRAM run -it --rm -v $PWD:/project docker.io/library/rust:1-bullseye cargo build --manifest-path /project/Cargo.toml --release

14
build-with-docker-windows Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
if which podman>/dev/null;
then
PROGRAM=podman;
else
PROGRAM=docker;
fi
$PROGRAM run -it --rm -v $PWD:/project docker.io/library/rust:1-bullseye sh -c \
"rustup target add x86_64-pc-windows-gnu && \
apt-get -y update && \
apt-get -y install mingw-w64 && \
cargo build --manifest-path /project/Cargo.toml --release --target x86_64-pc-windows-gnu"