diff --git a/scripts/android-build-common.sh b/scripts/android-build-common.sh index b3675e374..2e58331a9 100644 --- a/scripts/android-build-common.sh +++ b/scripts/android-build-common.sh @@ -8,11 +8,11 @@ case "$(uname -s)" in Darwin) FIND_ARGS="-perm +111 $FIND_ARGS" - ;; + ;; *) FIND_ARGS="-executable $FIND_ARGS" - ;; + ;; esac if [ -z $BUILD_ARCH ]; then @@ -96,10 +96,10 @@ function common_parse_arguments { do key="$1" case $key in - --conf) - source "$2" || exit 1 - shift - ;; + --conf) + source "$2" || exit 1 + shift + ;; --target) NDK_TARGET="$2" @@ -217,12 +217,20 @@ function common_check_requirements { else echo "ndk-build not found in NDK directory $ANDROID_NDK" echo "assuming ndk-build is in path..." - NDK_BUILD=ndk-build + NDK_BUILD=$(which ndk-build) + if [ -z $NDK_BUILD ]; then + echo "ndk-build not found in $ANDROID_NDK and not in PATH" + exit 1 + fi fi - if [ -z $CMAKE_PROGRAM ]; then - CMAKE_PROGRAM=$(find $ANDROID_SDK/cmake -name cmake $FIND_ARGS) - fi + if [ -z $CMAKE_PROGRAM ]; then + CMAKE_PROGRAM=$(find $ANDROID_SDK/cmake -name cmake $FIND_ARGS) + if [ -z $CMAKE_PROGRAM ]; then + echo "CMake not found in $ANDROID_SDK, install CMake from the android SDK!" + exit 1 + fi + fi for CMD in make git $CMAKE_PROGRAM $NDK_BUILD do diff --git a/scripts/android-build-freerdp.sh b/scripts/android-build-freerdp.sh index 6257cc931..0caab58f3 100755 --- a/scripts/android-build-freerdp.sh +++ b/scripts/android-build-freerdp.sh @@ -2,8 +2,8 @@ OPENH264_TAG=v2.3.1 OPENH264_HASH=453afa66dacb560bc5fd0468aabee90c483741571bca820a39a1c07f0362dc32 -OPENSSL_TAG=openssl-1.1.1q -OPENSSL_HASH=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca +OPENSSL_TAG=openssl-1.1.1s +OPENSSL_HASH=c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa FFMPEG_TAG=n4.4.1 FFMPEG_HASH=82b43cc67296bcd01a59ae6b327cdb50121d3a9e35f41a30de1edd71bb4a6666 @@ -76,8 +76,8 @@ common_parse_arguments $REMAINING if [ -z ${WITH_MEDIACODEC+x} ]; then - common_run echo "WITH_MEDIACODEC unset, defining WITH_MEDIACODEC=1" - WITH_MEDIACODEC=1 + common_run echo "WITH_MEDIACODEC unset, defining WITH_MEDIACODEC=1" + WITH_MEDIACODEC=1 fi # clean up top @@ -99,91 +99,92 @@ CMAKE_CMD_ARGS="-DANDROID_NDK=$ANDROID_NDK \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \ -DFREERDP_EXTERNAL_PATH=$BUILD_DST \ + -DWITH_CLIENT_SDL=OFF \ -DCMAKE_MAKE_PROGRAM=make" BASE=$(pwd) for ARCH in $BUILD_ARCH do - # build dependencies. - if [ $WITH_OPENH264 -ne 0 ]; - then - if [ -z "$ANDROID_NDK_OPENH264" ] - then - echo - echo "Warning: Missing openh264-ndk, using $ANDROID_NDK" >&2 - echo - ANDROID_NDK_OPENH264=$ANDROID_NDK - fi - if [ $BUILD_DEPS -ne 0 ]; - then - common_run bash $SCRIPT_PATH/android-build-openh264.sh \ - --src $BUILD_SRC/openh264 --dst $BUILD_DST \ - --sdk "$ANDROID_SDK" \ - --ndk "$ANDROID_NDK_OPENH264" \ - --arch $ARCH \ - --target $NDK_TARGET \ - --tag $OPENH264_TAG \ + # build dependencies. + if [ $WITH_OPENH264 -ne 0 ]; + then + if [ -z "$ANDROID_NDK_OPENH264" ] + then + echo + echo "Warning: Missing openh264-ndk, using $ANDROID_NDK" >&2 + echo + ANDROID_NDK_OPENH264=$ANDROID_NDK + fi + if [ $BUILD_DEPS -ne 0 ]; + then + common_run bash $SCRIPT_PATH/android-build-openh264.sh \ + --src $BUILD_SRC/openh264 --dst $BUILD_DST \ + --sdk "$ANDROID_SDK" \ + --ndk "$ANDROID_NDK_OPENH264" \ + --arch $ARCH \ + --target $NDK_TARGET \ + --tag $OPENH264_TAG \ --hash $OPENH264_HASH - fi - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_OPENH264=ON" - else - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_OPENH264=OFF" - fi + fi + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_OPENH264=ON" + else + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_OPENH264=OFF" + fi - if [ $WITH_MEDIACODEC -ne 0 ]; - then - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_MEDIACODEC=ON" - else - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_MEDIACODEC=OFF" - fi + if [ $WITH_MEDIACODEC -ne 0 ]; + then + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_MEDIACODEC=ON" + else + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_MEDIACODEC=OFF" + fi if [ $WITH_FFMPEG -ne 0 ]; - then + then if [ $BUILD_DEPS -ne 0 ]; - then - common_run bash $SCRIPT_PATH/android-build-ffmpeg.sh \ - --src $BUILD_SRC/ffmpeg --dst $BUILD_DST \ - --sdk "$ANDROID_SDK" \ - --ndk "$ANDROID_NDK" \ - --arch $ARCH \ - --target $NDK_TARGET \ - --tag $FFMPEG_TAG \ - --hash $FFMPEG_HASH - fi - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_FFMPEG=ON -DWITH_SWSCALE=ON -DWITH_DSP_FFMPEG=ON" + then + common_run bash $SCRIPT_PATH/android-build-ffmpeg.sh \ + --src $BUILD_SRC/ffmpeg --dst $BUILD_DST \ + --sdk "$ANDROID_SDK" \ + --ndk "$ANDROID_NDK" \ + --arch $ARCH \ + --target $NDK_TARGET \ + --tag $FFMPEG_TAG \ + --hash $FFMPEG_HASH + fi + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_FFMPEG=ON -DWITH_SWCALE=ON" else - CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_FFMPEG=OFF -DWITH_SWSCALE=OFF -DWITH_DSP_FFMPEG=OFF" - fi - if [ $WITH_OPENSSL -ne 0 ]; - then - if [ $BUILD_DEPS -ne 0 ]; - then - common_run bash $SCRIPT_PATH/android-build-openssl.sh \ - --src $BUILD_SRC/openssl --dst $BUILD_DST \ - --sdk "$ANDROID_SDK" \ - --ndk $ANDROID_NDK \ - --arch $ARCH \ + CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_FFMPEG=OFF" + fi + if [ $WITH_OPENSSL -ne 0 ]; + then + if [ $BUILD_DEPS -ne 0 ]; + then + common_run bash $SCRIPT_PATH/android-build-openssl.sh \ + --src $BUILD_SRC/openssl --dst $BUILD_DST \ + --sdk "$ANDROID_SDK" \ + --ndk $ANDROID_NDK \ + --arch $ARCH \ --target $NDK_TARGET \ - --tag $OPENSSL_TAG \ - --hash $OPENSSL_HASH - fi - fi + --tag $OPENSSL_TAG \ + --hash $OPENSSL_HASH + fi + fi - # Build and install the library. - if [ $DEPS_ONLY -eq 0 ]; - then - common_run cd $BASE - common_run mkdir -p $BUILD_SRC/freerdp-build/$ARCH - common_run cd $BUILD_SRC/freerdp-build/$ARCH - common_run export ANDROID_NDK=$ANDROID_NDK - common_run $CMAKE_PROGRAM $CMAKE_CMD_ARGS \ - -DANDROID_ABI=$ARCH \ - -DCMAKE_INSTALL_PREFIX=$BUILD_DST/$ARCH \ - -DCMAKE_INSTALL_LIBDIR=. \ - $SRC_DIR - echo $(pwd) - common_run cmake --build . --target install - fi + # Build and install the library. + if [ $DEPS_ONLY -eq 0 ]; + then + common_run cd $BASE + common_run mkdir -p $BUILD_SRC/freerdp-build/$ARCH + common_run cd $BUILD_SRC/freerdp-build/$ARCH + common_run export ANDROID_NDK=$ANDROID_NDK + common_run $CMAKE_PROGRAM $CMAKE_CMD_ARGS \ + -DANDROID_ABI=$ARCH \ + -DCMAKE_INSTALL_PREFIX=$BUILD_DST/$ARCH \ + -DCMAKE_INSTALL_LIBDIR=. \ + $SRC_DIR + echo $(pwd) + common_run $CMAKE_PROGRAM --build . --target install + fi done echo "Successfully build library for architectures $BUILD_ARCH"