From c024aa01d6a1004126999b58a0d034151882fa39 Mon Sep 17 00:00:00 2001 From: BtbN Date: Thu, 3 Sep 2020 01:03:23 +0200 Subject: [PATCH] Implement build logic --- .gitignore | 2 ++ build.sh | 60 ++++++++++++++++++------------------------ generate.sh | 15 +++-------- makeimage.sh | 14 ++-------- scripts.d/50-x264.sh | 2 +- util/vars.sh | 13 +++++++++ variants/gpl.sh | 4 +++ variants/lgpl.sh | 4 +++ variants/win64-gpl.sh | 9 +++++++ variants/win64-lgpl.sh | 2 ++ 10 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 util/vars.sh create mode 100644 variants/gpl.sh create mode 100644 variants/lgpl.sh create mode 100644 variants/win64-gpl.sh create mode 100644 variants/win64-lgpl.sh diff --git a/.gitignore b/.gitignore index 0d8de4c..bc80281 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /Dockerfile +/ffbuild/ +/artifacts/ diff --git a/build.sh b/build.sh index 6300517..6efe051 100755 --- a/build.sh +++ b/build.sh @@ -1,58 +1,48 @@ #!/bin/bash set -xe - cd "$(dirname "$0")" - -if [[ $# -lt 1 || $# -gt 2 ]]; then - echo "Invalid Arguments" - exit -1 -fi - -TARGET="$1" -VARIANT="${2:-gpl}" -REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" -REPO="${REPO,,}" - -IMAGE="$REPO/$TARGET-$VARIANT:latest" +source util/vars.sh get_output() { ( SELF="$1" source $1 ffbuild_enabled || exit 0 - ffbuild_$2 || exit -1 + ffbuild_$2 || exit 0 ) } -CONFIGURE="" -CFLAGS="" -LDFLAGS="" +source "variants/${VARIANT}.sh" +source "variants/${TARGET}-${VARIANT}.sh" for script in scripts.d/*.sh; do - CONFIGURE+="$(get_output $script configure)" - CFLAGS+="$(get_output $script cflags)" - LDFLAGS+="$(get_output $script ldflags)" + CONFIGURE+=" $(get_output $script configure)" + CFLAGS+=" $(get_output $script cflags)" + LDFLAGS+=" $(get_output $script ldflags)" done -if [[ $VARIANT == gpl ]]; then - VARIANT_FLAGS="--enable-gpl --enable-version3" -elif [[ $VARIANT == lgpl ]]; then - VARIANT_FLAGS="--enable-version3" -else - echo "Unknown variant" - exit -1 -fi +rm -rf ffbuild +mkdir ffbuild -BUILD_CONTAINER="ffbuild" - -docker rm "$BUILD_CONTAINER" 2>/dev/null || true -docker run -i --name "$BUILD_CONTAINER" "$IMAGE" bash -s <> Dockerfile echo >> Dockerfile diff --git a/makeimage.sh b/makeimage.sh index 49c2406..67c8f76 100755 --- a/makeimage.sh +++ b/makeimage.sh @@ -1,17 +1,7 @@ #!/bin/bash -set -e - +set -xe cd "$(dirname "$0")" - -if [[ $# -lt 1 || $# -gt 2 ]]; then - echo "Invalid Arguments" - exit -1 -fi - -TARGET="$1" -VARIANT="${2:-gpl}" -REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" -REPO="${REPO,,}" +source util/vars.sh ./generate.sh "$TARGET" "$VARIANT" diff --git a/scripts.d/50-x264.sh b/scripts.d/50-x264.sh index 64c2bdd..bb93b55 100755 --- a/scripts.d/50-x264.sh +++ b/scripts.d/50-x264.sh @@ -4,7 +4,7 @@ X264_REPO="https://code.videolan.org/videolan/x264.git" X264_COMMIT="db0d417728460c647ed4a847222a535b00d3dbcb" ffbuild_enabled() { - [[ $VARIANT == gpl ]] || return -1 + [[ $VARIANT == gpl* ]] || return -1 return 0 } diff --git a/util/vars.sh b/util/vars.sh new file mode 100644 index 0000000..f3c66a6 --- /dev/null +++ b/util/vars.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [[ $# -lt 1 || $# -gt 2 ]]; then + echo "Invalid Arguments" + exit -1 +fi + +TARGET="$1" +VARIANT="${2:-gpl}" +REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" +REPO="${REPO,,}" + +IMAGE="$REPO/$TARGET-$VARIANT:latest" diff --git a/variants/gpl.sh b/variants/gpl.sh new file mode 100644 index 0000000..43340a8 --- /dev/null +++ b/variants/gpl.sh @@ -0,0 +1,4 @@ +CONFIGURE="--enable-gpl --enable-version3" +CFLAGS="" +LDFLAGS="" +GIT_BRANCH="master" diff --git a/variants/lgpl.sh b/variants/lgpl.sh new file mode 100644 index 0000000..450b3a1 --- /dev/null +++ b/variants/lgpl.sh @@ -0,0 +1,4 @@ +CONFIGURE="--enable-version3" +CFLAGS="" +LDFLAGS="" +GIT_BRANCH="master" diff --git a/variants/win64-gpl.sh b/variants/win64-gpl.sh new file mode 100644 index 0000000..f0ec9b1 --- /dev/null +++ b/variants/win64-gpl.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +package_variant() { + IN="$1" + OUT="$2" + + mkdir -p "$OUT/bin" + cp "$IN"/bin/* "$OUT"/bin +} diff --git a/variants/win64-lgpl.sh b/variants/win64-lgpl.sh new file mode 100644 index 0000000..30dd180 --- /dev/null +++ b/variants/win64-lgpl.sh @@ -0,0 +1,2 @@ +#!/bin/bash +source "$(dirname "$BASH_SOURCE")/win64-gpl.sh"