Add script to release a Linux static binary
Provide a prebuilt binary for Linux.
This commit is contained in:
parent
81f658a34d
commit
fa293d4a79
71
.github/workflows/release.yml
vendored
71
.github/workflows/release.yml
vendored
@ -67,6 +67,34 @@ jobs:
|
|||||||
- name: Test
|
- name: Test
|
||||||
run: release/test_client.sh
|
run: release/test_client.sh
|
||||||
|
|
||||||
|
build-linux:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y meson ninja-build nasm libudev-dev
|
||||||
|
|
||||||
|
- name: Build linux
|
||||||
|
run: release/build_linux.sh
|
||||||
|
|
||||||
|
# upload-artifact does not preserve permissions
|
||||||
|
- name: Tar
|
||||||
|
run: |
|
||||||
|
cd release/work/build-linux
|
||||||
|
mkdir dist-tar
|
||||||
|
cd dist-tar
|
||||||
|
tar -C .. -cvf dist.tar.gz dist/
|
||||||
|
|
||||||
|
- name: Upload build-linux artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: build-linux-intermediate
|
||||||
|
path: release/work/build-linux/dist-tar/
|
||||||
|
|
||||||
build-win32:
|
build-win32:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@ -135,6 +163,42 @@ jobs:
|
|||||||
name: build-win64-intermediate
|
name: build-win64-intermediate
|
||||||
path: release/work/build-win64/dist-tar/
|
path: release/work/build-win64/dist-tar/
|
||||||
|
|
||||||
|
package-linux:
|
||||||
|
needs:
|
||||||
|
- build-scrcpy-server
|
||||||
|
- build-linux
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Download scrcpy-server
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: scrcpy-server
|
||||||
|
path: release/work/build-server/server/
|
||||||
|
|
||||||
|
- name: Download build-linux
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: build-linux-intermediate
|
||||||
|
path: release/work/build-linux/dist-tar/
|
||||||
|
|
||||||
|
# upload-artifact does not preserve permissions
|
||||||
|
- name: Detar
|
||||||
|
run: |
|
||||||
|
cd release/work/build-linux
|
||||||
|
tar xf dist-tar/dist.tar.gz
|
||||||
|
|
||||||
|
- name: Package linux
|
||||||
|
run: release/package_client.sh linux tar.gz
|
||||||
|
|
||||||
|
- name: Upload linux release
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: release-linux
|
||||||
|
path: release/output/
|
||||||
|
|
||||||
package-win32:
|
package-win32:
|
||||||
needs:
|
needs:
|
||||||
- build-scrcpy-server
|
- build-scrcpy-server
|
||||||
@ -210,6 +274,7 @@ jobs:
|
|||||||
release:
|
release:
|
||||||
needs:
|
needs:
|
||||||
- build-scrcpy-server
|
- build-scrcpy-server
|
||||||
|
- build-linux
|
||||||
- package-win32
|
- package-win32
|
||||||
- package-win64
|
- package-win64
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -223,6 +288,12 @@ jobs:
|
|||||||
name: scrcpy-server
|
name: scrcpy-server
|
||||||
path: release/work/build-server/server/
|
path: release/work/build-server/server/
|
||||||
|
|
||||||
|
- name: Download release-linux
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: release-linux
|
||||||
|
path: release/output/
|
||||||
|
|
||||||
- name: Download release-win32
|
- name: Download release-win32
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
6
app/data/scrcpy_static_wrapper.sh
Executable file
6
app/data/scrcpy_static_wrapper.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
cd "$(dirname ${BASH_SOURCE[0]})"
|
||||||
|
export ADB=./adb
|
||||||
|
export SCRCPY_SERVER_PATH=./scrcpy-server
|
||||||
|
export ICON=./icon.png
|
||||||
|
scrcpy "$@"
|
29
app/deps/adb_linux.sh
Executable file
29
app/deps/adb_linux.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -ex
|
||||||
|
DEPS_DIR=$(dirname ${BASH_SOURCE[0]})
|
||||||
|
cd "$DEPS_DIR"
|
||||||
|
. common
|
||||||
|
|
||||||
|
VERSION=35.0.2
|
||||||
|
FILENAME=platform-tools_r$VERSION-linux.zip
|
||||||
|
PROJECT_DIR=platform-tools-$VERSION-linux
|
||||||
|
SHA256SUM=acfdcccb123a8718c46c46c059b2f621140194e5ec1ac9d81715be3d6ab6cd0a
|
||||||
|
|
||||||
|
cd "$SOURCES_DIR"
|
||||||
|
|
||||||
|
if [[ -d "$PROJECT_DIR" ]]
|
||||||
|
then
|
||||||
|
echo "$PWD/$PROJECT_DIR" found
|
||||||
|
else
|
||||||
|
get_file "https://dl.google.com/android/repository/$FILENAME" "$FILENAME" "$SHA256SUM"
|
||||||
|
mkdir -p "$PROJECT_DIR"
|
||||||
|
cd "$PROJECT_DIR"
|
||||||
|
ZIP_PREFIX=platform-tools
|
||||||
|
unzip "../$FILENAME" "$ZIP_PREFIX"/adb
|
||||||
|
mv "$ZIP_PREFIX"/* .
|
||||||
|
rmdir "$ZIP_PREFIX"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$INSTALL_DIR/adb-linux"
|
||||||
|
cd "$INSTALL_DIR/adb-linux"
|
||||||
|
cp -r "$SOURCES_DIR/$PROJECT_DIR"/. "$INSTALL_DIR/adb-linux/"
|
@ -48,7 +48,6 @@ else
|
|||||||
--disable-swscale
|
--disable-swscale
|
||||||
--disable-postproc
|
--disable-postproc
|
||||||
--disable-avfilter
|
--disable-avfilter
|
||||||
--disable-avdevice
|
|
||||||
--disable-network
|
--disable-network
|
||||||
--disable-everything
|
--disable-everything
|
||||||
--disable-vulkan
|
--disable-vulkan
|
||||||
@ -74,6 +73,14 @@ else
|
|||||||
--enable-muxer=wav
|
--enable-muxer=wav
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if [[ "$HOST" != linux ]]
|
||||||
|
then
|
||||||
|
# libavdevice is only used for V4L2 on Linux
|
||||||
|
conf+=(
|
||||||
|
--disable-avdevice
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$LINK_TYPE" == static ]]
|
if [[ "$LINK_TYPE" == static ]]
|
||||||
then
|
then
|
||||||
conf+=(
|
conf+=(
|
||||||
|
@ -38,6 +38,14 @@ else
|
|||||||
--prefix="$INSTALL_DIR/$DIRNAME"
|
--prefix="$INSTALL_DIR/$DIRNAME"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if [[ "$HOST" == linux ]]
|
||||||
|
then
|
||||||
|
conf+=(
|
||||||
|
--enable-video-wayland
|
||||||
|
--enable-video-x11
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$LINK_TYPE" == static ]]
|
if [[ "$LINK_TYPE" == static ]]
|
||||||
then
|
then
|
||||||
conf+=(
|
conf+=(
|
||||||
|
35
release/build_linux.sh
Executable file
35
release/build_linux.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
cd "$(dirname ${BASH_SOURCE[0]})"
|
||||||
|
. build_common
|
||||||
|
cd .. # root project dir
|
||||||
|
|
||||||
|
LINUX_BUILD_DIR="$WORK_DIR/build-linux"
|
||||||
|
|
||||||
|
app/deps/adb_linux.sh
|
||||||
|
app/deps/sdl.sh linux native static
|
||||||
|
app/deps/ffmpeg.sh linux native static
|
||||||
|
app/deps/libusb.sh linux native static
|
||||||
|
|
||||||
|
DEPS_INSTALL_DIR="$PWD/app/deps/work/install/linux-native-static"
|
||||||
|
ADB_INSTALL_DIR="$PWD/app/deps/work/install/adb-linux"
|
||||||
|
|
||||||
|
rm -rf "$LINUX_BUILD_DIR"
|
||||||
|
meson setup "$LINUX_BUILD_DIR" \
|
||||||
|
--pkg-config-path="$DEPS_INSTALL_DIR/lib/pkgconfig" \
|
||||||
|
-Dc_args="-I$DEPS_INSTALL_DIR/include" \
|
||||||
|
-Dc_link_args="-L$DEPS_INSTALL_DIR/lib" \
|
||||||
|
--buildtype=release \
|
||||||
|
--strip \
|
||||||
|
-Db_lto=true \
|
||||||
|
-Dcompile_server=false \
|
||||||
|
-Dportable=true \
|
||||||
|
-Dstatic=true
|
||||||
|
ninja -C "$LINUX_BUILD_DIR"
|
||||||
|
|
||||||
|
# Group intermediate outputs into a 'dist' directory
|
||||||
|
mkdir -p "$LINUX_BUILD_DIR/dist"
|
||||||
|
cp "$LINUX_BUILD_DIR"/app/scrcpy "$LINUX_BUILD_DIR/dist/scrcpy_bin"
|
||||||
|
cp app/data/icon.png "$LINUX_BUILD_DIR/dist/"
|
||||||
|
cp app/data/scrcpy_static_wrapper.sh "$LINUX_BUILD_DIR/dist/scrcpy"
|
||||||
|
cp -r "$ADB_INSTALL_DIR"/. "$LINUX_BUILD_DIR/dist/"
|
@ -5,6 +5,7 @@ cd "$(dirname ${BASH_SOURCE[0]})"
|
|||||||
|
|
||||||
cd "$OUTPUT_DIR"
|
cd "$OUTPUT_DIR"
|
||||||
sha256sum "scrcpy-server-$VERSION" \
|
sha256sum "scrcpy-server-$VERSION" \
|
||||||
|
"scrcpy-linux-$VERSION.zip" \
|
||||||
"scrcpy-win32-$VERSION.zip" \
|
"scrcpy-win32-$VERSION.zip" \
|
||||||
"scrcpy-win64-$VERSION.zip" \
|
"scrcpy-win64-$VERSION.zip" \
|
||||||
| tee SHA256SUMS.txt
|
| tee SHA256SUMS.txt
|
||||||
|
@ -12,10 +12,12 @@ rm -rf output
|
|||||||
./build_server.sh
|
./build_server.sh
|
||||||
./build_windows.sh 32
|
./build_windows.sh 32
|
||||||
./build_windows.sh 64
|
./build_windows.sh 64
|
||||||
|
./build_linux.sh
|
||||||
|
|
||||||
./package_server.sh
|
./package_server.sh
|
||||||
./package_client.sh win32 zip
|
./package_client.sh win32 zip
|
||||||
./package_client.sh win64 zip
|
./package_client.sh win64 zip
|
||||||
|
./package_client.sh linux tar.gz
|
||||||
|
|
||||||
./generate_checksums.sh
|
./generate_checksums.sh
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user