diff --git a/AudioFilter/build.sh b/AudioFilter/build.sh index 1e013b2239c3a0b3916f05565981ce607a398c57..7e70a0ffff24579d7fec222fdd8671e314ffc535 100755 --- a/AudioFilter/build.sh +++ b/AudioFilter/build.sh @@ -13,7 +13,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -59,7 +59,7 @@ while getopts t:c:p:d OPT; do esac done -cp -r ffmpeg ${CONTRIB_PATH}/src/ +#cp -r ffmpeg ${CONTRIB_PATH}/src/ cp -r ../contrib/mp3lame ${CONTRIB_PATH}/src/ if [ "${PLATFORM}" = "linux-gnu" ] || [ "${PLATFORM}" = "redhat-linux" ] @@ -195,7 +195,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -225,18 +225,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 @@ -262,13 +262,14 @@ then #NDK SOURCES FOR cpufeatures NDK_SOURCES=${ANDROID_NDK}/sources/android - if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then - rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" - fi + #if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then + # rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" + #fi WORKPATH=$(pwd) - cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" - make .ffmpeg -j$(nproc) - rm .ffmpeg + #cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" + #make .opus -j$(nproc) + #make .ffmpeg -j$(nproc) + #rm .ffmpeg cd ${WORKPATH} #========================================================= diff --git a/AutoAnswer/build.sh b/AutoAnswer/build.sh index d7acf546f950f550f0675587f0254b577712c7fa..ab5552be7d545d92ae1c6ce1bc6ca1ca87d102fa 100755 --- a/AutoAnswer/build.sh +++ b/AutoAnswer/build.sh @@ -12,7 +12,7 @@ EXTRAPATH='' # -d: debug program. if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -115,7 +115,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -145,18 +145,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 diff --git a/GreenScreen/build.sh b/GreenScreen/build.sh index 1b3422d618635f1c4bd0d6366c0a8e26a316bde0..1273e44e777de67f2792d296b7f5bd8101604640 100755 --- a/GreenScreen/build.sh +++ b/GreenScreen/build.sh @@ -1,6 +1,7 @@ #! /bin/bash # Build the plugin for the project set -e +set -x export OSTYPE ARCH=$(uname -m) EXTRAPATH='' @@ -12,7 +13,7 @@ EXTRAPATH='' # -d: debug program. if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi if [ -z "${PROCESSOR}" ]; then @@ -73,7 +74,7 @@ while getopts t:c:p:d OPT; do esac done -cp -r ffmpeg ${CONTRIB_PATH}/src/ +#cp -r ffmpeg ${CONTRIB_PATH}/src/ cp -r ../contrib/rav1e ${CONTRIB_PATH}/src/ if [ "${PLATFORM}" = "linux-gnu" ] || [ "${PLATFORM}" = "redhat-linux" ] @@ -272,7 +273,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -302,18 +303,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 @@ -339,14 +340,15 @@ then #NDK SOURCES FOR cpufeatures NDK_SOURCES=${ANDROID_NDK}/sources/android - if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then - rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" - fi + #if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then + # rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" + #fi WORKPATH=$(pwd) - cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" - make .ffmpeg -j$(nproc) - rm .ffmpeg + #cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" + #make .opus -j$(nproc) + #make .ffmpeg -j$(nproc) + #rm .ffmpeg cd ${WORKPATH} #========================================================= @@ -364,6 +366,9 @@ then ONNX_PATH="${CONTRIB_PATH}/${CONTRIB_PLATFORM}" fi + # DIRTY HACK TO GET WORKING ONNX + cp ${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/onnx/build/Linux/Release/*.so ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/ || true + # Create so destination folder $CXX --std=c++17 -O3 -fPIC \ -Wl,-Bsymbolic,-rpath,"\${ORIGIN}" \ diff --git a/HelloWorld/build.sh b/HelloWorld/build.sh index 5f630eea17d5541e4534d8c50f4859ad562f5102..a06b18a4436f41b173b52a1da6c94dc2506f5e52 100755 --- a/HelloWorld/build.sh +++ b/HelloWorld/build.sh @@ -12,7 +12,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -142,7 +142,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -172,18 +172,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 diff --git a/README_ASSEMBLE.md b/README_ASSEMBLE.md index 39ca51830d704af3cb002f8378944cc4073990b2..5eddb3103ec1e7ae175a5d2200c1d86af1fa47ab 100644 --- a/README_ASSEMBLE.md +++ b/README_ASSEMBLE.md @@ -11,7 +11,7 @@ For Android: export ANDROID_NDK=<NDK> export ANDROID_ABI=arm64-v8a - export ANDROID_API=29 + export ANDROID_API=24 export TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64 export TARGET=aarch64-linux-android export CC=$TOOLCHAIN/bin/$TARGET$ANDROID_API-clang @@ -72,9 +72,9 @@ For Linux: or For Tensorflow C++ API: $ bazel build --config=v1 --define framework_shared_object=false //tensorflow:libtensorflow_cc.so - - OBS.: If you want to build Tensorflow C++ API with GPU suport, be sure to have a CUDA capable GPU and that you have - followed all installation steps for the Nvidia drivers, CUDA Toolkit, CUDNN, Tensor RT, that their versions + + OBS.: If you want to build Tensorflow C++ API with GPU suport, be sure to have a CUDA capable GPU and that you have + followed all installation steps for the Nvidia drivers, CUDA Toolkit, CUDNN, Tensor RT, that their versions matches and that they are correct for the Tensorflow version you want to build. The following links may be very helpfull: - https://www.tensorflow.org/install/source - https://developer.nvidia.com/cuda-gpus @@ -196,7 +196,7 @@ TENSORFLOW C++ API INCLUDES ASSEMBLE INSTRUCTIONS third_party/ eigen3/ Eigen/ - -> keep folder structure and copy all files from + -> keep folder structure and copy all files from "<tensorflow>/bazel-tensorflow/external/eigen_archive/Eigen/" unsupported/ Eigen/ diff --git a/SDK/Templates/build.sh b/SDK/Templates/build.sh index 7dfadbffdaa725e56ce85e2e6330f3ddde6e2b14..99c62530f621bc1342933a1ca7b53d3e3a13471c 100644 --- a/SDK/Templates/build.sh +++ b/SDK/Templates/build.sh @@ -12,7 +12,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -84,7 +84,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -114,18 +114,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 diff --git a/TensorflowSegmentation/build.sh b/TensorflowSegmentation/build.sh index c27817f6fda6bace8c0cd35b7b365a5a66f9a33e..8e5d8f203f83a0a2989fdef648f28cafe4b08d9a 100755 --- a/TensorflowSegmentation/build.sh +++ b/TensorflowSegmentation/build.sh @@ -12,7 +12,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -186,7 +186,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -216,18 +216,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 diff --git a/TestSuite/build.sh b/TestSuite/build.sh index 8f27b907a722bb188c0bf54ad026f1467f69881b..1ca8707db68bc074fc51f96570fa355f4529f8c2 100755 --- a/TestSuite/build.sh +++ b/TestSuite/build.sh @@ -12,7 +12,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -135,7 +135,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -165,18 +165,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 diff --git a/WaterMark/build.sh b/WaterMark/build.sh index 4c2f37d9afd60689155b2b0e0c232c969c809a60..1c7c2d0f295c9e34cde8a0ce8acd229b5014e6dc 100755 --- a/WaterMark/build.sh +++ b/WaterMark/build.sh @@ -13,7 +13,7 @@ EXTRAPATH='' if [ -z "${DAEMON}" ]; then - DAEMON="./../daemon" + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ${DAEMON}" fi @@ -59,7 +59,7 @@ while getopts t:c:p:d OPT; do esac done -cp -r ffmpeg ${CONTRIB_PATH}/src/ +#cp -r ffmpeg ${CONTRIB_PATH}/src/ cp -r ../contrib/rav1e ${CONTRIB_PATH}/src/ if [ "${PLATFORM}" = "linux-gnu" ] || [ "${PLATFORM}" = "redhat-linux" ] @@ -200,7 +200,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -230,18 +230,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 @@ -264,14 +264,15 @@ then CONTRIB_PLATFORM=x86_64-linux-android fi - if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then - rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" - fi + #if [ -f "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" ]; then + # rm "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/.ffmpeg" + #fi WORKPATH=$(pwd) - cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" - make .ffmpeg -j$(nproc) - rm .ffmpeg + #cd "${CONTRIB_PATH}/native-${CONTRIB_PLATFORM}/" + #make .opus -j$(nproc) + #make .ffmpeg -j$(nproc) + #rm .ffmpeg cd ${WORKPATH} #========================================================= diff --git a/WhisperTranscript/build.sh b/WhisperTranscript/build.sh index 6207e9e3443920a9bee10fd77cbb7b2a3ad4712c..365a82c9d82488b06f80379eb5f5c54ac0178019 100755 --- a/WhisperTranscript/build.sh +++ b/WhisperTranscript/build.sh @@ -12,10 +12,10 @@ EXTRAPATH='' # -d: debug program. if [ -z "${DAEMON}" ]; then + DAEMON=${DAEMON:="./../daemon"} echo "DAEMON not provided, building with ./../daemon" fi -DAEMON=${DAEMON:="./../daemon"} CONTRIB_PATH=${CONTRIB_PATH:="${DAEMON}/contrib"} CONTRIB_BUILD_DIR=${CONTRIB_BUILD_DIR:="native"} @@ -76,7 +76,7 @@ fi echo $PROCESSOR -cp -r ffmpeg ${CONTRIB_PATH}/src/ +#cp -r ffmpeg ${CONTRIB_PATH}/src/ cp -r whispercpp ${CONTRIB_PATH}/src/ cp -r ../contrib/rav1e ${CONTRIB_PATH}/src/ @@ -256,7 +256,7 @@ then python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM} if [ -z "$ANDROID_NDK" ]; then - ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/21.1.6352462" + ANDROID_NDK="/home/${USER}/Android/Sdk/ndk/26.1.10909125" echo "ANDROID_NDK not provided, building with ${ANDROID_NDK}" fi @@ -286,18 +286,18 @@ then if [ "$CURRENT_ABI" = armeabi-v7a ] then - export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang - export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ + export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang + export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi24-clang++ elif [ "$CURRENT_ABI" = arm64-v8a ] then - export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/aarch64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/aarch64-linux-android24-clang++ elif [ "$CURRENT_ABI" = x86_64 ] then - export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang - export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++ + export CC=$TOOLCHAIN/bin/x86_64-linux-android24-clang + export CXX=$TOOLCHAIN/bin/x86_64-linux-android24-clang++ else echo "ABI NOT OK" >&2 @@ -320,16 +320,17 @@ then CONTRIB_PLATFORM=x86_64-linux-android fi - if [ -f "${CONTRIB_BUILD_PATH}-${CONTRIB_PLATFORM}/.ffmpeg" ]; then - rm "${CONTRIB_BUILD_PATH}-${CONTRIB_PLATFORM}/.ffmpeg" - fi + #if [ -f "${CONTRIB_BUILD_PATH}-${CONTRIB_PLATFORM}/.ffmpeg" ]; then + # rm "${CONTRIB_BUILD_PATH}-${CONTRIB_PLATFORM}/.ffmpeg" + #fi WORKPATH=$(pwd) cd "${CONTRIB_BUILD_PATH}-${CONTRIB_PLATFORM}/" - make .ffmpeg -j$(nproc) + #make .opus -j$(nproc) + #make .ffmpeg -j$(nproc) make .whispercpp -j$(nproc) rm .whispercpp - rm .ffmpeg + #rm .ffmpeg cd ${WORKPATH} #========================================================= diff --git a/contrib/build-dependencies.sh b/contrib/build-dependencies.sh index 1009ae5612cf79e232ed3b3e6f0dd50cc1d13922..ca95ecb4da36bb8f446120355473980bceac335b 100755 --- a/contrib/build-dependencies.sh +++ b/contrib/build-dependencies.sh @@ -42,7 +42,7 @@ fi TARGET_CC=${TARGET_CC:-$TARGET} -export API=21 +export API=24 # This value is from minSDK in jami-client-android export ANDROID_API=android-$API export ANDROID_TOOLCHAIN="${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64" export TARGET @@ -81,7 +81,7 @@ fi cd $DAEMON_DIR/extras/tools export PATH=`pwd`/build/bin:$PATH echo "Building tools" -./bootstrap +./bootstrap # --cache-dir=/var/cache/jami --cache-builds make $MAKEFLAGS make .pkg-config make .gas @@ -98,7 +98,7 @@ export STRIP=$NDK_TOOLCHAIN_PATH/llvm-strip FLAGS_COMMON="-fPIC" EXTRA_CFLAGS="${EXTRA_CFLAGS} ${FLAGS_COMMON}" EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} ${FLAGS_COMMON}" -EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -llog" +EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -llog ${FLAGS_COMMON}" ############ # Contribs # @@ -114,7 +114,7 @@ cp -r ${CURRENTDIR}/freetype ${DAEMON_DIR}/contrib/src cd ${CONTRIB_DIR} -../bootstrap --host=${TARGET} --enable-freetype --enable-x264 --enable-ffmpeg \ +../bootstrap --host=${TARGET} --enable-freetype --disable-x264 --enable-ffmpeg \ --disable-webrtc-audio-processing --disable-argon2 \ --disable-asio --enable-fmt --disable-gcrypt --disable-gmp \ --disable-gnutls --disable-gpg-error --disable-gsm \ @@ -122,8 +122,8 @@ cd ${CONTRIB_DIR} --disable-libarchive --disable-libressl --enable-msgpack \ --disable-natpmp --disable-nettle --enable-opencv --enable-opendht \ --disable-pjproject --disable-portaudio --disable-restinio \ - --disable-secp256k1 --disable-speexdsp --disable-upnp \ - --disable-uuid --disable-yaml-cpp + --disable-secp256k1 --disable-speex --disable-speexdsp --disable-upnp \ + --disable-uuid --disable-yaml-cpp --enable-onnx --disable-dhtnet --enable-opus # \ --cache-dir=/var/cache/jami --cache-builds make list make fetch diff --git a/contrib/install-cmake.sh b/contrib/install-cmake.sh new file mode 100755 index 0000000000000000000000000000000000000000..ea07269a0ef37a0bdcbb4960143b3c04087077c9 --- /dev/null +++ b/contrib/install-cmake.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e + +if command -v apt-get &> /dev/null +then + apt-get remove cmake cmake-data -y +fi + +wget https://github.com/Kitware/CMake/releases/download/v3.27.8/cmake-3.27.8-Linux-x86_64.sh \ + -q -O /tmp/cmake-install.sh +echo "c43e9237360f8cb227c721bb7cd497f80cff692a7dc0ab10d258f4c22d6aec04 /tmp/cmake-install.sh" | sha256sum --check +chmod u+x /tmp/cmake-install.sh +/tmp/cmake-install.sh --skip-license --prefix=/usr/local/ +rm /tmp/cmake-install.sh \ No newline at end of file diff --git a/daemon b/daemon index 6c433a087a0d24cb95aae3bdcaeee5e367e46a5d..4392c72206b3a7c5f294fc187b2f6904e660890e 160000 --- a/daemon +++ b/daemon @@ -1 +1 @@ -Subproject commit 6c433a087a0d24cb95aae3bdcaeee5e367e46a5d +Subproject commit 4392c72206b3a7c5f294fc187b2f6904e660890e diff --git a/docker/Dockerfile_android_onnxruntime b/docker/Dockerfile_android_onnxruntime index 99d0a56c84b301c86e13c6d78e1b89d7739c1cb1..91f2abcb9263ebc55af07984853bb013ed52daee 100644 --- a/docker/Dockerfile_android_onnxruntime +++ b/docker/Dockerfile_android_onnxruntime @@ -1,14 +1,12 @@ -FROM sflagsantos/onnxruntime1.12.0-android +FROM gradle:jdk17 ENV DEBIAN_FRONTEND noninteractive -ENV EXTRALIBS_PATH=/home/gradle/Libs/onnxruntime/ ENV SSH_AUTH_SOCK /home/gradle/.sockets/ssh ENV LANG en_US.utf8 ENV LC_ALL en_US.utf8 RUN apt-get update && apt-get install -y --no-install-recommends \ - clang \ asciidoc \ autogen \ automake \ @@ -16,7 +14,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ autopoint \ gettext \ ca-certificates \ + clang \ cmake \ + default-jre \ bc \ bison \ build-essential \ @@ -39,38 +39,51 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ yasm \ nasm \ zip \ + libpcre2-dev \ libpcre3 \ libpcre3-dev \ + libavcodec-dev \ + libavutil-dev \ + libavformat-dev \ + libswscale-dev \ + libavdevice-dev \ + libopus-dev \ ruby ruby-dev \ - python3-distutils \ + python3-distutils \ && locale-gen $LANG $LC_ALL && update-locale $LANG $LC_ALL # Android SDK tools RUN echo "prefer-family = IPv6" >> /etc/wgetrc ENV ANDROID_HOME=/opt/android-sdk ENV ANDROID_SDK_ROOT=${ANDROID_HOME} -RUN wget -O /tmp/android-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip && \ +RUN wget -O /tmp/android-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \ mkdir -p ${ANDROID_HOME} && \ unzip -q -d ${ANDROID_HOME} /tmp/android-tools.zip && \ rm -f /tmp/android-tools.zip && \ chown -R root:root ${ANDROID_HOME} ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/bin -# Swig 4.0.2 -RUN wget -O /tmp/swig.tar.gz https://github.com/swig/swig/archive/rel-4.0.2.tar.gz && \ +# CMake 3.26 +ADD contrib/install-cmake.sh /opt/install-cmake.sh +RUN /opt/install-cmake.sh + +# Swig 4.1.1 +RUN wget -O /tmp/swig.tar.gz https://github.com/swig/swig/archive/v4.1.1.tar.gz && \ tar xzf /tmp/swig.tar.gz -C /opt && \ - cd /opt/swig-rel-4.0.2/ && ./autogen.sh && ./configure && make && make install && \ - cd .. && rm -rf /opt/swig-rel-4.0.2 /tmp/swig.tar.gz + cd /opt/swig-4.1.1/ && ./autogen.sh && ./configure && make && make install && \ + cd .. && rm -rf /opt/swig-4.1.1 /tmp/swig.tar.gz # Android SDK libraries, NDK RUN sdkmanager --sdk_root=${ANDROID_HOME} --update -RUN (while sleep 1; do echo "y"; done) | sdkmanager --channel=1 --sdk_root=${ANDROID_HOME} 'build-tools;32.0.0' \ - 'platforms;android-32'\ +RUN (while sleep 1; do echo "y"; done) | sdkmanager --channel=1 --sdk_root=${ANDROID_HOME} 'build-tools;34.0.0' \ + 'platforms;android-34'\ 'extras;android;m2repository'\ 'extras;google;m2repository'\ - 'ndk;25.0.8775105' + 'ndk;26.1.10909125' ENV ANDROID_SDK=${ANDROID_HOME} -ENV ANDROID_NDK=${ANDROID_HOME}/ndk/25.0.8775105 +ENV ANDROID_NDK=${ANDROID_HOME}/ndk/26.1.10909125 + +RUN chmod a+rX /home/gradle # Fastlane RUN gem install fastlane -NV diff --git a/extras/ci/android/Jenkinsfile b/extras/ci/android/Jenkinsfile index d6f4d7acfb153ce0810c6fc94088961da6ad7e88..c8cced69ac2d445b9547c91c5fcd214d9bec1f7f 100644 --- a/extras/ci/android/Jenkinsfile +++ b/extras/ci/android/Jenkinsfile @@ -24,7 +24,7 @@ pipeline { agent { node { - label 'jami-buildmachine-04.mtl.sfl' + label 'jami-buildmachine-02.mtl.sfl' } } @@ -103,7 +103,7 @@ pipeline { stage('Building Docker Image') { steps { script { - docker.build('plugins-android', "-f docker/${dockerfile} --no-cache .") + docker.build('plugins-android', "-f docker/${dockerfile} .") } } } @@ -111,16 +111,20 @@ pipeline { stage('Setup and Build Dependencies') { steps { script { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" cd ./jami/contrib python3 -m pip install -r ../SDK/requirements.txt + ANDROID_ABI="armeabi-v7a" sh build-dependencies.sh ANDROID_ABI="arm64-v8a" sh build-dependencies.sh + ANDROID_ABI="x86_64" sh build-dependencies.sh """) } } @@ -133,23 +137,35 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "GreenScreen") { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" cd jami - AUTHOR="SFL" DIVISION="Internal" ANDROID_ABI="arm64-v8a" python3 build-plugin.py --projects="GreenScreen" --distribution="android" + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="GreenScreen" --distribution="android" """) } } } - if (!fileExists("./build/android/GreenScreen.jpl")) { - error "GreenScreen build output not found" + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + // def sshPrivateKey = '/var/lib/jenkins/.ssh/gplpriv' + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/GreenScreen/android' + + sh """ + rsync --verbose build/android/GreenScreen.jpl ${remoteHost}:${remoteBaseDir}/archive/GreenScreen-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/GreenScreen.jpl ${remoteHost}:${remoteBaseDir}/GreenScreen.jpl + """ + } + } else { + archiveArtifacts 'build/android/GreenScreen.jpl' } - archiveArtifacts 'build/android/GreenScreen.jpl' } } } @@ -159,23 +175,35 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "AudioFilter") { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" cd jami - AUTHOR="SFL" DIVISION="Internal" ANDROID_ABI="arm64-v8a" python3 build-plugin.py --projects="AudioFilter" --distribution="android" + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="AudioFilter" --distribution="android" """) } } } - if (!fileExists("./build/android/AudioFilter.jpl")) { - error "AudioFilter build output not found" + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + // def sshPrivateKey = '/var/lib/jenkins/.ssh/gplpriv' + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/AudioFilter/android' + + sh """ + rsync --verbose build/android/AudioFilter.jpl ${remoteHost}:${remoteBaseDir}/archive/AudioFilter-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/AudioFilter.jpl ${remoteHost}:${remoteBaseDir}/AudioFilter.jpl + """ + } + } else { + archiveArtifacts 'build/android/AudioFilter.jpl' } - archiveArtifacts 'build/android/AudioFilter.jpl' } } } @@ -185,23 +213,35 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "AutoAnswer") { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" cd jami - AUTHOR="SFL" DIVISION="Internal" ANDROID_ABI="arm64-v8a" python3 build-plugin.py --projects="AutoAnswer" --distribution="android" + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="AutoAnswer" --distribution="android" """) } } } - if (!fileExists("./build/android/AutoAnswer.jpl")) { - error "AutoAnswer build output not found" + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + // def sshPrivateKey = '/var/lib/jenkins/.ssh/gplpriv' + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/AutoAnswer/android' + + sh """ + rsync --verbose build/android/AutoAnswer.jpl ${remoteHost}:${remoteBaseDir}/archive/AutoAnswer-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/AutoAnswer.jpl ${remoteHost}:${remoteBaseDir}/AutoAnswer.jpl + """ + } + } else { + archiveArtifacts 'build/android/AutoAnswer.jpl' } - archiveArtifacts 'build/android/AutoAnswer.jpl' } } } @@ -211,23 +251,35 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "WaterMark") { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" cd jami - AUTHOR="SFL" DIVISION="Internal" ANDROID_ABI="arm64-v8a" python3 build-plugin.py --projects="WaterMark" --distribution="android" + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="WaterMark" --distribution="android" """) } } } - if (!fileExists("./build/android/WaterMark.jpl")) { - error "WaterMark build output not found" + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + // def sshPrivateKey = '/var/lib/jenkins/.ssh/gplpriv' + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/WaterMark/android' + + sh """ + rsync --verbose build/android/WaterMark.jpl ${remoteHost}:${remoteBaseDir}/archive/WaterMark-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/WaterMark.jpl ${remoteHost}:${remoteBaseDir}/WaterMark.jpl + """ + } + } else { + archiveArtifacts 'build/android/WaterMark.jpl' } - archiveArtifacts 'build/android/WaterMark.jpl' } } } @@ -237,10 +289,12 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "Whisper" || env.GERRIT_TOPIC == "WhisperTranscript") { - docker.image('plugins-android').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { container -> code:{ - def base_cmd = 'docker exec -t '+container.id+" sh -c '" - def exec_cmd = { cmd -> sh base_cmd+cmd+"'" } + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } ansiColor('css') { exec_cmd(""" @@ -250,10 +304,94 @@ pipeline { } } } - if (!fileExists("./build/android/WhisperTranscript.jpl")) { - error "WhisperTranscript build output not found" + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + // def sshPrivateKey = '/var/lib/jenkins/.ssh/gplpriv' + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/WhisperTranscript/android' + + sh """ + rsync --verbose build/android/WhisperTranscript.jpl ${remoteHost}:${remoteBaseDir}/archive/WhisperTranscript-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/WhisperTranscript.jpl ${remoteHost}:${remoteBaseDir}/WhisperTranscript.jpl + """ + } + } else { + archiveArtifacts 'build/android/WhisperTranscript.jpl' + } + } + } + } + } + + stage('Build Dispatcher') { + steps { + script { + if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "Dispatcher") { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + container -> code:{ + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } + + ansiColor('css') { + exec_cmd(""" + cd jami + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="Dispatcher" --distribution="android" + """) + } + } + } + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/Dispatcher/android' + + sh """ + rsync --verbose build/android/Dispatcher.jpl ${remoteHost}:${remoteBaseDir}/archive/Dispatcher-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/Dispatcher.jpl ${remoteHost}:${remoteBaseDir}/Dispatcher.jpl + """ + } + } else { + archiveArtifacts 'build/android/Dispatcher.jpl' + } + } + } + } + } + + stage('Build Agent') { + steps { + script { + if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "Agent") { + docker.image('plugins-android').withRun('-t -v '+pwd()+':/home/gradle/jami:rw -e BATCH_MODE=1', '/bin/bash') { + container -> code:{ + def base_cmd = 'docker exec -u '+jenkinsUser+' '+container.id+" sh -c '" + def base_root_cmd = 'docker exec '+container.id+" sh -c '" + def exec_cmd = { cmd -> sh script:base_cmd+cmd+"'" } + def exec_root_cmd = { cmd -> sh script:base_root_cmd+cmd+"'" } + + ansiColor('css') { + exec_cmd(""" + cd jami + ANDROID_ABI="armeabi-v7a arm64-v8a x86_64" python3 build-plugin.py --projects="Agent" --distribution="android" + """) + } + } + } + if (env.ARCHIVE == 'false') { + sshagent(credentials: [env.SSH_CREDENTIALS]) { + def remoteHost = env.SSH_HOST_DL_RING_CX + def remoteBaseDir = '/srv/repository/ring/plugins/Agent/android' + + sh """ + rsync --verbose build/android/Agent.jpl ${remoteHost}:${remoteBaseDir}/archive/Agent-\$(date '+%Y%m%d%H%M').jpl + rsync --verbose build/android/Agent.jpl ${remoteHost}:${remoteBaseDir}/Agent.jpl + """ + } + } else { + archiveArtifacts 'build/android/Agent.jpl' } - archiveArtifacts 'build/android/WhisperTranscript.jpl' } } } diff --git a/extras/ci/gnulinux/Jenkinsfile b/extras/ci/gnulinux/Jenkinsfile index e3d24508378babb3cec88a4d79550b168d965b48..8ed5b3d3077cfca255f5f88875285d60bf78f94b 100644 --- a/extras/ci/gnulinux/Jenkinsfile +++ b/extras/ci/gnulinux/Jenkinsfile @@ -141,7 +141,7 @@ pipeline { steps { script { if(env.GERRIT_TOPIC == "all" || env.GERRIT_TOPIC == "GreenScreen") { - docker.image('plugins-linux').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/root/jami/:rw -w /root/ -e BATCH_MODE=1', '/bin/bash') { + docker.image('plugins-linux').withRun('-t -u '+jenkinsUser+' -v '+pwd()+':/root/jami/:rw -v /var/cache/jami:/var/cache/jami:rw -w /root/ -e BATCH_MODE=1', '/bin/bash') { container -> code:{ def base_cmd = 'docker exec -t '+container.id+" sh -c '" def exec_cmd = { cmd -> sh base_cmd+cmd+"'" }