From e01073d58500629cf3d0bd4a726d8abf157d52cb Mon Sep 17 00:00:00 2001 From: Tal Regev Date: Sat, 10 Apr 2021 01:40:48 +0300 Subject: [PATCH] Compile android with vcpkg (rappture, curl and openssl) --- .github/workflows/android.yml | 16 ++++- android/buildAndroidBOINC-CI.sh | 76 +++++++++++++++----- android/build_boinc_arm.sh | 20 +++++- android/build_boinc_arm64.sh | 20 +++++- android/build_boinc_armv6.sh | 22 +++++- android/build_boinc_x86.sh | 20 +++++- android/build_boinc_x86_64.sh | 20 +++++- android/build_curl_arm.sh | 2 +- android/build_curl_arm64.sh | 2 +- android/build_curl_armv6.sh | 4 +- android/build_curl_x86.sh | 2 +- android/build_curl_x86_64.sh | 2 +- android/build_example_arm.sh | 23 ++++--- android/build_example_arm64.sh | 21 ++++-- android/build_example_armv6.sh | 23 +++++-- android/build_example_x86.sh | 23 ++++--- android/build_example_x86_64.sh | 21 ++++-- android/build_libraries_arm.sh | 16 ++++- android/build_libraries_arm64.sh | 16 ++++- android/build_libraries_armv6.sh | 18 ++++- android/build_libraries_x86.sh | 16 ++++- android/build_libraries_x86_64.sh | 16 ++++- android/build_openssl_arm.sh | 2 +- android/build_openssl_arm64.sh | 2 +- android/build_openssl_armv6.sh | 4 +- android/build_openssl_x86.sh | 2 +- android/build_openssl_x86_64.sh | 2 +- android/ci_build_apps.sh | 2 +- android/ci_build_vcpkg_apps.sh | 19 +++++ android/ci_build_vcpkg_client.sh | 18 +++++ android/ci_build_vcpkg_libraries.sh | 18 +++++ android/ci_build_vcpkg_manager.sh | 26 +++++++ deploy/prepare_deployment.sh | 6 ++ m4/libcurl.m4 | 103 ++++++++++++++-------------- samples/condor/Makefile | 6 +- 35 files changed, 469 insertions(+), 140 deletions(-) create mode 100755 android/ci_build_vcpkg_apps.sh create mode 100755 android/ci_build_vcpkg_client.sh create mode 100755 android/ci_build_vcpkg_libraries.sh create mode 100755 android/ci_build_vcpkg_manager.sh diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2849fd22d5..393eb5f3e7 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - type: [manager, libs, apps] + type: [manager, libs, apps, manager-vcpkg, libs-vcpkg, apps-vcpkg] fail-fast: false steps: - uses: actions/checkout@v2 @@ -38,7 +38,7 @@ jobs: if: ${{ success() && matrix.type == 'manager' }} run: | ./android/ci_build_manager.sh - + - name: Build libs if: ${{ success() && matrix.type == 'libs' }} run: ./android/ci_build_libraries.sh @@ -47,6 +47,18 @@ jobs: if: ${{ success() && matrix.type == 'apps' }} run: ./android/ci_build_apps.sh + - name: Build vcpkg manager + if: ${{ success() && matrix.type == 'manager-vcpkg' }} + run: ./android/ci_build_vcpkg_manager.sh + + - name: Build vcpkg libs + if: ${{ success() && matrix.type == 'libs-vcpkg' }} + run: ./android/ci_build_vcpkg_libraries.sh + + - name: Build vcpkg apps + if: ${{ success() && matrix.type == 'apps-vcpkg' }} + run: ./android/ci_build_vcpkg_apps.sh + - name: Deploy to BinTray if: ${{ success() && ! contains(matrix.type, 'libs') }} env: diff --git a/android/buildAndroidBOINC-CI.sh b/android/buildAndroidBOINC-CI.sh index 4e3196e9aa..4ad70dfb48 100755 --- a/android/buildAndroidBOINC-CI.sh +++ b/android/buildAndroidBOINC-CI.sh @@ -207,21 +207,28 @@ if [ ! -e "${ANDROID_TC_FLAGFILE}" ]; then touch ${ANDROID_TC_FLAGFILE} fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then - rm -rf "$BUILD_DIR/openssl-${OPENSSL_VERSION}" - wget -c --no-verbose -O /tmp/openssl_${OPENSSL_VERSION}.tgz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz - tar xzf /tmp/openssl_${OPENSSL_VERSION}.tgz --directory=$BUILD_DIR +if [ $arch != "armv6" -a ! -d ${PREFIX}/${arch} ]; then + mkdir -p ${PREFIX}/${arch} fi -if [ ! -e "${CURL_FLAGFILE}" ]; then - rm -rf "$BUILD_DIR/curl-${CURL_VERSION}" - wget -c --no-verbose -O /tmp/curl_${CURL_VERSION}.tgz https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz - tar xzf /tmp/curl_${CURL_VERSION}.tgz --directory=$BUILD_DIR +if [ $build_with_vcpkg = "no" -o $arch = "armv6" ]; then + + if [ ! -e "${OPENSSL_FLAGFILE}" ]; then + rm -rf "$BUILD_DIR/openssl-${OPENSSL_VERSION}" + wget -c --no-verbose -O /tmp/openssl_${OPENSSL_VERSION}.tgz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz + tar xzf /tmp/openssl_${OPENSSL_VERSION}.tgz --directory=$BUILD_DIR + fi + + if [ ! -e "${CURL_FLAGFILE}" ]; then + rm -rf "$BUILD_DIR/curl-${CURL_VERSION}" + wget -c --no-verbose -O /tmp/curl_${CURL_VERSION}.tgz https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz + tar xzf /tmp/curl_${CURL_VERSION}.tgz --directory=$BUILD_DIR + fi fi packegesToInstall() { - pkgs="rappture" + pkgs="rappture curl[core,openssl]" echo $(packegesList $1 $pkgs) } @@ -254,7 +261,7 @@ packegesList() echo $list_pkgs } -if [ $component = "apps" -a $build_with_vcpkg = "yes" ]; then +if [ $build_with_vcpkg = "yes" -a $arch != "armv6" ]; then export XDG_CACHE_HOME=$cache_dir/vcpkgcache/ vcpkg_flags="--overlay-triplets=$vcpkg_ports_dir/triplets/default --clean-after-build" if [ ! -d "$VCPKG_ROOT" ]; then @@ -301,14 +308,43 @@ if [ $component = "apps" -a $build_with_vcpkg = "yes" ]; then $VCPKG_ROOT/vcpkg upgrade --no-dry-run fi -list_apps_name="boinc_gahp uc2 ucn multi_thread sleeper worker wrapper wrappture_example fermi" +vcpkgDir() +{ + arch=$1 + shift + vcpkg_dir="$VCPKG_ROOT/installed" + + if [ $arch = "armv6" ]; then + vcpkg_dir="$vcpkg_dir/armv6-android" + elif [ $arch = "arm" ]; then + vcpkg_dir="$vcpkg_dir/arm-android" + elif [ $arch = "arm64" ]; then + vcpkg_dir="$vcpkg_dir/arm64-android" + elif [ $arch = "x86" ]; then + vcpkg_dir="$vcpkg_dir/x86-android" + elif [ $arch = "x86_64" ]; then + vcpkg_dir="$vcpkg_dir/x64-android" + fi + + echo $vcpkg_dir +} + +list_apps_name="boinc_gahp uc2 ucn multi_thread sleeper worker wrapper" + +if [ $build_with_vcpkg = "yes" -a $arch != "armv6" ]; then + list_apps_name="$list_apps_name wrappture_example fermi" +fi NeonTest() { while [ $# -gt 0 ]; do echo "NeonTest: readelf -A" "$1" - if [ $(readelf -A $(find $ANDROID_TC/${arch} "../samples" -type f -name "$1") | grep -i neon | head -c1 | wc -c) -ne 0 ]; then - echo $(readelf -A $(find $ANDROID_TC/${arch} "../samples" -type f -name "$1") | grep -i neon) + vcpkg_dir_search="" + if [ $build_with_vcpkg = "yes" -a $arch != "armv6" ]; then + vcpkg_dir_search=$(vcpkgDir $arch) + fi + if [ $(readelf -A $(find $ANDROID_TC/${arch} "../samples" $vcpkg_dir_search -type f -name "$1") | grep -i neon | head -c1 | wc -c) -ne 0 ]; then + echo $(readelf -A $(find $ANDROID_TC/${arch} "../samples" $vcpkg_dir_search -type f -name "$1") | grep -i neon) echo [ERROR] "$1" contains neon optimization exit 1 fi @@ -330,8 +366,12 @@ Armv6Test() { while [ $# -gt 0 ]; do echo "Armv6Test: readelf -A" "$1" - if [ $(readelf -A $(find $ANDROID_TC/armv6 "BOINC/app/src/main/assets/armeabi" "../samples" -type f -name "$1") | grep -i "Tag_CPU_arch: v6" | head -c1 | wc -c) -eq 0 ]; then - echo $(readelf -A $(find $ANDROID_TC/armv6 "BOINC/app/src/main/assets/armeabi" "../samples" -type f -name "$1") | grep -i "Tag_CPU_arch:") + vcpkg_dir_search="" + if [ $build_with_vcpkg = "yes" -a $arch != "armv6" ]; then + vcpkg_dir_search=$(vcpkgDir $arch) + fi + if [ $(readelf -A $(find $ANDROID_TC/armv6 "BOINC/app/src/main/assets/armeabi" "../samples" $vcpkg_dir_search -type f -name "$1") | grep -i -E "Tag_CPU_arch: (v6|v5TE)" | head -c1 | wc -c) -eq 0 ]; then + echo $(readelf -A $(find $ANDROID_TC/armv6 "BOINC/app/src/main/assets/armeabi" "../samples" $vcpkg_dir_search -type f -name "$1") | grep -i "Tag_CPU_arch:") echo [ERROR] "$1" is not armv6 cpu arch exit 1 fi @@ -362,15 +402,19 @@ NeonTestApps() RenameAllApps() { list_apps="../samples/condor/ boinc_gahp - ../samples/example_app/ uc2 + ../samples/example_app/ uc2 ../samples/example_app/ ucn ../samples/multi_thread/ multi_thread ../samples/sleeper/ sleeper ../samples/worker/ worker ../samples/wrapper/ wrapper + " +if [ $build_with_vcpkg = "yes" -a $arch != "armv6" ]; then + list_apps="$list_apps ../samples/wrappture/ wrappture_example ../samples/wrappture/ fermi " +fi RenameApp $1 $list_apps } diff --git a/android/build_boinc_arm.sh b/android/build_boinc_arm.sh index 7e5d062072..1393b33849 100755 --- a/android/build_boinc_arm.sh +++ b/android/build_boinc_arm.sh @@ -23,6 +23,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/arm-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=armv7a-linux-androideabi16-clang @@ -30,7 +42,7 @@ export CXX=armv7a-linux-androideabi16-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -60,7 +72,11 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-shared --enable-static --disable-largefile + if [ $BUILD_WITH_VCPKG = "yes" ]; then + chmod +x "$VCPKG_DIR/share/curl/curl-config" + export _libcurl_config="$VCPKG_DIR/share/curl/curl-config" + fi + ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" $CONFIG_FLAGS --disable-server --disable-manager --disable-shared --enable-static --disable-largefile fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_boinc_arm64.sh b/android/build_boinc_arm64.sh index dcf4c09110..ad1d61c123 100755 --- a/android/build_boinc_arm64.sh +++ b/android/build_boinc_arm64.sh @@ -23,6 +23,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/aarch64-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/arm64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=aarch64-linux-android21-clang @@ -30,7 +42,7 @@ export CXX=aarch64-linux-android21-clang++ export LD=aarch64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -60,7 +72,11 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-shared --enable-static + if [ $BUILD_WITH_VCPKG = "yes" ]; then + chmod +x "$VCPKG_DIR/share/curl/curl-config" + export _libcurl_config="$VCPKG_DIR/share/curl/curl-config" + fi + ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" $CONFIG_FLAGS --disable-server --disable-manager --disable-shared --enable-static fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_boinc_armv6.sh b/android/build_boinc_armv6.sh index 2917bd29b7..7f0def58fc 100755 --- a/android/build_boinc_armv6.sh +++ b/android/build_boinc_armv6.sh @@ -6,7 +6,7 @@ set -e # # Script to compile BOINC for Android - +BUILD_WITH_VCPKG="no" STDOUT_TARGET="${STDOUT_TARGET:-/dev/stdout}" COMPILEBOINC="yes" CONFIGURE="yes" @@ -22,6 +22,18 @@ export TCBINARIES="$ANDROIDTC/bin" export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi" export TCSYSROOT="$ANDROIDTC/sysroot" export STDCPPTC="$TCINCLUDES/lib/libstdc++.a" +export VCPKG_DIR=$VCPKG_ROOT/installed/armv6-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=arm-linux-androideabi-clang @@ -29,7 +41,7 @@ export CXX=arm-linux-androideabi-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -62,7 +74,11 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=armv6-linux --with-boinc-platform="arm-android-linux-gnu" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-shared --enable-static --disable-largefile + if [ $BUILD_WITH_VCPKG = "yes" ]; then + chmod +x "$VCPKG_DIR/share/curl/curl-config" + export _libcurl_config="$VCPKG_DIR/share/curl/curl-config" + fi + ./configure --host=armv6-linux --with-boinc-platform="arm-android-linux-gnu" $CONFIG_FLAGS --disable-server --disable-manager --disable-shared --enable-static --disable-largefile sed -e "s%^CLIENTLIBS *= *.*$%CLIENTLIBS = -lm $STDCPPTC%g" client/Makefile > client/Makefile.out mv client/Makefile.out client/Makefile fi diff --git a/android/build_boinc_x86.sh b/android/build_boinc_x86.sh index 53165d3ef9..a626ec08c3 100755 --- a/android/build_boinc_x86.sh +++ b/android/build_boinc_x86.sh @@ -23,6 +23,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/i686-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/x86-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=i686-linux-android16-clang @@ -30,7 +42,7 @@ export CXX=i686-linux-android16-clang++ export LD=i686-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=16" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=16" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -60,7 +72,11 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-shared --enable-static --disable-largefile + if [ $BUILD_WITH_VCPKG = "yes" ]; then + chmod +x "$VCPKG_DIR/share/curl/curl-config" + export _libcurl_config="$VCPKG_DIR/share/curl/curl-config" + fi + ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" $CONFIG_FLAGS --disable-server --disable-manager --disable-shared --enable-static --disable-largefile fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_boinc_x86_64.sh b/android/build_boinc_x86_64.sh index 751fc792ef..cdb7706528 100755 --- a/android/build_boinc_x86_64.sh +++ b/android/build_boinc_x86_64.sh @@ -23,6 +23,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/x86_64-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/x64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=x86_64-linux-android21-clang @@ -30,7 +42,7 @@ export CXX=x86_64-linux-android21-clang++ export LD=x86_64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" -export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -60,7 +72,11 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-shared --enable-static + if [ $BUILD_WITH_VCPKG = "yes" ]; then + chmod +x "$VCPKG_DIR/share/curl/curl-config" + export _libcurl_config="$VCPKG_DIR/share/curl/curl-config" + fi + ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" $CONFIG_FLAGS --disable-server --disable-manager --disable-shared --enable-static fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_curl_arm.sh b/android/build_curl_arm.sh index 2b1bf77ca5..8b36694546 100755 --- a/android/build_curl_arm.sh +++ b/android/build_curl_arm.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${CURL_FLAGFILE}" ]; then +if [ ! -e "${CURL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$CURL" echo "===== building curl for arm from $PWD =====" if [ -n "$MAKECLEAN" ] && $(grep -q "^distclean:" "${CURL}/Makefile"); then diff --git a/android/build_curl_arm64.sh b/android/build_curl_arm64.sh index 563cd849e4..d2975bca0d 100755 --- a/android/build_curl_arm64.sh +++ b/android/build_curl_arm64.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${CURL_FLAGFILE}" ]; then +if [ ! -e "${CURL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$CURL" echo "===== building curl for arm64 from $PWD =====" if [ -n "$MAKECLEAN" ] && $(grep -q "^distclean:" "${CURL}/Makefile"); then diff --git a/android/build_curl_armv6.sh b/android/build_curl_armv6.sh index e6ada38474..153a70f7bf 100755 --- a/android/build_curl_armv6.sh +++ b/android/build_curl_armv6.sh @@ -6,7 +6,7 @@ set -e # # Script to compile Libcurl for Android - +BUILD_WITH_VCPKG="no" STDOUT_TARGET="${STDOUT_TARGET:-/dev/stdout}" CONFIGURE="yes" MAKECLEAN="yes" @@ -48,7 +48,7 @@ else MAKE_FLAGS="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${CURL_FLAGFILE}" ]; then +if [ ! -e "${CURL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$CURL" echo "===== building curl for armv6 from $PWD =====" if [ -n "$MAKECLEAN" ] && $(grep -q "^distclean:" "${CURL}/Makefile"); then diff --git a/android/build_curl_x86.sh b/android/build_curl_x86.sh index 666bb16cd4..5290d76f4c 100755 --- a/android/build_curl_x86.sh +++ b/android/build_curl_x86.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${CURL_FLAGFILE}" ]; then +if [ ! -e "${CURL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$CURL" echo "===== building curl for x86 from $PWD =====" if [ -n "$MAKECLEAN" ] && $(grep -q "^distclean:" "${CURL}/Makefile"); then diff --git a/android/build_curl_x86_64.sh b/android/build_curl_x86_64.sh index 2aaea1ed19..7135bb7d8d 100755 --- a/android/build_curl_x86_64.sh +++ b/android/build_curl_x86_64.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${CURL_FLAGFILE}" ]; then +if [ ! -e "${CURL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$CURL" echo "===== building curl for x86-64 from $PWD =====" if [ -n "$MAKECLEAN" ] && $(grep -q "^distclean:" "${CURL}/Makefile"); then diff --git a/android/build_example_arm.sh b/android/build_example_arm.sh index b1fca1732d..015a33d7e8 100755 --- a/android/build_example_arm.sh +++ b/android/build_example_arm.sh @@ -21,8 +21,19 @@ export TCSYSROOT="$TOOLCHAINROOT/sysroot" export BOINC_API_DIR="$BOINC/api" export BOINC_LIB_DIR="$BOINC/lib" export BOINC_ZIP_DIR="$BOINC/zip" - export VCPKG_DIR=$VCPKG_ROOT/installed/arm-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi + export ANDROID="yes" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=armv7a-linux-androideabi16-clang @@ -30,15 +41,9 @@ export CXX=armv7a-linux-androideabi16-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16 -I$TCINCLUDES/include -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16 -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" -VCPKG_FLAG="" - -if [ $BUILD_WITH_VCPKG = "yes" ]; then - VCPKG_FLAG="--enable-vcpkg" -fi - MAKE_FLAGS="" if [ $VERBOSE = "no" ]; then @@ -66,7 +71,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --enable-apps $VCPKG_FLAG --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --enable-apps --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_example_arm64.sh b/android/build_example_arm64.sh index ba840739ae..7abb4f2deb 100755 --- a/android/build_example_arm64.sh +++ b/android/build_example_arm64.sh @@ -21,8 +21,19 @@ export TCSYSROOT="$TOOLCHAINROOT/sysroot" export BOINC_API_DIR="$BOINC/api" export BOINC_LIB_DIR="$BOINC/lib" export BOINC_ZIP_DIR="$BOINC/zip" - export VCPKG_DIR=$VCPKG_ROOT/installed/arm64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi + export ANDROID="yes" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=aarch64-linux-android21-clang @@ -30,13 +41,13 @@ export CXX=aarch64-linux-android21-clang++ export LD=aarch64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21 -I$TCINCLUDES/include -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -fPIE -D__ANDROID_API__=21 -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" -VCPKG_FLAG="" +ENABLE_VCPKG_FLAG="" if [ $BUILD_WITH_VCPKG = "yes" ]; then - VCPKG_FLAG="--enable-vcpkg" + ENABLE_VCPKG_FLAG="--enable-vcpkg" fi MAKE_FLAGS="" @@ -66,7 +77,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --enable-apps $VCPKG_FLAG --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --enable-boinczip + ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --enable-apps --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_example_armv6.sh b/android/build_example_armv6.sh index 0de3ba8db7..e3917a4e14 100755 --- a/android/build_example_armv6.sh +++ b/android/build_example_armv6.sh @@ -2,7 +2,7 @@ set -e #script to compile Example for Android - +BUILD_WITH_VCPKG="no" STDOUT_TARGET="${STDOUT_TARGET:-/dev/stdout}" COMPILEBOINC="yes" CONFIGURE="yes" @@ -20,8 +20,19 @@ export STDCPPTC="$TCINCLUDES/lib/libstdc++.a" export BOINC_API_DIR="$BOINC/api" export BOINC_LIB_DIR="$BOINC/lib" export BOINC_ZIP_DIR="$BOINC/zip" - export VCPKG_DIR=$VCPKG_ROOT/installed/armv6-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi + export ANDROID="yes" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=arm-linux-androideabi-clang @@ -29,13 +40,13 @@ export CXX=arm-linux-androideabi-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6 -I$TCINCLUDES/include -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6 -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" -VCPKG_FLAG="" +ENABLE_VCPKG_FLAG="" if [ $BUILD_WITH_VCPKG = "yes" ]; then - VCPKG_FLAG="--enable-vcpkg" + ENABLE_VCPKG_FLAG="--enable-vcpkg" fi MAKE_FLAGS="" @@ -65,7 +76,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=armv6-linux --with-boinc-platform="armv-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --enable-apps $VCPKG_FLAG --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=armv6-linux --with-boinc-platform="armv-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --enable-apps --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_example_x86.sh b/android/build_example_x86.sh index 7e08ce46df..c8fb683230 100755 --- a/android/build_example_x86.sh +++ b/android/build_example_x86.sh @@ -21,8 +21,19 @@ export TCSYSROOT="$TOOLCHAINROOT/sysroot" export BOINC_API_DIR="$BOINC/api" export BOINC_LIB_DIR="$BOINC/lib" export BOINC_ZIP_DIR="$BOINC/zip" - export VCPKG_DIR=$VCPKG_ROOT/installed/x86-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi + export ANDROID="yes" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=i686-linux-android16-clang @@ -30,15 +41,9 @@ export CXX=i686-linux-android16-clang++ export LD=i686-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=16 -I$TCINCLUDES/include -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -fPIE -D__ANDROID_API__=16 -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" -VCPKG_FLAG="" - -if [ $BUILD_WITH_VCPKG = "yes" ]; then - VCPKG_FLAG="--enable-vcpkg" -fi - MAKE_FLAGS="" if [ $VERBOSE = "no" ]; then @@ -66,7 +71,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --enable-apps $VCPKG_FLAG --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --enable-apps --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-static --disable-largefile --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_example_x86_64.sh b/android/build_example_x86_64.sh index 90b043566a..cfeeb981a6 100755 --- a/android/build_example_x86_64.sh +++ b/android/build_example_x86_64.sh @@ -21,8 +21,19 @@ export TCSYSROOT="$TOOLCHAINROOT/sysroot" export BOINC_API_DIR="$BOINC/api" export BOINC_LIB_DIR="$BOINC/lib" export BOINC_ZIP_DIR="$BOINC/zip" - export VCPKG_DIR=$VCPKG_ROOT/installed/x64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi + export ANDROID="yes" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=x86_64-linux-android21-clang @@ -30,13 +41,13 @@ export CXX=x86_64-linux-android21-clang++ export LD=x86_64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21 -I$TCINCLUDES/include -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -fPIE -D__ANDROID_API__=21 -I$BOINC -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" +export LDFLAGS="$CONFIG_LDFLAGS -L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -lz" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" -VCPKG_FLAG="" +ENABLE_VCPKG_FLAG="" if [ $BUILD_WITH_VCPKG = "yes" ]; then - VCPKG_FLAG="--enable-vcpkg" + ENABLE_VCPKG_FLAG="--enable-vcpkg" fi MAKE_FLAGS="" @@ -66,7 +77,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --enable-apps $VCPKG_FLAG --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-boinczip + ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --enable-apps --disable-server --disable-manager --disable-client --disable-libraries --disable-shared --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_libraries_arm.sh b/android/build_libraries_arm.sh index 07042d97bb..fd4b4b0b91 100755 --- a/android/build_libraries_arm.sh +++ b/android/build_libraries_arm.sh @@ -24,6 +24,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/arm-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=armv7a-linux-androideabi16-clang @@ -31,7 +43,7 @@ export CXX=armv7a-linux-androideabi16-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -62,7 +74,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_libraries_arm64.sh b/android/build_libraries_arm64.sh index c8dd714791..efc2a347d7 100755 --- a/android/build_libraries_arm64.sh +++ b/android/build_libraries_arm64.sh @@ -24,6 +24,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/aarch64-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/arm64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=aarch64-linux-android21-clang @@ -31,7 +43,7 @@ export CXX=aarch64-linux-android21-clang++ export LD=aarch64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -62,7 +74,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-client --disable-shared --enable-static --enable-boinczip + ./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --disable-server --disable-manager --disable-client --disable-shared --enable-static --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_libraries_armv6.sh b/android/build_libraries_armv6.sh index 3820fdf6fd..9258033487 100755 --- a/android/build_libraries_armv6.sh +++ b/android/build_libraries_armv6.sh @@ -7,7 +7,7 @@ set -e # Script to compile various BOINC libraries for Android to be used # by science applications - +BUILD_WITH_VCPKG="no" STDOUT_TARGET="${STDOUT_TARGET:-/dev/stdout}" COMPILEBOINC="yes" CONFIGURE="yes" @@ -22,6 +22,18 @@ export ANDROIDTC="${ANDROID_TC_ARMV6:-$ANDROID_TC/armv6}" export TCBINARIES="$ANDROIDTC/bin" export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi" export TCSYSROOT="$ANDROIDTC/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/armv6-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=arm-linux-androideabi-clang @@ -29,7 +41,7 @@ export CXX=arm-linux-androideabi-clang++ export LD=arm-linux-androideabi-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv6 -mfloat-abi=softfp -mfpu=vfp -D__ANDROID_API__=16 -DARMV6" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++ -march=armv6" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -63,7 +75,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=arm-linux --with-boinc-platform="arm-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip sed -e "s%^CLIENTLIBS *= *.*$%CLIENTLIBS = -lm $STDCPPTC%g" client/Makefile > client/Makefile.out mv client/Makefile.out client/Makefile fi diff --git a/android/build_libraries_x86.sh b/android/build_libraries_x86.sh index 95eb102e0b..8ae5dc857f 100755 --- a/android/build_libraries_x86.sh +++ b/android/build_libraries_x86.sh @@ -24,6 +24,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/i686-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/x86-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=i686-linux-android16-clang @@ -31,7 +43,7 @@ export CXX=i686-linux-android16-clang++ export LD=i686-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=16" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=16" -export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -62,7 +74,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip + ./configure --host=i686-linux --with-boinc-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --disable-server --disable-manager --disable-client --disable-shared --enable-static --disable-largefile --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_libraries_x86_64.sh b/android/build_libraries_x86_64.sh index 9c9f11158d..935f529bfa 100755 --- a/android/build_libraries_x86_64.sh +++ b/android/build_libraries_x86_64.sh @@ -24,6 +24,18 @@ export TOOLCHAINROOT="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/" export TCBINARIES="$TOOLCHAINROOT/bin" export TCINCLUDES="$ANDROIDTC/x86_64-linux-android" export TCSYSROOT="$TOOLCHAINROOT/sysroot" +export VCPKG_DIR=$VCPKG_ROOT/installed/x64-android + +CONFIG_FLAGS="" +CONFIG_LDFLAGS="" + +if [ $BUILD_WITH_VCPKG = "yes" ]; then + CONFIG_LDFLAGS="-L$VCPKG_DIR/lib" + CONFIG_FLAGS="--with-libcurl=$VCPKG_DIR --with-ssl=$VCPKG_DIR --enable-vcpkg" +else + CONFIG_FLAGS="--with-ssl=$TCINCLUDES" + CONFIG_LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib" +fi export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=x86_64-linux-android21-clang @@ -31,7 +43,7 @@ export CXX=x86_64-linux-android21-clang++ export LD=x86_64-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -D__ANDROID_API__=21" -export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie -latomic -static-libstdc++" +export LDFLAGS="$CONFIG_LDFLAGS -llog -fPIE -pie -latomic -static-libstdc++" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" export PKG_CONFIG_SYSROOT_DIR="$TCSYSROOT" @@ -62,7 +74,7 @@ if [ -n "$COMPILEBOINC" ]; then fi if [ -n "$CONFIGURE" ]; then ./_autosetup - ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --with-ssl="$TCINCLUDES" --disable-server --disable-manager --disable-client --disable-shared --enable-static --enable-boinczip + ./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" $CONFIG_FLAGS --disable-server --disable-manager --disable-client --disable-shared --enable-static --enable-boinczip fi echo MAKE_FLAGS=$MAKE_FLAGS make $MAKE_FLAGS diff --git a/android/build_openssl_arm.sh b/android/build_openssl_arm.sh index e75136db01..3c6a0d5d5d 100755 --- a/android/build_openssl_arm.sh +++ b/android/build_openssl_arm.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS1="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then +if [ ! -e "${OPENSSL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$OPENSSL" echo "===== building openssl for arm from $PWD =====" if [ -n "$MAKECLEAN" ]; then diff --git a/android/build_openssl_arm64.sh b/android/build_openssl_arm64.sh index 1f615d9126..facc460a5c 100755 --- a/android/build_openssl_arm64.sh +++ b/android/build_openssl_arm64.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS1="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then +if [ ! -e "${OPENSSL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$OPENSSL" echo "===== building openssl for arm64 from $PWD =====" if [ -n "$MAKECLEAN" ]; then diff --git a/android/build_openssl_armv6.sh b/android/build_openssl_armv6.sh index 93695566a6..59913c91eb 100755 --- a/android/build_openssl_armv6.sh +++ b/android/build_openssl_armv6.sh @@ -6,7 +6,7 @@ set -e # # Script to compile OpenSSL for Android - +BUILD_WITH_VCPKG="no" STDOUT_TARGET="${STDOUT_TARGET:-/dev/stdout}" CONFIGURE="yes" MAKECLEAN="yes" @@ -48,7 +48,7 @@ else MAKE_FLAGS1="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then +if [ ! -e "${OPENSSL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$OPENSSL" echo "===== building openssl for armv6 from $PWD =====" if [ -n "$MAKECLEAN" ]; then diff --git a/android/build_openssl_x86.sh b/android/build_openssl_x86.sh index 41dcbc672d..2fab048699 100755 --- a/android/build_openssl_x86.sh +++ b/android/build_openssl_x86.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS1="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then +if [ ! -e "${OPENSSL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$OPENSSL" echo "===== building openssl for x86 from $PWD =====" if [ -n "$MAKECLEAN" ]; then diff --git a/android/build_openssl_x86_64.sh b/android/build_openssl_x86_64.sh index 5b9b0f1282..3097216fc3 100755 --- a/android/build_openssl_x86_64.sh +++ b/android/build_openssl_x86_64.sh @@ -46,7 +46,7 @@ else MAKE_FLAGS1="$MAKE_FLAGS -j $NPROC_USER" fi -if [ ! -e "${OPENSSL_FLAGFILE}" ]; then +if [ ! -e "${OPENSSL_FLAGFILE}" -a $BUILD_WITH_VCPKG = "no" ]; then cd "$OPENSSL" echo "===== building openssl for x86-64 from $PWD =====" if [ -n "$MAKECLEAN" ]; then diff --git a/android/ci_build_apps.sh b/android/ci_build_apps.sh index 80129266f9..dbbb4ed5c1 100755 --- a/android/ci_build_apps.sh +++ b/android/ci_build_apps.sh @@ -14,6 +14,6 @@ if [ ! -d "android" ]; then fi echo '===== BOINC apps for all platforms build start =====' -android/build_component.sh --ci --component apps --with-vcpkg +android/build_component.sh --ci --component apps echo '===== BOINC apps for all platforms build done =====' diff --git a/android/ci_build_vcpkg_apps.sh b/android/ci_build_vcpkg_apps.sh new file mode 100755 index 0000000000..80129266f9 --- /dev/null +++ b/android/ci_build_vcpkg_apps.sh @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +# +# See: https://boinc.berkeley.edu/trac/wiki/AndroidBuildClient +# + +# Script to compile BOINC apps for Android + +# check working directory because the script needs to be called like: ./android/ci_build_apps.sh +if [ ! -d "android" ]; then + echo "start this script in the source root directory" + exit 1 +fi + +echo '===== BOINC apps for all platforms build start =====' +android/build_component.sh --ci --component apps --with-vcpkg +echo '===== BOINC apps for all platforms build done =====' + diff --git a/android/ci_build_vcpkg_client.sh b/android/ci_build_vcpkg_client.sh new file mode 100755 index 0000000000..535fbdf099 --- /dev/null +++ b/android/ci_build_vcpkg_client.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +# +# See: https://boinc.berkeley.edu/trac/wiki/AndroidBuildClient +# + +# Script to compile everything BOINC needs for Android + +# check working directory because the script needs to be called like: ./android/ci_build_manager.sh +if [ ! -d "android" ]; then + echo "start this script in the source root directory" + exit 1 +fi + +echo '===== BOINC Client for all platforms build start =====' +android/build_component.sh --ci --component client --with-vcpkg +echo '===== BOINC Client for all platforms build done =====' diff --git a/android/ci_build_vcpkg_libraries.sh b/android/ci_build_vcpkg_libraries.sh new file mode 100755 index 0000000000..05e8ef19fe --- /dev/null +++ b/android/ci_build_vcpkg_libraries.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +# +# See: https://boinc.berkeley.edu/trac/wiki/AndroidBuildClient +# + +# Script to compile BOINC libs for Android + +# check working directory because the script needs to be called like: ./android/ci_build_libs.sh +if [ ! -d "android" ]; then + echo "start this script in the source root directory" + exit 1 +fi + +echo '===== BOINC libs for all platforms build start =====' +android/build_component.sh --ci --component libs --with-vcpkg +echo '===== BOINC libs for all platforms build done =====' diff --git a/android/ci_build_vcpkg_manager.sh b/android/ci_build_vcpkg_manager.sh new file mode 100755 index 0000000000..8eeaa25c0a --- /dev/null +++ b/android/ci_build_vcpkg_manager.sh @@ -0,0 +1,26 @@ +#!/bin/sh +set -e + +# +# See: https://boinc.berkeley.edu/trac/wiki/AndroidBuildClient +# + +# Script to compile everything BOINC needs for Android + +# check working directory because the script needs to be called like: ./android/ci_build_manager.sh +if [ ! -d "android" ]; then + echo "start this script in the source root directory" + exit 1 +fi + +android/ci_build_vcpkg_client.sh + +cd android/BOINC + +echo '===== BOINC Manager build start =====' + +./gradlew clean assemble jacocoTestReportDebug + +echo '===== BOINC Manager build done =====' + +cd ../../ diff --git a/deploy/prepare_deployment.sh b/deploy/prepare_deployment.sh index 8c0443f36b..fd618b5976 100755 --- a/deploy/prepare_deployment.sh +++ b/deploy/prepare_deployment.sh @@ -210,6 +210,12 @@ case $TYPE in android_apps) prepare_android_apps ;; + android_manager-vcpkg) + prepare_android_manager + ;; + android_apps-vcpkg) + prepare_android_apps + ;; *) echo "unrecognized BOINC_TYPE $key" exit 1 diff --git a/m4/libcurl.m4 b/m4/libcurl.m4 index 6f87eb0ce0..45dd9b6b43 100644 --- a/m4/libcurl.m4 +++ b/m4/libcurl.m4 @@ -73,36 +73,36 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG], AC_PATH_PROG([_libcurl_config],[curl-config]) if test x$_libcurl_config != "x" ; then AC_CACHE_CHECK([for the version of libcurl], - [libcurl_cv_lib_curl_version], + [libcurl_cv_lib_curl_version], [libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $[]2}'`]) - _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse` - _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse` + _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse` + _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse` if test $_libcurl_wanted -gt 0 ; then - AC_CACHE_CHECK([for libcurl >= version $2], - [libcurl_cv_lib_version_ok], + AC_CACHE_CHECK([for libcurl >= version $2], + [libcurl_cv_lib_version_ok], [ - if test $_libcurl_version -ge $_libcurl_wanted ; then - libcurl_cv_lib_version_ok=yes - else - libcurl_cv_lib_version_ok=no - fi + if test $_libcurl_version -ge $_libcurl_wanted ; then + libcurl_cv_lib_version_ok=yes + else + libcurl_cv_lib_version_ok=no + fi ]) fi - if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then + if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then if test x"$LIBCURL_CPPFLAGS" = "x" ; then LIBCURL_CPPFLAGS=`$_libcurl_config --cflags` fi if test x"$LIBCURL" = "x" ; then - if test "x${disable_static_linkage}" = "xno" ; then - if $_libcurl_config --static-libs 2>&1 > /dev/null ; then - LIBCURL="`$_libcurl_config --static-libs`" + if test "x${disable_static_linkage}" = "xno" ; then + if $_libcurl_config --static-libs 2>&1 > /dev/null ; then + LIBCURL="`$_libcurl_config --static-libs`" fi - fi - fi + fi + fi if test x"$LIBCURL" = "x" ; then LIBCURL="`$_libcurl_config --libs`" @@ -117,27 +117,30 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG], fi # This is so silly, but Apple actually has a bug in their - # curl-config script. Fixed in Tiger, but there are still - # lots of Panther installs around. + # curl-config script. Fixed in Tiger, but there are still + # lots of Panther installs around. case "${host}" in powerpc-apple-darwin7*) LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'` - ;; + ;; + armv6-*) + LIBCURL="-lcurl -lssl -lcrypto -lz -latomic" + ;; esac fi - # All curl-config scripts support --feature - _libcurl_features=`$_libcurl_config --feature` + # All curl-config scripts support --feature + _libcurl_features=`$_libcurl_config --feature` # Is it modern enough to have --protocols? (7.12.4) - if test $_libcurl_version -ge 461828 ; then + if test $_libcurl_version -ge 461828 ; then _libcurl_protocols=`$_libcurl_config --protocols` fi - else + else _libcurl_try_link=no - fi + fi - unset _libcurl_wanted + unset _libcurl_wanted fi # do we need the ldap libraries? @@ -152,7 +155,7 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG], # some curl configs have the ber and ldap libraries in the wrong order, # so lets add -lber after -lldap. if test "x`echo $LIBCURL | grep ldap`" != "x" -a \ - "x`echo $LIBCURL | grep lber`" != "x" ; then + "x`echo $LIBCURL | grep lber`" != "x" ; then AC_CHECK_LIB([lber],[ber_scanf], LIBCURL="`echo $LIBCURL | sed -e 's/ldap /ldap -llber /'`" ) @@ -209,8 +212,8 @@ x=CURLOPT_VERBOSE; if test $libcurl_cv_lib_curl_usable = yes ; then - # Does curl_free() exist in this version of libcurl? - # If not, fake it with free() + # Does curl_free() exist in this version of libcurl? + # If not, fake it with free() _libcurl_save_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" @@ -218,8 +221,8 @@ x=CURLOPT_VERBOSE; LIBS="$LIBS $LIBCURL" AC_CHECK_FUNC(curl_free,, - AC_DEFINE(curl_free,free, - [Define curl_free() as free() if our version of curl lacks curl_free.])) + AC_DEFINE(curl_free,free, + [Define curl_free() as free() if our version of curl lacks curl_free.])) CPPFLAGS=$_libcurl_save_cppflags LIBS=$_libcurl_save_libs @@ -232,36 +235,36 @@ x=CURLOPT_VERBOSE; AC_SUBST(LIBCURL) for _libcurl_feature in $_libcurl_features ; do - AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1]) - eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes + AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1]) + eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes done - if test x$libcurl_feature_SSL = xyes ; then - LIBCURL_CABUNDLE=`$_libcurl_config --ca 2>/dev/null` + if test x$libcurl_feature_SSL = xyes ; then + LIBCURL_CABUNDLE=`$_libcurl_config --ca 2>/dev/null` AC_DEFINE_UNQUOTED(LIBCURL_CABUNDLE,"${LIBCURL_CABUNDLE}",[Define to the name of libcurl's certification file]) fi - if test "x$_libcurl_protocols" = "x" ; then + if test "x$_libcurl_protocols" = "x" ; then - # We don't have --protocols, so just assume that all - # protocols are available - _libcurl_protocols="HTTP FTP GOPHER FILE TELNET LDAP DICT" + # We don't have --protocols, so just assume that all + # protocols are available + _libcurl_protocols="HTTP FTP GOPHER FILE TELNET LDAP DICT" - if test x$libcurl_feature_SSL = xyes ; then - _libcurl_protocols="$_libcurl_protocols HTTPS" + if test x$libcurl_feature_SSL = xyes ; then + _libcurl_protocols="$_libcurl_protocols HTTPS" - # FTPS wasn't standards-compliant until version - # 7.11.0 - if test $_libcurl_version -ge 461568; then - _libcurl_protocols="$_libcurl_protocols FTPS" - fi - fi - fi + # FTPS wasn't standards-compliant until version + # 7.11.0 + if test $_libcurl_version -ge 461568; then + _libcurl_protocols="$_libcurl_protocols FTPS" + fi + fi + fi - for _libcurl_protocol in $_libcurl_protocols ; do - AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1]) - eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes + for _libcurl_protocol in $_libcurl_protocols ; do + AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1]) + eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes done fi fi diff --git a/samples/condor/Makefile b/samples/condor/Makefile index a9277c841a..f0b210688e 100644 --- a/samples/condor/Makefile +++ b/samples/condor/Makefile @@ -15,7 +15,7 @@ else BOINC_LIB_DIR = $(TCINCLUDES)/lib BOINC_ZIP_DIR = $(TCINCLUDES)/lib - LINUX_LDFLAGS = + LINUX_LDFLAGS = -lz endif PROGS = boinc_gahp @@ -31,5 +31,5 @@ distclean-recursive: clean boinc_gahp: boinc_gahp.cpp $(BOINC_SOURCE_LIB_DIR)/remote_submit.h $(BOINC_SOURCE_LIB_DIR)/remote_submit.cpp $(BOINC_DIR)/svn_version.h $(BOINC_DIR)/version.h $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -g -O2 -I$(BOINC_DIR) -I$(BOINC_SOURCE_LIB_DIR) \ - -o boinc_gahp boinc_gahp.cpp $(BOINC_SOURCE_LIB_DIR)/remote_submit.cpp \ - -L$(BOINC_LIB_DIR) -lcurl -lssl -lcrypto -lboinc $(LINUX_LDFLAGS) $(STDCPPTC) + -I$(VCPKG_DIR)/include -o boinc_gahp boinc_gahp.cpp $(BOINC_SOURCE_LIB_DIR)/remote_submit.cpp \ + -L$(BOINC_LIB_DIR) -L$(VCPKG_DIR)/lib -lcurl -lssl -lcrypto -lboinc $(LINUX_LDFLAGS) $(STDCPPTC)