* Revert "Revert vcpkg ffmpeg (#8751)"
This reverts commit 5c16a8302e6c9c1381873aff45dba1487ee51d4f.
* vcpkg: Reland ffmpeg and try to fix sciter build
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
* vcpkg: Detect AVX2 by requiring __m256i
(ubuntu18.04 sciter)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
* Install nasm from debian buster and python3.7
... from ubuntu universe
[Skip CI]
* vcpkg: Add libyuv port with fix for windows
From
abc59feabf
Found by @deep-soft
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
* Bump vcpkg baseline to 2024.07.12
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
* Fix F-Droid version action
I thought the latest release will be updated by the time hook starts
but it is not the case. Get tag from GITHUB_REF instead if GITHUB_REF_TYPE
is "tag".
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
---------
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
		
	
			
		
			
				
	
	
		
			153 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
export PATH="$PATH:/usr/bin"
 | 
						|
 | 
						|
command -v cygpath >/dev/null && have_cygpath=1
 | 
						|
 | 
						|
cygpath() {
 | 
						|
    if [ -n "$have_cygpath" ]; then
 | 
						|
        command cygpath "$@"
 | 
						|
    else
 | 
						|
        eval _p='$'$#
 | 
						|
        printf '%s\n' "$_p"
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
move_binary() {
 | 
						|
    SOURCE=$1
 | 
						|
    TARGET=$2
 | 
						|
    BINARY=$3
 | 
						|
 | 
						|
    # run lipo over the command to check whether it really
 | 
						|
    # is a binary that we need to merge architectures
 | 
						|
    lipo $SOURCE/$BINARY -info &> /dev/null || return 0
 | 
						|
 | 
						|
    # get the directory name the file is in
 | 
						|
    DIRNAME=$(dirname $BINARY)
 | 
						|
 | 
						|
    # ensure the directory to move the binary to exists
 | 
						|
    mkdir -p $TARGET/$DIRNAME
 | 
						|
 | 
						|
    # now finally move the binary
 | 
						|
    mv $SOURCE/$BINARY $TARGET/$BINARY
 | 
						|
}
 | 
						|
 | 
						|
move_binaries() {
 | 
						|
    SOURCE=$1
 | 
						|
    TARGET=$2
 | 
						|
 | 
						|
    [ ! -d $SOURCE ] && return 0
 | 
						|
    pushd $SOURCE
 | 
						|
 | 
						|
    for BINARY in $(find . -type f); do
 | 
						|
        move_binary $SOURCE $TARGET $BINARY
 | 
						|
    done
 | 
						|
 | 
						|
    popd
 | 
						|
}
 | 
						|
 | 
						|
merge_binaries() {
 | 
						|
    TARGET=$1
 | 
						|
    SOURCE=$2
 | 
						|
 | 
						|
    shift
 | 
						|
    shift
 | 
						|
 | 
						|
    pushd $SOURCE/$1
 | 
						|
    BINARIES=$(find . -type f)
 | 
						|
    popd
 | 
						|
 | 
						|
    for BINARY in $BINARIES; do
 | 
						|
        COMMAND="lipo -create -output $TARGET/$BINARY"
 | 
						|
 | 
						|
        for ARCH in $@; do
 | 
						|
            COMMAND="$COMMAND -arch $ARCH $SOURCE/$ARCH/$BINARY"
 | 
						|
        done
 | 
						|
 | 
						|
        $($COMMAND)
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
export PKG_CONFIG_PATH="$(cygpath -p "${PKG_CONFIG_PATH}")"
 | 
						|
 | 
						|
# Export HTTP(S)_PROXY as http(s)_proxy:
 | 
						|
[ -n "$HTTP_PROXY"  ] && export http_proxy="$HTTP_PROXY"
 | 
						|
[ -n "$HTTPS_PROXY" ] && export https_proxy="$HTTPS_PROXY"
 | 
						|
 | 
						|
PATH_TO_BUILD_DIR=$(  cygpath "@BUILD_DIR@")
 | 
						|
PATH_TO_SRC_DIR=$(    cygpath "@SOURCE_PATH@")
 | 
						|
PATH_TO_PACKAGE_DIR=$(cygpath "@INST_PREFIX@")
 | 
						|
 | 
						|
JOBS=@VCPKG_CONCURRENCY@
 | 
						|
 | 
						|
OSX_ARCHS="@OSX_ARCHS@"
 | 
						|
OSX_ARCH_COUNT=0@OSX_ARCH_COUNT@
 | 
						|
 | 
						|
# Default to hardware concurrency if unset.
 | 
						|
: ${JOBS:=$(nproc)}
 | 
						|
 | 
						|
# Disable asm and x86asm on all android targets because they trigger build failures:
 | 
						|
# arm64 Android build fails with 'relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC'
 | 
						|
# x86 Android build fails with 'error: inline assembly requires more registers than available'.
 | 
						|
# x64 Android build fails with 'relocation R_X86_64_PC32 cannot be used against symbol ff_h264_cabac_tables; recompile with -fPIC'
 | 
						|
if [ "@VCPKG_CMAKE_SYSTEM_NAME@" = "Android" ]; then
 | 
						|
    OPTIONS_arm=" --disable-asm --disable-x86asm"
 | 
						|
    OPTIONS_arm64=" --disable-asm --disable-x86asm"
 | 
						|
    OPTIONS_x86=" --disable-asm --disable-x86asm"
 | 
						|
    OPTIONS_x86_64="${OPTIONS_x86}"
 | 
						|
else
 | 
						|
    OPTIONS_arm=" --disable-asm --disable-x86asm"
 | 
						|
    OPTIONS_arm64=" --enable-asm --disable-x86asm"
 | 
						|
    OPTIONS_x86=" --enable-asm --enable-x86asm"
 | 
						|
    OPTIONS_x86_64="${OPTIONS_x86}"
 | 
						|
fi
 | 
						|
 | 
						|
build_ffmpeg() {
 | 
						|
    # extract build architecture
 | 
						|
    BUILD_ARCH=$1
 | 
						|
    shift
 | 
						|
 | 
						|
    echo "BUILD_ARCH=${BUILD_ARCH}"
 | 
						|
 | 
						|
    # get architecture-specific options
 | 
						|
    OPTION_VARIABLE="OPTIONS_${BUILD_ARCH}"
 | 
						|
    echo "OPTION_VARIABLE=${OPTION_VARIABLE}"
 | 
						|
 | 
						|
    echo "=== CONFIGURING ==="
 | 
						|
 | 
						|
    sh "$PATH_TO_SRC_DIR/configure" "--prefix=$PATH_TO_PACKAGE_DIR" @CONFIGURE_OPTIONS@ --arch=${BUILD_ARCH} ${!OPTION_VARIABLE} $@
 | 
						|
 | 
						|
    echo "=== BUILDING ==="
 | 
						|
 | 
						|
    make -j${JOBS} V=1
 | 
						|
 | 
						|
    echo "=== INSTALLING ==="
 | 
						|
 | 
						|
    make install
 | 
						|
}
 | 
						|
 | 
						|
cd "$PATH_TO_BUILD_DIR"
 | 
						|
 | 
						|
if [ $OSX_ARCH_COUNT -gt 0 ]; then
 | 
						|
    for ARCH in $OSX_ARCHS; do
 | 
						|
        echo "=== CLEANING FOR $ARCH ==="
 | 
						|
 | 
						|
        make clean && make distclean
 | 
						|
 | 
						|
        build_ffmpeg $ARCH --extra-cflags=-arch --extra-cflags=$ARCH --extra-ldflags=-arch --extra-ldflags=$ARCH
 | 
						|
 | 
						|
        echo "=== COLLECTING BINARIES FOR $ARCH ==="
 | 
						|
 | 
						|
        move_binaries $PATH_TO_PACKAGE_DIR/lib $PATH_TO_BUILD_DIR/stage/$ARCH/lib
 | 
						|
        move_binaries $PATH_TO_PACKAGE_DIR/bin $PATH_TO_BUILD_DIR/stage/$ARCH/bin
 | 
						|
    done
 | 
						|
 | 
						|
    echo "=== MERGING ARCHITECTURES ==="
 | 
						|
 | 
						|
    merge_binaries $PATH_TO_PACKAGE_DIR $PATH_TO_BUILD_DIR/stage $OSX_ARCHS
 | 
						|
else
 | 
						|
    build_ffmpeg @BUILD_ARCH@
 | 
						|
fi
 |