mirror of
https://github.com/CDrummond/bliss-analyser.git
synced 2025-04-11 14:40:04 +03:00
Build libav and ffmpeg variants
This commit is contained in:
parent
55f944fbdd
commit
9321be0ad5
88
.github/workflows/build.yml
vendored
88
.github/workflows/build.yml
vendored
@ -7,7 +7,34 @@ env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
Linux_ffmpeg4:
|
||||
Linux_ffmpeg:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Packages
|
||||
run: sudo apt-get update && sudo apt-get install build-essential yasm -y
|
||||
|
||||
- name: Build ffmpeg version
|
||||
run: |
|
||||
cargo build --release
|
||||
strip target/release/bliss-analyser
|
||||
mkdir releases
|
||||
cp target/release/bliss-analyser releases/bliss-analyser
|
||||
cp UserGuide.md releases/README.md
|
||||
cp LICENSE releases/
|
||||
cp configs/linux.ini releases/config.ini
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: bliss-analyser-linux-x86-libav4
|
||||
path: releases/
|
||||
|
||||
|
||||
Linux_libav4:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
@ -17,7 +44,7 @@ jobs:
|
||||
- name: Packages
|
||||
run: sudo apt-get update && sudo apt-get install build-essential yasm libavutil-dev libavcodec-dev libavformat-dev libavfilter-dev libavdevice-dev libswresample-dev libfftw3-dev ffmpeg -y
|
||||
|
||||
- name: Build
|
||||
- name: Build libav4 version
|
||||
run: |
|
||||
cargo build --release --features=libav
|
||||
strip target/release/bliss-analyser
|
||||
@ -30,57 +57,89 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: bliss-analyser-linux-x86-ffmpeg4
|
||||
name: bliss-analyser-linux-x86-libav4
|
||||
path: releases/
|
||||
|
||||
Linux_ffmpeg5:
|
||||
|
||||
Linux_libav5:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build ffmpeg5 version with Docker
|
||||
- name: Build libav5 version with Docker
|
||||
run: |
|
||||
docker build -t bliss-analyser-linux-x86-ffmpeg5 - < docker/Dockerfile_Ubuntu
|
||||
docker build -t bliss-analyser-linux-x86-ffmpeg5 - < docker/Dockerfile_Ubuntu2404_libav
|
||||
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-linux-x86-ffmpeg5
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bliss-analyser-linux-x86-ffmpeg5
|
||||
name: bliss-analyser-linux-x86-libav5
|
||||
path: releases/
|
||||
|
||||
|
||||
Linux_ARM:
|
||||
Linux_ARM_ffmpeg:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build ARM on Bullseye
|
||||
- name: Build ARM ffmpeg on Bullseye
|
||||
run: |
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bullseye
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bullseye_ffmpeg
|
||||
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bliss-analyser-linux-arm-bullseye
|
||||
name: bliss-analyser-linux-ffmpeg-arm-bullseye
|
||||
path: releases/
|
||||
|
||||
- name: Build ARM on Bookworm
|
||||
- name: Build ARM ffmpeg on Bookworm
|
||||
run : |
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bookworm
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bookworm_ffmpeg
|
||||
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bliss-analyser-linux-arm-bookworm
|
||||
name: bliss-analyser-linux-ffmpeg-arm-bookworm
|
||||
path: releases/
|
||||
|
||||
|
||||
Linux_ARM_libav:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build ARM libav on Bullseye
|
||||
run: |
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bullseye_libav
|
||||
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bliss-analyser-linux-libav-arm-bullseye
|
||||
path: releases/
|
||||
|
||||
- name: Build ARM libav on Bookworm
|
||||
run : |
|
||||
docker build -t bliss-analyser-cross - < docker/Dockerfile_Bookworm_libav
|
||||
docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bliss-analyser-linux-libav-arm-bookworm
|
||||
path: releases/
|
||||
|
||||
|
||||
macOS:
|
||||
runs-on: macos-11.0
|
||||
|
||||
@ -109,6 +168,7 @@ jobs:
|
||||
name: bliss-analyser-mac
|
||||
path: releases/
|
||||
|
||||
|
||||
Windows:
|
||||
runs-on: windows-2019
|
||||
|
||||
|
34
docker/Dockerfile_Bookworm_ffmpeg
Normal file
34
docker/Dockerfile_Bookworm_ffmpeg
Normal file
@ -0,0 +1,34 @@
|
||||
# Cross compilation environment for bliss-mixer
|
||||
|
||||
FROM debian:bookworm
|
||||
|
||||
RUN dpkg --add-architecture arm64 && \
|
||||
dpkg --add-architecture armhf
|
||||
RUN apt-get update
|
||||
|
||||
RUN apt-get install -y curl git yasm
|
||||
RUN apt-get install -y build-essential clang
|
||||
RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64
|
||||
|
||||
RUN apt-get install -y pkg-config:arm64
|
||||
|
||||
RUN apt-get install -y pkg-config:armhf
|
||||
|
||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin/:${PATH}"
|
||||
RUN rustup target add aarch64-unknown-linux-gnu && \
|
||||
rustup target add arm-unknown-linux-gnueabihf
|
||||
|
||||
RUN mkdir /.cargo && \
|
||||
echo '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"' > /.cargo/config && \
|
||||
echo '[target.arm-unknown-linux-gnueabihf]\nlinker = "arm-linux-gnueabihf-gcc"' >> /.cargo/config
|
||||
|
||||
RUN mkdir /build
|
||||
ENV CARGO_TARGET_DIR /build
|
||||
ENV CARGO_HOME /build/cache
|
||||
|
||||
RUN mkdir /src
|
||||
|
||||
WORKDIR /src
|
||||
CMD ["/src/docker/docker-build-arm-ffmpeg.sh"]
|
||||
|
@ -34,5 +34,5 @@ ENV CARGO_HOME /build/cache
|
||||
RUN mkdir /src
|
||||
|
||||
WORKDIR /src
|
||||
CMD ["/src/docker/docker-build-arm.sh"]
|
||||
CMD ["/src/docker/docker-build-arm-libav.sh"]
|
||||
|
30
docker/Dockerfile_Bullseye_ffmpeg
Normal file
30
docker/Dockerfile_Bullseye_ffmpeg
Normal file
@ -0,0 +1,30 @@
|
||||
# Cross compilation environment for bliss-mixer
|
||||
|
||||
FROM debian:bullseye
|
||||
|
||||
RUN dpkg --add-architecture arm64 && \
|
||||
dpkg --add-architecture armhf
|
||||
RUN apt-get update
|
||||
|
||||
RUN apt-get install -y curl git pkg-config yasm
|
||||
RUN apt-get install -y build-essential clang
|
||||
RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64
|
||||
|
||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin/:${PATH}"
|
||||
RUN rustup target add aarch64-unknown-linux-gnu && \
|
||||
rustup target add arm-unknown-linux-gnueabihf
|
||||
|
||||
RUN mkdir /.cargo && \
|
||||
echo '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"' > /.cargo/config && \
|
||||
echo '[target.arm-unknown-linux-gnueabihf]\nlinker = "arm-linux-gnueabihf-gcc"' >> /.cargo/config
|
||||
|
||||
RUN mkdir /build
|
||||
ENV CARGO_TARGET_DIR /build
|
||||
ENV CARGO_HOME /build/cache
|
||||
|
||||
RUN mkdir /src
|
||||
|
||||
WORKDIR /src
|
||||
CMD ["/src/docker/docker-build-arm-ffmpeg.sh"]
|
||||
|
@ -32,5 +32,5 @@ ENV CARGO_HOME /build/cache
|
||||
RUN mkdir /src
|
||||
|
||||
WORKDIR /src
|
||||
CMD ["/src/docker/docker-build-arm.sh"]
|
||||
CMD ["/src/docker/docker-build-arm-libav.sh"]
|
||||
|
@ -21,5 +21,5 @@ ENV CARGO_HOME /build/cache
|
||||
RUN mkdir /src
|
||||
|
||||
WORKDIR /src
|
||||
CMD ["/src/docker/docker-build-x86.sh"]
|
||||
CMD ["/src/docker/docker-build-x86i-libav.sh"]
|
||||
|
29
docker/docker-build-arm-ffmpeg.sh
Executable file
29
docker/docker-build-arm-ffmpeg.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
## #!/usr/bin/env bash
|
||||
set -eux
|
||||
|
||||
uname -a
|
||||
DESTDIR=/src/releases
|
||||
|
||||
mkdir -p $DESTDIR/bin
|
||||
rm -rf $DESTDIR/bin/*
|
||||
|
||||
function build {
|
||||
echo Building for $1 to $3...
|
||||
|
||||
if [[ ! -f /build/$1/release/bliss-analyser ]]; then
|
||||
export RUST_BACKTRACE=full
|
||||
export PKG_CONFIG=${1//unknown-/}-pkg-config
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/${1//unknown-/}" cargo build --release --target $1
|
||||
fi
|
||||
|
||||
$2 /build/$1/release/bliss-analyser && cp /build/$1/release/bliss-analyser $DESTDIR/$3
|
||||
}
|
||||
|
||||
build arm-unknown-linux-gnueabihf arm-linux-gnueabihf-strip bin/bliss-analyser-armhf
|
||||
build aarch64-unknown-linux-gnu aarch64-linux-gnu-strip bin/bliss-analyser-aarch64
|
||||
|
||||
cp UserGuide.md $DESTDIR/README.md
|
||||
cp LICENSE $DESTDIR/
|
||||
cp configs/linux.ini $DESTDIR/config.ini
|
||||
cp scripts/bliss-analyser-arm $DESTDIR/bliss-analyser
|
BIN
docker/ffmpeg-release-full-shared.7z
Normal file
BIN
docker/ffmpeg-release-full-shared.7z
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user