diff --git a/Common/3dParty/boost/boost.pri b/Common/3dParty/boost/boost.pri index e590f9c27d..dcc0e87b70 100644 --- a/Common/3dParty/boost/boost.pri +++ b/Common/3dParty/boost/boost.pri @@ -4,6 +4,10 @@ CORE_BOOST_LIBS = $$PWD/build/$$CORE_BUILDS_PLATFORM_PREFIX/lib core_android { INCLUDEPATH += $$PWD/build/android/include CORE_BOOST_LIBS = $$PWD/build/android/lib/$$CORE_BUILDS_PLATFORM_PREFIX + + DEFINES += "_HAS_AUTO_PTR_ETC=0" + QMAKE_CFLAGS += -Wno-enum-constexpr-conversion + QMAKE_CXXFLAGS += -Wno-enum-constexpr-conversion } bundle_xcframeworks { diff --git a/Common/3dParty/boost/boost_android.sh b/Common/3dParty/boost/boost_android.sh deleted file mode 100755 index e5510d2811..0000000000 --- a/Common/3dParty/boost/boost_android.sh +++ /dev/null @@ -1,326 +0,0 @@ -#!/bin/bash - -cd boost_1_72_0 -OUTPUT_DIR="../build/android" - -BOOST_LIBS="filesystem system date_time regex" - -CPPSTD="-std=c++11 -frtti -fexceptions" - -# Must set these after parseArgs to fill in overriden values -# Todo: -g -DNDEBUG are for debug builds only... -# Boost.test defines are needed to build correct instrumentable boost_unit_test_framework static lib -# it does not affect the functionality of single-header usage. -# See http://www.boost.org/doc/libs/1_66_0/libs/test/doc/html/boost_test/adv_scenarios/static_lib_customizations/entry_point.html -EXTRA_FLAGS="-DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS \ - -DBOOST_TEST_NO_MAIN -DBOOST_TEST_ALTERNATIVE_INIT_API -DANDROID_STL=c++_static \ - -Wno-unused-local-typedef" -EXTRA_ANDROID_FLAGS="$EXTRA_FLAGS" - -if [[ -n "$USE_CXX11_ABI" ]]; then - EXTRA_LINUX_FLAGS="$EXTRA_FLAGS -D_GLIBCXX_USE_CXX11_ABI=$USE_CXX11_ABI" -else - EXTRA_LINUX_FLAGS="$EXTRA_FLAGS" -fi - -doneSection() -{ - echo - echo "Done" - echo "=================================================================" - echo -} - -bootstrapBoost() -{ - BOOTSTRAP_LIBS=$BOOST_LIBS - BOOST_LIBS_COMMA=$(echo $BOOTSTRAP_LIBS | sed -e "s/ /,/g") - echo "Bootstrapping for $1 (with libs $BOOST_LIBS_COMMA)" - ./bootstrap.sh --with-libraries=$BOOST_LIBS_COMMA - - doneSection -} - -generateAndroidUserConfig() -{ - HOSTOS="$(uname | awk '{ print $1}' | tr [:upper:] [:lower:])-" # darwin or linux - OSARCH="$(uname -m)" - - # Boost doesn't build with -Werror - # Reported to boost-users@lists.boost.org - - cat > "./tools/build/src/user-config.jam" <x86 android ---target=i686-none-linux-android ---gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/x86-4.9/prebuilt/$HOSTOS$OSARCH ---sysroot=$ANDROID_NDK_ROOT/sysroot --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++/include --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include --isystem $ANDROID_NDK_ROOT/sources/android/support/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include/i686-linux-android --DANDROID --D__ANDROID_API__=19 --ffunction-sections --funwind-tables --fstack-protector-strong --fno-limit-debug-info --fPIC --no-canonical-prefixes --mstackrealign --Wa,--noexecstack --Wformat --Werror=format-security --Wall --Wshadow -; -using clang : 5.0~x86_64 -: $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$HOSTOS$OSARCH/bin/clang++ $EXTRA_ANDROID_FLAGS -: -x86 android ---target=x86_64-none-linux-android ---gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/x86_64-4.9/prebuilt/$HOSTOS$OSARCH ---sysroot=$ANDROID_NDK_ROOT/sysroot --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++/include --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include --isystem $ANDROID_NDK_ROOT/sources/android/support/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include/x86_64-linux-android --DANDROID --D__ANDROID_API__=21 --ffunction-sections --funwind-tables --fstack-protector-strong --fno-limit-debug-info --fPIC --no-canonical-prefixes --mstackrealign --Wa,--noexecstack --Wformat --Werror=format-security --Wall --Wshadow -; -using clang : 5.0~arm -: $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$HOSTOS$OSARCH/bin/clang++ $EXTRA_ANDROID_FLAGS -: -arm android ---target=armv7-none-linux-androideabi ---gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/$HOSTOS$OSARCH ---sysroot=$ANDROID_NDK_ROOT/sysroot --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++/include --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include --isystem $ANDROID_NDK_ROOT/sources/android/support/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include/arm-linux-androideabi --DANDROID --D__ANDROID_API__=19 --ffunction-sections --funwind-tables --fstack-protector-strong --fno-limit-debug-info --fPIC --fno-integrated-as --no-canonical-prefixes --Wa,--noexecstack --Wformat --Werror=format-security --Wall --Wshadow --march=armv7-a --mfloat-abi=softfp --mfpu=vfpv3-d16 --mthumb -; -using clang : 5.0~arm64 -: $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$HOSTOS$OSARCH/bin/clang++ $EXTRA_ANDROID_FLAGS -: -arm android ---target=aarch64-none-linux-android ---gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/$HOSTOS$OSARCH ---sysroot=$ANDROID_NDK_ROOT/sysroot --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++/include --isystem $ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include --isystem $ANDROID_NDK_ROOT/sources/android/support/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include --isystem $ANDROID_NDK_ROOT/sysroot/usr/include/aarch64-linux-android --DANDROID --D__ANDROID_API__=21 --ffunction-sections --funwind-tables --fstack-protector-strong --fno-limit-debug-info --fPIC --no-canonical-prefixes --Wa,--noexecstack --Wformat --Werror=format-security --Wall --Wshadow -; -EOF -} - -buildBoost_Android() -{ - mkdir -p $OUTPUT_DIR - echo > ${OUTPUT_DIR}/android-build.log - - if [[ -z "$ANDROID_NDK_ROOT" ]]; then - echo "Must specify ANDROID_NDK_ROOT" - exit 1 - fi - - export NO_BZIP2=1 - - # build libicu if locale requested but not provided - # if echo $LIBRARIES | grep locale; then - # if [ -e libiconv-libicu-android ]; then - # echo "ICONV and ICU already compiled" - # else - # echo "boost_locale selected - compiling ICONV and ICU" - # git clone https://github.com/pelya/libiconv-libicu-android.git - # cd libiconv-libicu-android - # ./build.sh || exit 1 - # cd .. - # fi - # fi - - echo clean - ./b2 --clean - - echo Building release x86 Boost for Android Emulator - - ./b2 --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/x86" toolset=clang-5.0~x86 \ - architecture=x86 target-os=android define=_LITTLE_ENDIAN \ - optimization=speed \ - address-model=32 variant=release cxxflags="${CPPSTD}" \ - link=static threading=multi install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error staging Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building release x86_64 Boost for Android Emulator - - ./b2 --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/x86_64" toolset=clang-5.0~x86_64 \ - architecture=x86 target-os=android define=_LITTLE_ENDIAN \ - optimization=speed \ - address-model=64 variant=release cxxflags="${CPPSTD}" \ - link=static threading=multi install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error staging Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building release armv7 Boost for Android - - ./b2 --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/armeabi-v7a" toolset=clang-5.0~arm \ - abi=aapcs architecture=arm address-model=32 binary-format=elf threading=multi \ - optimization=space \ - target-os=android variant=release cxxflags="${CPPSTD}" \ - link=static install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error installing Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building release arm64 Boost for Android - - ./b2 --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/arm64-v8a" toolset=clang-5.0~arm64 \ - abi=aapcs architecture=arm address-model=64 binary-format=elf threading=multi \ - optimization=space \ - target-os=android variant=release cxxflags="${CPPSTD}" \ - link=static install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error installing Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection -} - -buildBoost_Android_debug() -{ - mkdir -p $OUTPUT_DIR - echo > ${OUTPUT_DIR}/android-build.log - - export NO_BZIP2=1 - - # build libicu if locale requested but not provided - # if echo $LIBRARIES | grep locale; then - # if [ -e libiconv-libicu-android ]; then - # echo "ICONV and ICU already compiled" - # else - # echo "boost_locale selected - compiling ICONV and ICU" - # git clone https://github.com/pelya/libiconv-libicu-android.git - # cd libiconv-libicu-android - # ./build.sh || exit 1 - # cd .. - # fi - # fi - - echo Building debug x86 Boost for Android Emulator - - ./b2 $THREADS --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/debug/x86" toolset=clang-5.0~x86 \ - architecture=x86 target-os=android define=_LITTLE_ENDIAN \ - optimization=speed \ - address-model=32 variant=debug cxxflags="${CPPSTD}" \ - link=static threading=multi install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error staging Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building debug x86_64 Boost for Android Emulator - - ./b2 $THREADS --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/debug/x86_64" toolset=clang-5.0~x86_64 \ - architecture=x86 target-os=android define=_LITTLE_ENDIAN \ - optimization=speed \ - address-model=64 variant=debug cxxflags="${CPPSTD}" \ - link=static threading=multi install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error staging Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building debug armv7 Boost for Android - - ./b2 $THREADS --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/debug/armeabi-v7a" toolset=clang-5.0~arm \ - abi=aapcs architecture=arm address-model=32 binary-format=elf threading=multi \ - optimization=space \ - target-os=android variant=debug cxxflags="${CPPSTD}" \ - link=static install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error installing Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection - - echo Building debug arm64 Boost for Android - - ./b2 $THREADS --build-dir=android-build --stagedir=android-build/stage \ - --prefix="$OUTPUT_DIR" \ - --libdir="$OUTPUT_DIR/lib/debug/arm64-v8a" toolset=clang-5.0~arm64 \ - abi=aapcs architecture=arm address-model=64 binary-format=elf threading=multi \ - optimization=space \ - target-os=android variant=debug cxxflags="${CPPSTD}" \ - link=static install >> "${OUTPUT_DIR}/android-build.log" 2>&1 - if [ $? != 0 ]; then echo "Error installing Android. Check ${OUTPUT_DIR}/android-build.log"; exit 1; fi - - doneSection -} - -bootstrapBoost -generateAndroidUserConfig -buildBoost_Android -#buildBoost_Android_debug - -echo "Completed successfully" diff --git a/Common/3dParty/curl/build-android-common.sh b/Common/3dParty/curl/build-android-common.sh deleted file mode 100755 index d1b069c047..0000000000 --- a/Common/3dParty/curl/build-android-common.sh +++ /dev/null @@ -1,220 +0,0 @@ -#!/bin/bash -# -# Copyright 2016 leenjewel -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -source ./build-common.sh - -export PLATFORM_TYPE="Android" -export ARCHS=("arm" "arm64" "x86" "x86_64") -export ABIS=("armeabi-v7a" "arm64-v8a" "x86" "x86_64") -export ABI_TRIPLES=("arm-linux-androideabi" "aarch64-linux-android" "i686-linux-android" "x86_64-linux-android") -export ANDROID_API=21 - -# for test -# export ARCHS=("x86_64") -# export ABIS=("x86_64") -# export ABI_TRIPLES=("x86_64-linux-android") - -if [[ -z ${ANDROID_NDK_ROOT} ]]; then - echo "ANDROID_NDK_ROOT not defined" - exit 1 -fi - -function get_toolchain() { - HOST_OS=$(uname -s) - case ${HOST_OS} in - Darwin) HOST_OS=darwin ;; - Linux) HOST_OS=linux ;; - FreeBsd) HOST_OS=freebsd ;; - CYGWIN* | *_NT-*) HOST_OS=cygwin ;; - esac - - HOST_ARCH=$(uname -m) - case ${HOST_ARCH} in - i?86) HOST_ARCH=x86 ;; - x86_64 | amd64) HOST_ARCH=x86_64 ;; - esac - - echo "${HOST_OS}-${HOST_ARCH}" -} - -function get_android_arch() { - local common_arch=$1 - case ${common_arch} in - arm) - echo "arm-v7a" - ;; - arm64) - echo "arm64-v8a" - ;; - x86) - echo "x86" - ;; - x86_64) - echo "x86-64" - ;; - esac -} - -function get_target_build() { - local arch=$1 - case ${arch} in - arm-v7a) - echo "arm" - ;; - arm64-v8a) - echo "arm64" - ;; - x86) - echo "x86" - ;; - x86-64) - echo "x86_64" - ;; - esac -} - -function get_build_host_internal() { - local arch=$1 - case ${arch} in - arm-v7a | arm-v7a-neon) - echo "arm-linux-androideabi" - ;; - arm64-v8a) - echo "aarch64-linux-android" - ;; - x86) - echo "i686-linux-android" - ;; - x86-64) - echo "x86_64-linux-android" - ;; - esac -} - -function android_get_build_host() { - local arch=$(get_android_arch $1) - get_build_host_internal $arch -} - -function get_clang_target_host() { - local arch=$1 - local api=$2 - case ${arch} in - arm-v7a | arm-v7a-neon) - echo "armv7a-linux-androideabi${api}" - ;; - arm64-v8a) - echo "aarch64-linux-android${api}" - ;; - x86) - echo "i686-linux-android${api}" - ;; - x86-64) - echo "x86_64-linux-android${api}" - ;; - esac -} - -function set_android_toolchain_bin() { - export PATH=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/$(get_toolchain)/bin:$PATH - echo PATH=$PATH -} - -function set_android_toolchain() { - local name=$1 - local arch=$(get_android_arch $2) - local api=$3 - local build_host=$(get_build_host_internal "$arch") - local clang_target_host=$(get_clang_target_host "$arch" "$api") - - export AR=${build_host}-ar - export CC=${clang_target_host}-clang - export CXX=${clang_target_host}-clang++ - export AS=${build_host}-as - export LD=${build_host}-ld - export RANLIB=${build_host}-ranlib - export STRIP=${build_host}-strip -} - -function get_common_includes() { - local toolchain=$(get_toolchain) - echo "-I${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/include -I${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/local/include" -} -function get_common_linked_libraries() { - local api=$1 - local arch=$2 - local toolchain=$(get_toolchain) - local build_host=$(get_build_host_internal "$arch") - echo "-L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/${build_host}/lib -L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/lib/${build_host}/${api} -L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/lib" -} - -function set_android_cpu_feature() { - local name=$1 - local arch=$(get_android_arch $2) - local api=$3 - case ${arch} in - arm-v7a | arm-v7a-neon) - export CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wl,--fix-cortex-a8 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - arm64-v8a) - export CFLAGS="-march=armv8-a -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=armv8-a -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - x86) - export CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=i686 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - x86-64) - export CFLAGS="-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=x86-64 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - esac -} - -function android_printf_global_params() { - local arch=$1 - local abi=$2 - local abi_triple=$3 - local in_dir=$4 - local out_dir=$5 - echo -e "arch = $arch" - echo -e "abi = $abi" - echo -e "abi_triple = $abi_triple" - echo -e "PLATFORM_TYPE = $PLATFORM_TYPE" - echo -e "ANDROID_API = $ANDROID_API" - echo -e "in_dir = $in_dir" - echo -e "out_dir = $out_dir" - echo -e "AR = $AR" - echo -e "CC = $CC" - echo -e "CXX = $CXX" - echo -e "AS = $AS" - echo -e "LD = $LD" - echo -e "RANLIB = $RANLIB" - echo -e "STRIP = $STRIP" - echo -e "CFLAGS = $CFLAGS" - echo -e "CXXFLAGS = $CXXFLAGS" - echo -e "LDFLAGS = $LDFLAGS" - echo -e "CPPFLAGS = $CPPFLAGS" -} diff --git a/Common/3dParty/curl/build-android-curl.sh b/Common/3dParty/curl/build-android-curl.sh deleted file mode 100755 index 697e8845b9..0000000000 --- a/Common/3dParty/curl/build-android-curl.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/bash -# -# Copyright 2016 leenjewel -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# # read -n1 -p "Press any key to continue..." - -set -u - -source ./build-android-common.sh - -init_log_color - -TOOLS_ROOT=$(pwd) - -SOURCE="$0" -while [ -h "$SOURCE" ]; do - DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" - SOURCE="$(readlink "$SOURCE")" - [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" -done -pwd_path="$(cd -P "$(dirname "$SOURCE")" && pwd)" - -echo pwd_path=${pwd_path} -echo TOOLS_ROOT=${TOOLS_ROOT} - -LIB_VERSION="curl-7_68_0" -LIB_NAME="curl-7.68.0" -LIB_DEST_DIR="${pwd_path}/build/android/curl-universal" - -echo "https://github.com/curl/curl/releases/download/${LIB_VERSION}/${LIB_NAME}.tar.gz" - -# https://curl.haxx.se/download/${LIB_NAME}.tar.gz -# https://github.com/curl/curl/releases/download/curl-7_69_0/curl-7.69.0.tar.gz -# https://github.com/curl/curl/releases/download/curl-7_68_0/curl-7.68.0.tar.gz -rm -rf "${LIB_DEST_DIR}" "${LIB_NAME}" -[ -f "${LIB_NAME}.tar.gz" ] || curl -L -o ${LIB_NAME}.tar.gz https://github.com/curl/curl/releases/download/${LIB_VERSION}/${LIB_NAME}.tar.gz -s -[ -f "${LIB_NAME}.tar.gz" ] || log_error "curl download error!" - -set_android_toolchain_bin - -function configure_make() { - - ARCH=$1 - ABI=$2 - ABI_TRIPLE=$3 - - log_info "configure $ABI start..." - - if [ -d "${LIB_NAME}" ]; then - rm -fr "${LIB_NAME}" - fi - tar xfz "${LIB_NAME}.tar.gz" - pushd . - cd "${LIB_NAME}" - - PREFIX_DIR="${pwd_path}/build/android/${ABI}" - if [ -d "${PREFIX_DIR}" ]; then - rm -fr "${PREFIX_DIR}" - fi - mkdir -p "${PREFIX_DIR}" - - OUTPUT_ROOT=${TOOLS_ROOT}/build/android/${ABI} - mkdir -p ${OUTPUT_ROOT}/log - - set_android_toolchain "curl" "${ARCH}" "${ANDROID_API}" - set_android_cpu_feature "curl" "${ARCH}" "${ANDROID_API}" - - export ANDROID_NDK_HOME=${ANDROID_NDK_ROOT} - echo ANDROID_NDK_HOME=${ANDROID_NDK_HOME} - - OPENSSL_OUT_DIR="${pwd_path}/../openssl/build/android/${ABI}" - - export LDFLAGS="${LDFLAGS} -L${OPENSSL_OUT_DIR}/lib" - # export LDFLAGS="-Wl,-rpath-link,-L${OPENSSL_OUT_DIR}/lib $LDFLAGS " - - android_printf_global_params "$ARCH" "$ABI" "$ABI_TRIPLE" "$PREFIX_DIR" "$OUTPUT_ROOT" - - if [[ "${ARCH}" == "x86_64" ]]; then - - ./configure --host=$(android_get_build_host "${ARCH}") --prefix="${PREFIX_DIR}" --enable-ipv6 --with-ssl=${OPENSSL_OUT_DIR} --enable-static --disable-shared >"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - - elif [[ "${ARCH}" == "x86" ]]; then - - ./configure --host=$(android_get_build_host "${ARCH}") --prefix="${PREFIX_DIR}" --enable-ipv6 --with-ssl=${OPENSSL_OUT_DIR} --enable-static --disable-shared >"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - - elif [[ "${ARCH}" == "arm" ]]; then - - ./configure --host=$(android_get_build_host "${ARCH}") --prefix="${PREFIX_DIR}" --enable-ipv6 --with-ssl=${OPENSSL_OUT_DIR} --enable-static --disable-shared >"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - - elif [[ "${ARCH}" == "arm64" ]]; then - - ./configure --host=$(android_get_build_host "${ARCH}") --prefix="${PREFIX_DIR}" --enable-ipv6 --with-ssl=${OPENSSL_OUT_DIR} --enable-static --disable-shared >"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - - else - log_error "not support" && exit 1 - fi - - log_info "make $ABI start..." - - make clean >>"${OUTPUT_ROOT}/log/${ABI}.log" - if make -j$(get_cpu_count) >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1; then - make install >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - fi - - popd -} - -log_info "${PLATFORM_TYPE} ${LIB_NAME} start..." - -for ((i = 0; i < ${#ARCHS[@]}; i++)); do - if [[ $# -eq 0 || "$1" == "${ARCHS[i]}" ]]; then - configure_make "${ARCHS[i]}" "${ABIS[i]}" "${ABI_TRIPLES[i]}" - fi -done - -log_info "${PLATFORM_TYPE} ${LIB_NAME} end..." diff --git a/Common/3dParty/curl/curl.pri b/Common/3dParty/curl/curl.pri index d1178d404e..6d24ea212d 100644 --- a/Common/3dParty/curl/curl.pri +++ b/Common/3dParty/curl/curl.pri @@ -1,18 +1,10 @@ core_android { - - ABI_PATH = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "") - contains(ABI_PATH, "armv7" ) { - ABI_PATH = $$replace(ABI_PATH, "armv7", "armeabi-v7a") - } - contains(ABI_PATH, "arm64_v8a" ) { - ABI_PATH = $$replace(ABI_PATH, "arm64_v8a", "arm64-v8a") - } INCLUDEPATH += \ - $$PWD/build/android/$$ABI_PATH/include \ - $$PWD/../openssl/build/android/$$ABI_PATH/include \ + $$PWD/build/android/include \ + $$PWD/../openssl/build/android/$$CORE_BUILDS_PLATFORM_PREFIX_DST/include LIBS += \ - $$PWD/build/android/$$ABI_PATH/lib/libcurl.a \ - $$PWD/../openssl/build/android/$$ABI_PATH/lib/libssl.a \ - $$PWD/../openssl/build/android/$$ABI_PATH/lib/libcrypto.a \ + $$PWD/build/android/$$CORE_BUILDS_PLATFORM_PREFIX_DST/libcurl.a \ + $$PWD/../openssl/build/android/$$CORE_BUILDS_PLATFORM_PREFIX_DST/lib/libssl.a \ + $$PWD/../openssl/build/android/$$CORE_BUILDS_PLATFORM_PREFIX_DST/lib/libcrypto.a \ } diff --git a/Common/3dParty/icu/icu.pri b/Common/3dParty/icu/icu.pri index d63020fa5c..c5ae929f8a 100644 --- a/Common/3dParty/icu/icu.pri +++ b/Common/3dParty/icu/icu.pri @@ -43,8 +43,7 @@ core_ios { core_android { INCLUDEPATH += $$PWD/android/build/include - ICU_LIBS_PATH = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "") - LIBS += $$PWD/android/build/$$ICU_LIBS_PATH/libicuuc.a - LIBS += $$PWD/android/build/$$ICU_LIBS_PATH/libicudata.a + LIBS += $$PWD/android/build/$$CORE_BUILDS_PLATFORM_PREFIX_DST/libicuuc.a + LIBS += $$PWD/android/build/$$CORE_BUILDS_PLATFORM_PREFIX_DST/libicudata.a } diff --git a/Common/3dParty/openssl/build-android-common.sh b/Common/3dParty/openssl/build-android-common.sh deleted file mode 100755 index d1b069c047..0000000000 --- a/Common/3dParty/openssl/build-android-common.sh +++ /dev/null @@ -1,220 +0,0 @@ -#!/bin/bash -# -# Copyright 2016 leenjewel -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -source ./build-common.sh - -export PLATFORM_TYPE="Android" -export ARCHS=("arm" "arm64" "x86" "x86_64") -export ABIS=("armeabi-v7a" "arm64-v8a" "x86" "x86_64") -export ABI_TRIPLES=("arm-linux-androideabi" "aarch64-linux-android" "i686-linux-android" "x86_64-linux-android") -export ANDROID_API=21 - -# for test -# export ARCHS=("x86_64") -# export ABIS=("x86_64") -# export ABI_TRIPLES=("x86_64-linux-android") - -if [[ -z ${ANDROID_NDK_ROOT} ]]; then - echo "ANDROID_NDK_ROOT not defined" - exit 1 -fi - -function get_toolchain() { - HOST_OS=$(uname -s) - case ${HOST_OS} in - Darwin) HOST_OS=darwin ;; - Linux) HOST_OS=linux ;; - FreeBsd) HOST_OS=freebsd ;; - CYGWIN* | *_NT-*) HOST_OS=cygwin ;; - esac - - HOST_ARCH=$(uname -m) - case ${HOST_ARCH} in - i?86) HOST_ARCH=x86 ;; - x86_64 | amd64) HOST_ARCH=x86_64 ;; - esac - - echo "${HOST_OS}-${HOST_ARCH}" -} - -function get_android_arch() { - local common_arch=$1 - case ${common_arch} in - arm) - echo "arm-v7a" - ;; - arm64) - echo "arm64-v8a" - ;; - x86) - echo "x86" - ;; - x86_64) - echo "x86-64" - ;; - esac -} - -function get_target_build() { - local arch=$1 - case ${arch} in - arm-v7a) - echo "arm" - ;; - arm64-v8a) - echo "arm64" - ;; - x86) - echo "x86" - ;; - x86-64) - echo "x86_64" - ;; - esac -} - -function get_build_host_internal() { - local arch=$1 - case ${arch} in - arm-v7a | arm-v7a-neon) - echo "arm-linux-androideabi" - ;; - arm64-v8a) - echo "aarch64-linux-android" - ;; - x86) - echo "i686-linux-android" - ;; - x86-64) - echo "x86_64-linux-android" - ;; - esac -} - -function android_get_build_host() { - local arch=$(get_android_arch $1) - get_build_host_internal $arch -} - -function get_clang_target_host() { - local arch=$1 - local api=$2 - case ${arch} in - arm-v7a | arm-v7a-neon) - echo "armv7a-linux-androideabi${api}" - ;; - arm64-v8a) - echo "aarch64-linux-android${api}" - ;; - x86) - echo "i686-linux-android${api}" - ;; - x86-64) - echo "x86_64-linux-android${api}" - ;; - esac -} - -function set_android_toolchain_bin() { - export PATH=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/$(get_toolchain)/bin:$PATH - echo PATH=$PATH -} - -function set_android_toolchain() { - local name=$1 - local arch=$(get_android_arch $2) - local api=$3 - local build_host=$(get_build_host_internal "$arch") - local clang_target_host=$(get_clang_target_host "$arch" "$api") - - export AR=${build_host}-ar - export CC=${clang_target_host}-clang - export CXX=${clang_target_host}-clang++ - export AS=${build_host}-as - export LD=${build_host}-ld - export RANLIB=${build_host}-ranlib - export STRIP=${build_host}-strip -} - -function get_common_includes() { - local toolchain=$(get_toolchain) - echo "-I${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/include -I${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/local/include" -} -function get_common_linked_libraries() { - local api=$1 - local arch=$2 - local toolchain=$(get_toolchain) - local build_host=$(get_build_host_internal "$arch") - echo "-L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/${build_host}/lib -L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/sysroot/usr/lib/${build_host}/${api} -L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${toolchain}/lib" -} - -function set_android_cpu_feature() { - local name=$1 - local arch=$(get_android_arch $2) - local api=$3 - case ${arch} in - arm-v7a | arm-v7a-neon) - export CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wl,--fix-cortex-a8 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - arm64-v8a) - export CFLAGS="-march=armv8-a -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=armv8-a -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - x86) - export CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=i686 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - x86-64) - export CFLAGS="-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -fno-integrated-as -fstrict-aliasing -fPIC -DANDROID -D__ANDROID_API__=${api} -Os -ffunction-sections -fdata-sections $(get_common_includes)" - export CXXFLAGS="-std=c++11 -Os -ffunction-sections -fdata-sections" - export LDFLAGS="-march=x86-64 -Wl,--gc-sections -Os -ffunction-sections -fdata-sections $(get_common_linked_libraries ${api} ${arch})" - export CPPFLAGS=${CFLAGS} - ;; - esac -} - -function android_printf_global_params() { - local arch=$1 - local abi=$2 - local abi_triple=$3 - local in_dir=$4 - local out_dir=$5 - echo -e "arch = $arch" - echo -e "abi = $abi" - echo -e "abi_triple = $abi_triple" - echo -e "PLATFORM_TYPE = $PLATFORM_TYPE" - echo -e "ANDROID_API = $ANDROID_API" - echo -e "in_dir = $in_dir" - echo -e "out_dir = $out_dir" - echo -e "AR = $AR" - echo -e "CC = $CC" - echo -e "CXX = $CXX" - echo -e "AS = $AS" - echo -e "LD = $LD" - echo -e "RANLIB = $RANLIB" - echo -e "STRIP = $STRIP" - echo -e "CFLAGS = $CFLAGS" - echo -e "CXXFLAGS = $CXXFLAGS" - echo -e "LDFLAGS = $LDFLAGS" - echo -e "CPPFLAGS = $CPPFLAGS" -} diff --git a/Common/3dParty/openssl/build-android-openssl.sh b/Common/3dParty/openssl/build-android-openssl.sh deleted file mode 100755 index e710b6fb6e..0000000000 --- a/Common/3dParty/openssl/build-android-openssl.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/bash -# -# Copyright 2016 leenjewel -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# # read -n1 -p "Press any key to continue..." - -set -u - -source ./build-android-common.sh - -init_log_color - -TOOLS_ROOT=$(pwd) - -SOURCE="$0" -while [ -h "$SOURCE" ]; do - DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" - SOURCE="$(readlink "$SOURCE")" - [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" -done -pwd_path="$(cd -P "$(dirname "$SOURCE")" && pwd)" - -echo pwd_path=${pwd_path} -echo TOOLS_ROOT=${TOOLS_ROOT} - -# openssl-1.1.0f has a configure bug -# openssl-1.1.1d has fix configure bug -LIB_VERSION="OpenSSL_1_1_1i" -LIB_NAME="openssl-1.1.1i" - -echo "https://www.openssl.org/source/${LIB_NAME}.tar.gz" - -# https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz -# https://github.com/openssl/openssl/archive/OpenSSL_1_1_1f.tar.gz -[ -f "${LIB_NAME}.tar.gz" ] || curl -L -o ${LIB_NAME}.tar.gz https://www.openssl.org/source/${LIB_NAME}.tar.gz -s -[ -f "${LIB_NAME}.tar.gz" ] || log_error "openssl download error!" - -set_android_toolchain_bin - -function configure_make() { - - ARCH=$1 - ABI=$2 - ABI_TRIPLE=$3 - - log_info "configure $ABI start..." - - if [ -d "${LIB_NAME}" ]; then - rm -fr "${LIB_NAME}" - fi - tar xfz "${LIB_NAME}.tar.gz" - pushd . - cd "${LIB_NAME}" - - PREFIX_DIR="${pwd_path}/build/android/${ABI}" - if [ -d "${PREFIX_DIR}" ]; then - rm -fr "${PREFIX_DIR}" - fi - mkdir -p "${PREFIX_DIR}" - - OUTPUT_ROOT=${TOOLS_ROOT}/build/android/${ABI} - mkdir -p ${OUTPUT_ROOT}/log - - set_android_toolchain "openssl" "${ARCH}" "${ANDROID_API}" - set_android_cpu_feature "openssl" "${ARCH}" "${ANDROID_API}" - - export ANDROID_NDK_HOME=${ANDROID_NDK_ROOT} - echo ANDROID_NDK_HOME=${ANDROID_NDK_HOME} - - android_printf_global_params "$ARCH" "$ABI" "$ABI_TRIPLE" "$PREFIX_DIR" "$OUTPUT_ROOT" - - if [[ "${ARCH}" == "x86_64" ]]; then - - ./Configure android-x86_64 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm - - elif [[ "${ARCH}" == "x86" ]]; then - - ./Configure android-x86 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm - - elif [[ "${ARCH}" == "arm" ]]; then - - ./Configure android-arm --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm - - elif [[ "${ARCH}" == "arm64" ]]; then - - ./Configure android-arm64 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm - - else - log_error "not support" && exit 1 - fi - - log_info "make $ABI start..." - - sed -ie 's/LIB_CFLAGS=/LIB_CFLAGS=-fvisibility=hidden /g' ./Makefile - sed -ie 's/LIB_CXXFLAGS=/LIB_CXXFLAGS=-fvisibility=hidden /g' ./Makefile - - make clean >"${OUTPUT_ROOT}/log/${ABI}.log" - if make -j$(get_cpu_count) >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1; then - make install_sw >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - make install_ssldirs >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1 - fi - - popd -} - -log_info "${PLATFORM_TYPE} ${LIB_NAME} start..." - -for ((i = 0; i < ${#ARCHS[@]}; i++)); do - if [[ $# -eq 0 || "$1" == "${ARCHS[i]}" ]]; then - configure_make "${ARCHS[i]}" "${ABIS[i]}" "${ABI_TRIPLES[i]}" - fi -done - -log_info "${PLATFORM_TYPE} ${LIB_NAME} end..." diff --git a/Common/3dParty/openssl/openssl.pri b/Common/3dParty/openssl/openssl.pri index 861eb4d343..cb565d4621 100644 --- a/Common/3dParty/openssl/openssl.pri +++ b/Common/3dParty/openssl/openssl.pri @@ -11,16 +11,7 @@ open_ssl_common { OPENSSL_LIBS_DIRECTORY = $$PWD/build/$$OPEN_SSL_PLATFORM/lib core_android { - - OPENSSL_ABI_PATH = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "") - contains(OPENSSL_ABI_PATH, "armv7" ) { - OPENSSL_ABI_PATH = $$replace(OPENSSL_ABI_PATH, "armv7", "armeabi-v7a") - } - contains(OPENSSL_ABI_PATH, "arm64_v8a" ) { - OPENSSL_ABI_PATH = $$replace(OPENSSL_ABI_PATH, "arm64_v8a", "arm64-v8a") - } - - OPENSSL_LIBS_DIRECTORY = $$PWD/build/android/$$OPENSSL_ABI_PATH/lib + OPENSSL_LIBS_DIRECTORY = $$PWD/build/android/$$CORE_BUILDS_PLATFORM_PREFIX_DST/lib } core_ios { diff --git a/Common/3dParty/v8/android/howto.txt b/Common/3dParty/v8/android/howto.txt new file mode 100644 index 0000000000..099db5a4a7 --- /dev/null +++ b/Common/3dParty/v8/android/howto.txt @@ -0,0 +1,46 @@ +Fixes for build 12.1 version for android with use_custom_libcxx: + +1) src/build/config/BUILD.gn + +group("common_deps") { ... } + +if (use_custom_libcxx) { + public_deps += [ "//buildtools/third_party/libc++" ] +} + +=> + +if (use_custom_libcxx) { + public_deps += [ "//buildtools/third_party/libc++" ] +} else { + # ONLYOFFICE-HACK + public_deps += [ "//buildtools/third_party/libunwind" ] +} + +2) src/buildtools/third_party/libunbind/BUILD.gn + +visibility = [ "//buildtools/third_party/libc++abi" ] + +=> +visibility = [ "//buildtools/third_party/libc++abi" ] +# ONLYOFFICE-HACK +visibility += ["//build/config:common_deps"] + +3) src/zone/zone.h + +all records: +static_assert(alignof(T) <= kAlignmentInBytes); + +=> + +// ONLYOFFICE-HACK +//static_assert(alignof(T) <= kAlignmentInBytes); + +Fixes for link static library WITH custom libc++: + +v8.pri: +v8_custom_libcxx { + LIBS += $$CORE_V8_PATH_LIBS/third_party/libc++/libc++/*.o + LIBS += $$CORE_V8_PATH_LIBS/third_party/libc++abi/libc++abi/*.o + LIBS += $$CORE_V8_PATH_LIBS/third_party/libunwind/libunwind/*.o +} diff --git a/Common/base.pri b/Common/base.pri index 59a3bb0e2a..eb6a1ec793 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -19,6 +19,11 @@ isEmpty(PUBLISHER_NAME){ PUBLISHER_NAME = $$cat(copyright.txt) } +DEST_MAKEFILE_NAME = $$(DEST_MAKEFILE_NAME) +!isEmpty(DEST_MAKEFILE_NAME){ + MAKEFILE = $${DEST_MAKEFILE_NAME} +} + APPLICATION_NAME_DEFAULT = $$(APPLICATION_NAME_DEFAULT) !isEmpty(APPLICATION_NAME_DEFAULT){ DEFINES += "APPLICATION_NAME_DEFAULT=$${APPLICATION_NAME_DEFAULT}" @@ -366,6 +371,7 @@ core_android { CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "-", "_") CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "armeabi_v7", "armv7") CORE_BUILDS_PLATFORM_PREFIX = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "armv7a", "armv7") + CORE_BUILDS_PLATFORM_PREFIX_DST = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "") !isEmpty(OO_DESTDIR_BUILD_OVERRIDE) { isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_arm64_v8a):OO_DESTDIR_BUILD_OVERRIDE=$$OO_DESTDIR_BUILD_OVERRIDE/arm64-v8a diff --git a/DesktopEditor/common/Directory.cpp b/DesktopEditor/common/Directory.cpp index 338a52f75a..ad4d9f8bbe 100644 --- a/DesktopEditor/common/Directory.cpp +++ b/DesktopEditor/common/Directory.cpp @@ -60,6 +60,10 @@ namespace NSDirectory #if !defined(_WIN32) && !defined (_WIN64) static bool is_directory_exist(char* dir) { +#ifdef __ANDROID__ + if (0 == strcmp("/storage/emulated", dir)) + return true; +#endif struct stat st; bool bRes = (0 == stat(dir, &st)) && S_ISDIR(st.st_mode); return bRes; diff --git a/DesktopEditor/cximage/raw/libdcr.h b/DesktopEditor/cximage/raw/libdcr.h index 0b828454aa..6d74732a87 100644 --- a/DesktopEditor/cximage/raw/libdcr.h +++ b/DesktopEditor/cximage/raw/libdcr.h @@ -58,7 +58,7 @@ #ifdef __ANDROID__ #include -#if __ANDROID_API__ < 28 +#if __ANDROID_API__ < 22 static void swab(const char* __src, char* __dst, ssize_t __byte_count) { ssize_t len = __byte_count; diff --git a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h index 01c6d1bc37..a6b5e332c3 100644 --- a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h +++ b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h @@ -52,8 +52,18 @@ v8::Local CreateV8String(v8::Isolate* i, const char* str, const int& len = -1); v8::Local CreateV8String(v8::Isolate* i, const std::string& str); +#ifdef __ANDROID__ + +#ifdef _DEBUG +#define ANDROID_LOGS +#endif + #ifdef ANDROID_LOGS -#include +#include +#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, "js", __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, "js", __VA_ARGS__) +#endif + #endif #ifdef V8_OS_XP @@ -144,7 +154,11 @@ public: #endif v8::V8::Dispose(); + #ifdef V8_VERSION_121_PLUS + v8::V8::DisposePlatform(); + #else v8::V8::ShutdownPlatform(); + #endif if (m_pAllocator) delete m_pAllocator; @@ -483,7 +497,7 @@ namespace NSJSBase LOGGER_START - v8::Local _name = CreateV8String(CV8Worker::GetCurrent(), name); + v8::Local _name = CreateV8String(CV8Worker::GetCurrent(), name); v8::Handle _func = value->Get(V8ContextFirstArg _name).ToLocalChecked(); CJSValueV8* _return = new CJSValueV8(); @@ -514,7 +528,7 @@ namespace NSJSBase LOGGER_LAP_NAME(name) - JSSmart _ret = _return; + JSSmart _ret = _return; return _ret; } @@ -804,10 +818,8 @@ namespace NSJSBase #endif #ifdef ANDROID_LOGS - LOGE("NSJSBase::CV8TryCatch::Check() - error:"); - LOGE(std::to_string(nLineNumber).c_str()); - LOGE(strCode.c_str()); - LOGE(strException.c_str()); + std::string sLog = "[JS (" + std::to_string(nLineNumber) + ")]: " + strCode + ", " + strException; + LOGE(sLog.c_str()); #endif return true; } diff --git a/DesktopEditor/graphics/Timer.cpp b/DesktopEditor/graphics/Timer.cpp index 832c591009..a81bbdad8c 100644 --- a/DesktopEditor/graphics/Timer.cpp +++ b/DesktopEditor/graphics/Timer.cpp @@ -39,8 +39,8 @@ namespace NSTimers { - // CLOCK_MONOTONIC defined ONLY since macOS 10.12!!! (crash on earlier version) - DWORD GetTickCount() + // CLOCK_MONOTONIC defined ONLY since macOS 10.12!!! (crash on earlier version) + DWORD GetTickCount() { #if defined(_WIN32) || defined(_WIN64) || defined(_WIN32_WCE) return ::GetTickCount(); @@ -49,55 +49,55 @@ namespace NSTimers struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * 1000 + (DWORD)(ts.tv_nsec / 1000000)); + return (ts.tv_sec * 1000 + (DWORD)(ts.tv_nsec / 1000000)); #else - //uint64_t nano = mach_absolute_time(); - //return nano / 1000000; - return getUptimeInMilliseconds(); + //uint64_t nano = mach_absolute_time(); + //return nano / 1000000; + return getUptimeInMilliseconds(); #endif #endif } - CTimer::CTimer() : NSThreads::CBaseThread() - { - m_dwInterval = 40; - m_bIsCOMNeed = FALSE; - } - CTimer::~CTimer() - { - } + CTimer::CTimer() : NSThreads::CBaseThread() + { + m_dwInterval = 40; + m_bIsCOMNeed = FALSE; + } + CTimer::~CTimer() + { + } - void CTimer::SetInterval(const DWORD& dwInterval) { m_dwInterval = dwInterval; } - void CTimer::SetCOMNeed(const INT& bIsCOM) { m_bIsCOMNeed = bIsCOM; } + void CTimer::SetInterval(const DWORD& dwInterval) { m_dwInterval = dwInterval; } + void CTimer::SetCOMNeed(const INT& bIsCOM) { m_bIsCOMNeed = bIsCOM; } - DWORD CTimer::ThreadProc() - { + DWORD CTimer::ThreadProc() + { #ifdef _CAN_USE_COM_THREADS - if (m_bIsCOMNeed) - CoInitialize(NULL); + if (m_bIsCOMNeed) + CoInitialize(NULL); #endif - DWORD m_startTime, m_curTime; - m_startTime = NSTimers::GetTickCount(); + DWORD m_startTime, m_curTime; + m_startTime = NSTimers::GetTickCount(); - while (m_bRunThread) - { - m_curTime = NSTimers::GetTickCount(); - while (m_curTime - m_startTime < m_dwInterval) - { - NSThreads::Sleep(10); - if (!m_bRunThread) - break; - m_curTime = NSTimers::GetTickCount(); - } + while (m_bRunThread) + { + m_curTime = NSTimers::GetTickCount(); + while (m_curTime - m_startTime < m_dwInterval) + { + NSThreads::Sleep(10); + if (!m_bRunThread) + break; + m_curTime = NSTimers::GetTickCount(); + } - m_startTime = NSTimers::GetTickCount(); - OnTimer(); - } + m_startTime = NSTimers::GetTickCount(); + OnTimer(); + } #ifdef _CAN_USE_COM_THREADS - if (m_bIsCOMNeed) - CoUninitialize(); + if (m_bIsCOMNeed) + CoUninitialize(); #endif - return 0; - } + return 0; + } } diff --git a/DesktopEditor/graphics/Timer.h b/DesktopEditor/graphics/Timer.h index 5e21823599..62ef2ba626 100644 --- a/DesktopEditor/graphics/Timer.h +++ b/DesktopEditor/graphics/Timer.h @@ -41,51 +41,51 @@ namespace NSTimers { - KERNEL_DECL DWORD GetTickCount(); + KERNEL_DECL DWORD GetTickCount(); - class KERNEL_DECL CTimer : public NSThreads::CBaseThread + class KERNEL_DECL CTimer : public NSThreads::CBaseThread { private: DWORD m_dwInterval; - INT m_bIsCOMNeed; + INT m_bIsCOMNeed; public: - CTimer(); - virtual ~CTimer(); + CTimer(); + virtual ~CTimer(); - void SetInterval(const DWORD& dwInterval); - void SetCOMNeed(const INT& bIsCOM); + void SetInterval(const DWORD& dwInterval); + void SetCOMNeed(const INT& bIsCOM); protected: - virtual DWORD ThreadProc(); + virtual DWORD ThreadProc(); virtual void OnTimer() = 0; }; - - inline static unsigned long getUptimeInMilliseconds() - { + + inline static unsigned long getUptimeInMilliseconds() + { #if defined(_IOS) || defined(_MAC) - const int64_t kOneMillion = 1000 * 1000; - static mach_timebase_info_data_t s_timebase_info; - - if (s_timebase_info.denom == 0) { - (void) mach_timebase_info(&s_timebase_info); - } - - // mach_absolute_time() returns billionth of seconds, - // so divide by one million to get milliseconds - return (unsigned long)((mach_absolute_time() * s_timebase_info.numer) / (kOneMillion * s_timebase_info.denom)); + const int64_t kOneMillion = 1000 * 1000; + static mach_timebase_info_data_t s_timebase_info; + + if (s_timebase_info.denom == 0) { + (void) mach_timebase_info(&s_timebase_info); + } + + // mach_absolute_time() returns billionth of seconds, + // so divide by one million to get milliseconds + return (unsigned long)((mach_absolute_time() * s_timebase_info.numer) / (kOneMillion * s_timebase_info.denom)); #endif - + #ifdef __ANDROID__ - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - - return (ts.tv_sec * 1000 + (DWORD)(ts.tv_nsec / 1000000)); + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + + return (ts.tv_sec * 1000 + (DWORD)(ts.tv_nsec / 1000000)); #endif - - return 0; - } + + return 0; + } } #endif diff --git a/DesktopEditor/graphics/pro/raster.pri b/DesktopEditor/graphics/pro/raster.pri index feaaad1e2d..f5e54810fc 100644 --- a/DesktopEditor/graphics/pro/raster.pri +++ b/DesktopEditor/graphics/pro/raster.pri @@ -28,6 +28,10 @@ core_windows { LIBS += -lUser32 } +core_android { + QMAKE_CFLAGS += -Wno-incompatible-function-pointer-types +} + INCLUDEPATH += \ $$LIB_GRAPHICS_PRI_PATH/cximage/jasper/include \ $$LIB_GRAPHICS_PRI_PATH/cximage/jpeg \ diff --git a/X2tConverter/build/Android/libx2t/src/main/cpp/jni/objects/JniBaseObjects.h b/X2tConverter/build/Android/libx2t/src/main/cpp/jni/objects/JniBaseObjects.h index 4522a3f1fc..ba56a04086 100644 --- a/X2tConverter/build/Android/libx2t/src/main/cpp/jni/objects/JniBaseObjects.h +++ b/X2tConverter/build/Android/libx2t/src/main/cpp/jni/objects/JniBaseObjects.h @@ -3,10 +3,9 @@ #include #include -#include -#include #include #include +#include "../../../../../../../../../DesktopEditor/common/File.h" #define DELETE_LOCAL_REF(ENV, REFERENCE) \ if (REFERENCE != NULL && !ENV->IsSameObject(REFERENCE, NULL)) { \ @@ -140,8 +139,8 @@ class JniBaseObjects { static std::string jstringToString(JNIEnv* env, jstring jstr) { jboolean isCopy; const char * charPath = env->GetStringUTFChars(jstr, &isCopy); - const int size = env->GetStringLength(jstr); - const std::string str(charPath, charPath + size); + const int size = env->GetStringUTFLength(jstr); + const std::string str(charPath, (size_t)size); env->ReleaseStringUTFChars(jstr, charPath); return str; } @@ -149,23 +148,28 @@ class JniBaseObjects { static std::string* jstringToPString(JNIEnv* env, jstring jstr) { jboolean isCopy; const char * charPath = env->GetStringUTFChars(jstr, &isCopy); - const int size = env->GetStringLength(jstr); - std::string* pStr = new std::string(charPath, charPath + size); + const int size = env->GetStringUTFLength(jstr); + std::string* pStr = new std::string(charPath, (size_t)size); env->ReleaseStringUTFChars(jstr, charPath); return pStr; } static std::wstring jstringToWString(JNIEnv* env, jstring jstr) { jboolean isCopy; - const char * cstr = env->GetStringUTFChars(jstr, &isCopy); - const int size = env->GetStringLength(jstr); - const std::wstring wstr = charsToWString(cstr); - env->ReleaseStringUTFChars(jstr, cstr); - return wstr; + const char * charPath = env->GetStringUTFChars(jstr, &isCopy); + const int size = env->GetStringUTFLength(jstr); + std::wstring pStr = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8((BYTE*)charPath, (LONG)size); + env->ReleaseStringUTFChars(jstr, charPath); + return pStr; } - static jstring wStringToJString(JNIEnv* env, const std::wstring wstr) { - return env->NewStringUTF(wStringToString(wstr).c_str()); + static jstring wStringToJString(JNIEnv* env, const std::wstring& wstr) { + std::string sTmp = U_TO_UTF8(wstr); + return stringToJString(env, sTmp); + } + + static jstring stringToJString(JNIEnv* env, const std::string& str) { + return env->NewStringUTF(str.c_str()); } static jstring charToJString(JNIEnv* env, const char * str) { @@ -184,24 +188,6 @@ class JniBaseObjects { return jArray; } - static std::wstring charsToWString(const char * str) { - using convert_typeX = std::codecvt_utf8; - std::wstring_convert converterX; - return converterX.from_bytes(str); - } - - static std::wstring stringToWString(const std::string & str) { - using convert_typeX = std::codecvt_utf8; - std::wstring_convert converterX; - return converterX.from_bytes(str); - } - - static std::string wStringToString(const std::wstring & str) { - using convert_typeX = std::codecvt_utf8; - std::wstring_convert converterX; - return converterX.to_bytes(str); - } - static jobjectArray wStringToObjectArray(JNIEnv *jEnv, std::wstring *data, int length) { jobjectArray jObjectArray = NULL; jsize len = length; diff --git a/X2tConverter/src/main.cpp b/X2tConverter/src/main.cpp index 6b19ec11c7..c615cb5cdb 100644 --- a/X2tConverter/src/main.cpp +++ b/X2tConverter/src/main.cpp @@ -98,7 +98,7 @@ int wmain_lib(int argc, wchar_t *argv[]) if (sMemoryLimit.empty()) sMemoryLimit = NSSystemUtils::gc_EnvMemoryLimitDefault; -#if !defined(_DEBUG) +#if !defined(_DEBUG) && !defined(__ANDROID__) && !defined(_IOS) long long nMemoryLimit; if (NSStringExt::FromHumanReadableByteCount(sMemoryLimit, nMemoryLimit) && nMemoryLimit > 0) limit_memory((size_t)nMemoryLimit);