diff --git a/addins/debug.sh b/addins/debug.sh new file mode 100644 index 0000000..da940ed --- /dev/null +++ b/addins/debug.sh @@ -0,0 +1,2 @@ +#!/bin/bash +FF_CONFIGURE="${FF_CONFIGURE/--disable-debug/} --optflags='-Og' --disable-stripping" diff --git a/build.sh b/build.sh index 58f98d6..b01b617 100755 --- a/build.sh +++ b/build.sh @@ -17,6 +17,10 @@ get_output() { source "variants/${TARGET}-${VARIANT}.sh" +for addin in ${ADDINS[*]}; do + source "addins/${addin}.sh" +done + export FFBUILD_PREFIX="$(docker run --rm "$IMAGE" bash -c 'echo $FFBUILD_PREFIX')" for script in scripts.d/*.sh; do diff --git a/generate.sh b/generate.sh index cf89294..716e7c9 100755 --- a/generate.sh +++ b/generate.sh @@ -11,7 +11,7 @@ to_df() { } to_df "FROM docker.pkg.github.com/${REPO}/base-${TARGET}:latest" -to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO" +to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR" for script in scripts.d/*.sh; do ( diff --git a/makeimage.sh b/makeimage.sh index 8122132..c1496f1 100755 --- a/makeimage.sh +++ b/makeimage.sh @@ -6,6 +6,6 @@ source util/vars.sh docker build --cache-from "$BASE_IMAGE" --tag "$BASE_IMAGE" images/base docker build --build-arg GH_REPO="$REPO" --cache-from "$TARGET_IMAGE" --tag "$TARGET_IMAGE" "images/base-${TARGET}" -./generate.sh "$TARGET" "$VARIANT" +./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}" exec docker build --cache-from "$IMAGE" --tag "$IMAGE" . diff --git a/util/vars.sh b/util/vars.sh index c8dabd1..6f06fc6 100644 --- a/util/vars.sh +++ b/util/vars.sh @@ -1,24 +1,40 @@ #!/bin/bash -if [[ $# -lt 1 || $# -gt 2 ]]; then +if [[ $# -lt 2 ]]; then echo "Invalid Arguments" exit -1 fi TARGET="$1" -VARIANT="${2:-gpl}" -REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" -REPO="${REPO,,}" -REGISTRY="docker.pkg.github.com" -BASE_IMAGE="${REGISTRY}/${REPO}/base:latest" -TARGET_IMAGE="${REGISTRY}/${REPO}/base-${TARGET}:latest" -IMAGE="${REGISTRY}/${REPO}/${TARGET}-${VARIANT}:latest" +VARIANT="$2" +shift 2 if ! [[ -f "variants/${TARGET}-${VARIANT}.sh" ]]; then echo "Invalid target/variant" exit -1 fi +ADDINS=() +ADDINS_STR="" +while [[ "$#" -gt 0 ]]; do + if ! [[ -f "addins/${1}.sh" ]]; then + echo "Invalid addin: $1" + exit -1 + fi + + ADDINS+=( "$1" ) + ADDINS_STR="${ADDINS_STR}${ADDINS_STR:+-}$1" + + shift +done + +REPO="${GITHUB_REPOSITORY:-btbn/ffmpeg-builds}" +REPO="${REPO,,}" +REGISTRY="docker.pkg.github.com" +BASE_IMAGE="${REGISTRY}/${REPO}/base:latest" +TARGET_IMAGE="${REGISTRY}/${REPO}/base-${TARGET}:latest" +IMAGE="${REGISTRY}/${REPO}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}:latest" + ffbuild_configure() { return 0 } diff --git a/variants/defaults-gpl-shared.sh b/variants/defaults-gpl-shared.sh index 439ebae..d030dc5 100644 --- a/variants/defaults-gpl-shared.sh +++ b/variants/defaults-gpl-shared.sh @@ -1,3 +1,3 @@ #!/bin/bash source "$(dirname "$BASH_SOURCE")"/defaults-gpl.sh -FF_CONFIGURE+=" --enable-shared --disable-static" +FF_CONFIGURE+=" --enable-shared --disable-static --disable-debug" diff --git a/variants/defaults-gpl.sh b/variants/defaults-gpl.sh index f672c41..5338377 100644 --- a/variants/defaults-gpl.sh +++ b/variants/defaults-gpl.sh @@ -1,4 +1,4 @@ -FF_CONFIGURE="--enable-gpl --enable-version3" +FF_CONFIGURE="--enable-gpl --enable-version3 --disable-debug" FF_CFLAGS="" FF_CXXFLAGS="" FF_LDFLAGS="" diff --git a/variants/defaults-lgpl-shared.sh b/variants/defaults-lgpl-shared.sh index f9f44ad..066394c 100644 --- a/variants/defaults-lgpl-shared.sh +++ b/variants/defaults-lgpl-shared.sh @@ -1,3 +1,3 @@ #!/bin/bash source "$(dirname "$BASH_SOURCE")"/defaults-lgpl.sh -FF_CONFIGURE+=" --enable-shared --disable-static" +FF_CONFIGURE+=" --enable-shared --disable-static --disable-debug" diff --git a/variants/defaults-lgpl.sh b/variants/defaults-lgpl.sh index 0d119cc..75920ec 100644 --- a/variants/defaults-lgpl.sh +++ b/variants/defaults-lgpl.sh @@ -1,4 +1,4 @@ -FF_CONFIGURE="--enable-version3" +FF_CONFIGURE="--enable-version3 --disable-debug" FF_CFLAGS="" FF_CXXFLAGS="" FF_LDFLAGS=""