diff options
Diffstat (limited to 'coin/provisioning/common/unix')
-rwxr-xr-x | coin/provisioning/common/unix/install-conan.sh | 3 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/install-ffmpeg-android.sh | 28 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/install-ffmpeg-ios.sh | 40 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/install-ffmpeg.sh | 23 | ||||
-rwxr-xr-x | coin/provisioning/common/unix/mqtt_broker.sh | 4 |
5 files changed, 84 insertions, 14 deletions
diff --git a/coin/provisioning/common/unix/install-conan.sh b/coin/provisioning/common/unix/install-conan.sh index 8fc83090..e48a5bdd 100755 --- a/coin/provisioning/common/unix/install-conan.sh +++ b/coin/provisioning/common/unix/install-conan.sh @@ -9,9 +9,10 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" # Note! Python3 is required for Conan installation os="$1" +params="$2" # Install Conan to Python user install directory (typically ~./local/) -pip3 install conan --user +pip3 install conan --user $params SetEnvVar "CONAN_REVISIONS_ENABLED" "1" SetEnvVar "CONAN_V2_MODE" "1" diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh index 05d0b681..fc0084da 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -2,7 +2,7 @@ # Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# This script will build and install FFmpeg static libs +# This script will build and install FFmpeg shared libs set -ex os="$1" @@ -11,9 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="n6.1.1" +version="n7.0" url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" -sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446" +sha1="042260ec5013eb29c89c13443a0f42cbe6fbceaa" url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" ffmpeg_name="FFmpeg-$version" @@ -30,28 +30,36 @@ build_ffmpeg_android() { target_arch=$1 target_dir=$2 + shared="${3:-no}" sudo mkdir -p "$target_dir" openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" openssl_libs="" + libs_prefix="" if [ "$target_arch" == "x86_64" ]; then target_toolchain_arch="x86_64-linux-android" target_arch=x86_64 target_cpu=x86-64 openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64" + libs_prefix="_x86_64" elif [ "$target_arch" == "x86" ]; then target_toolchain_arch="i686-linux-android" target_arch=x86 target_cpu=i686 openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86" + libs_prefix="_x86" elif [ "$target_arch" == "arm64" ]; then target_toolchain_arch="aarch64-linux-android" target_arch=aarch64 target_cpu=armv8-a openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a" + libs_prefix="_arm64-v8a" fi + ln -s "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" + ln -s "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so" + api_version=24 ndk_root=$ANDROID_NDK_ROOT_DEFAULT @@ -71,6 +79,9 @@ build_ffmpeg_android() { ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" + if [[ "$shared" == "yes" ]]; then + ffmpeg_config_options+=" --enable-shared --disable-static" + fi ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}" @@ -83,6 +94,15 @@ build_ffmpeg_android() { sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir" sudo make install -j4 + + rm -f "${openssl_libs}/libcrypto.so" + rm -f "${openssl_libs}/libssl.so" + + if [[ "$shared" == "yes" ]]; then + fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" + sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" + fi + popd } @@ -103,4 +123,4 @@ elif [ "$os" == "android-arm64" ]; then SetEnvVar "FFMPEG_DIR_ANDROID_ARM64" "$target_dir" fi -build_ffmpeg_android "$target_arch" "$target_dir" +build_ffmpeg_android "$target_arch" "$target_dir" "yes" diff --git a/coin/provisioning/common/unix/install-ffmpeg-ios.sh b/coin/provisioning/common/unix/install-ffmpeg-ios.sh index e2a401a5..49889c78 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-ios.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-ios.sh @@ -10,8 +10,8 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="n6.1.1" -sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446" +version="n7.0" +sha1="042260ec5013eb29c89c13443a0f42cbe6fbceaa" url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" ffmpeg_name="FFmpeg-$version" @@ -61,6 +61,9 @@ build_ffmpeg_ios() { --extra-cflags="$minos" \ --extra-cxxflags="$minos" \ --enable-cross-compile \ + --enable-shared \ + --disable-static \ + --install-name-dir='@rpath/Frameworks' \ --enable-swscale \ --enable-pthreads \ --disable-audiotoolbox @@ -69,8 +72,37 @@ build_ffmpeg_ios() { popd } +install_ffmpeg() { + for dir in "$@"; do + echo "Processing files in $dir ..." + pushd "$dir" >/dev/null + find . -type l -name '*.*.dylib' | while read -r f; do + dst="${f:1}" + dstdir="$(dirname "$dst")" + sudo mkdir -p "$dstdir" + + if [[ ! -f "$dst" ]]; then + echo "<Copying $dir/$f to $dst" + sudo cp -c "$f" "$dst" + symlinkname="$(tmp=${f/*\/}; echo ${tmp/\.*}).dylib" + sudo ln -s "$(basename -- "$f")" $dstdir/"$symlinkname" + elif lipo -info "$f" >/dev/null 2>&1; then + echo "Lipoing $dir/$f into $dst" + sudo lipo -create -output "$dst" "$dst" "$f" + elif ! diff "$f" "$dst"; then + echo "Error: File $f in $dir doesn't match destination $dst" + exit 1 + fi + done + echo "LS" + popd >/dev/null + done + sudo cp -r $1$prefix/include $prefix + echo "LS done." +} + build_ffmpeg_ios "x86_64" build_ffmpeg_ios "arm64" -sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed" -SetEnvVar "FFMPEG_DIR_IOS" $prefix +install_ffmpeg "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed" +SetEnvVar "FFMPEG_DIR_IOS" $prefix diff --git a/coin/provisioning/common/unix/install-ffmpeg.sh b/coin/provisioning/common/unix/install-ffmpeg.sh index 94d032ed..67255e3c 100755 --- a/coin/provisioning/common/unix/install-ffmpeg.sh +++ b/coin/provisioning/common/unix/install-ffmpeg.sh @@ -11,9 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="n6.1.1" +version="n7.0" url_public="https://github.com/FFmpeg/FFmpeg/archive/$version.tar.gz" -sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446" +sha1="042260ec5013eb29c89c13443a0f42cbe6fbceaa" url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" ffmpeg_name="FFmpeg-$version" @@ -71,11 +71,26 @@ build_ffmpeg() { } if [ "$os" == "linux" ]; then + build_type="$2" + install_ff_nvcodec_headers ffmpeg_config_options+=" --enable-openssl" + + if [ "$build_type" != "static" ]; then + ffmpeg_config_options+=" --enable-shared --disable-static" + fi + build_ffmpeg - sudo mv "$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name" "/usr/local" + + output_dir="$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name" + + if [ "$build_type" != "static" ]; then + fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" + "$fix_dependencies" "$output_dir" + fi + + sudo mv "$output_dir" "/usr/local" SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name" elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then @@ -111,3 +126,5 @@ elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name" fi + + diff --git a/coin/provisioning/common/unix/mqtt_broker.sh b/coin/provisioning/common/unix/mqtt_broker.sh index d3cce755..47b3944a 100755 --- a/coin/provisioning/common/unix/mqtt_broker.sh +++ b/coin/provisioning/common/unix/mqtt_broker.sh @@ -8,10 +8,10 @@ source "${BASH_SOURCE%/*}/InstallFromCompressedFileFromURL.sh" source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -CommitSHA="2873885d7e840b4e06483f36f170c609eb30527d" +CommitSHA="9d7bb80bb8b9d9cfc0b52f8cb4c1916401281103" PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mqtt_broker/paho.mqtt.testing-$CommitSHA.zip" AltUrl="https://github.com/eclipse/paho.mqtt.testing/archive/$CommitSHA.zip" -SHA1="1fcc4e61b12f11a1421cc8c3f379276d732e62b7" +SHA1="c31cfd5de9329dcd25e28b306f94dccf632cc318" targetFolder="/opt/paho_broker" appPrefix="paho.mqtt.testing-$CommitSHA" |