Merge pull request #10148 from accumulator/android_16kb_page_alignment
android: 16kb alignment updates
This commit is contained in:
@@ -25,30 +25,48 @@ ENV LANG="en_US.UTF-8" \
|
|||||||
RUN apt -y update -qq \
|
RUN apt -y update -qq \
|
||||||
&& apt -y install -qq --no-install-recommends --allow-downgrades \
|
&& apt -y install -qq --no-install-recommends --allow-downgrades \
|
||||||
curl \
|
curl \
|
||||||
|
wget \
|
||||||
unzip \
|
unzip \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
|
python3 \
|
||||||
&& apt -y autoremove
|
&& apt -y autoremove
|
||||||
|
|
||||||
|
|
||||||
ENV ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
|
ENV ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
|
||||||
ENV ANDROID_NDK_VERSION="23b"
|
#ENV ANDROID_NDK_VERSION="23b"
|
||||||
ENV ANDROID_NDK_HASH="c6e97f9c8cfe5b7be0a9e6c15af8e7a179475b7ded23e2d1c1fa0945d6fb4382"
|
#ENV ANDROID_NDK_HASH="c6e97f9c8cfe5b7be0a9e6c15af8e7a179475b7ded23e2d1c1fa0945d6fb4382"
|
||||||
|
#ENV ANDROID_NDK_VERSION="27d"
|
||||||
|
#ENV ANDROID_NDK_HASH="601246087a682d1944e1e16dd85bc6e49560fe8b6d61255be2829178c8ed15d9"
|
||||||
|
ENV ANDROID_NDK_VERSION="23d-canary"
|
||||||
|
ENV ANDROID_NDK_HASH="6944ffc20ab018ff4ef6a403048d0a99d50a0630c3eae690c8f803c452f46f3e"
|
||||||
ENV ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"
|
ENV ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"
|
||||||
|
|
||||||
# get the latest version from https://developer.android.com/ndk/downloads/index.html
|
# get the latest version from https://developer.android.com/ndk/downloads/index.html
|
||||||
ENV ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux.zip"
|
ENV ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux.zip"
|
||||||
ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
|
ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
|
||||||
|
|
||||||
# download and install Android NDK
|
# below disabled in favor of CI build download
|
||||||
RUN curl --location --progress-bar \
|
|
||||||
"${ANDROID_NDK_DL_URL}" \
|
|
||||||
--output "${ANDROID_NDK_ARCHIVE}" \
|
|
||||||
&& echo "${ANDROID_NDK_HASH} ${ANDROID_NDK_ARCHIVE}" | sha256sum -c - \
|
|
||||||
&& mkdir --parents "${ANDROID_NDK_HOME_V}" \
|
|
||||||
&& unzip -q "${ANDROID_NDK_ARCHIVE}" -d "${ANDROID_HOME}" \
|
|
||||||
&& ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
|
|
||||||
&& rm -rf "${ANDROID_NDK_ARCHIVE}"
|
|
||||||
|
|
||||||
|
# download and install Android NDK
|
||||||
|
#RUN curl --location --progress-bar \
|
||||||
|
# "${ANDROID_NDK_DL_URL}" \
|
||||||
|
# --output "${ANDROID_NDK_ARCHIVE}" \
|
||||||
|
# && echo "${ANDROID_NDK_HASH} ${ANDROID_NDK_ARCHIVE}" | sha256sum -c - \
|
||||||
|
# && mkdir --parents "${ANDROID_NDK_HOME_V}" \
|
||||||
|
# && unzip -q "${ANDROID_NDK_ARCHIVE}" -d "${ANDROID_HOME}" \
|
||||||
|
# && ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
|
||||||
|
# && rm -rf "${ANDROID_NDK_ARCHIVE}"
|
||||||
|
|
||||||
|
# temporary build using NDK from CI
|
||||||
|
ENV CI_REV="12186248"
|
||||||
|
ENV CI_NDK_FILE="android-ndk-${CI_REV}-linux-x86_64.zip"
|
||||||
|
COPY contrib/android/dl-ndk-ci.sh /tmp/
|
||||||
|
RUN /tmp/dl-ndk-ci.sh https://ci.android.com/builds/submitted/${CI_REV}/linux/latest/${CI_NDK_FILE} \
|
||||||
|
&& echo "${ANDROID_NDK_HASH} android-ndk-ci-linux-x86_64.zip" | sha256sum -c - \
|
||||||
|
&& mkdir --parents "${ANDROID_NDK_HOME_V}" \
|
||||||
|
&& unzip -q "android-ndk-ci-linux-x86_64.zip" -d "${ANDROID_HOME}" \
|
||||||
|
&& ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
|
||||||
|
&& rm -rf "android-ndk-ci-linux-x86_64.zip"
|
||||||
|
|
||||||
ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
|
ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
|
||||||
|
|
||||||
@@ -190,8 +208,8 @@ RUN cd /opt \
|
|||||||
&& /opt/venv/bin/python3 -m pip install --no-build-isolation --no-dependencies -e .
|
&& /opt/venv/bin/python3 -m pip install --no-build-isolation --no-dependencies -e .
|
||||||
|
|
||||||
# install python-for-android
|
# install python-for-android
|
||||||
ENV P4A_CHECKOUT_COMMIT="32a05cdedd41f0f569e9126fdfce23069c36fd9a"
|
ENV P4A_CHECKOUT_COMMIT="003451604321deb1f10d879b63450ec76db4a758"
|
||||||
# ^ from branch electrum_20240930 (note: careful with force-pushing! see #8162)
|
# ^ from branch electrum_20240930_android_16kb_page_alignment (note: careful with force-pushing! see #8162)
|
||||||
RUN cd /opt \
|
RUN cd /opt \
|
||||||
&& git clone https://github.com/spesmilo/python-for-android \
|
&& git clone https://github.com/spesmilo/python-for-android \
|
||||||
&& cd python-for-android \
|
&& cd python-for-android \
|
||||||
|
|||||||
9
contrib/android/barcode_16kb.patch
Normal file
9
contrib/android/barcode_16kb.patch
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
diff --git a/wrappers/aar/zxingcpp/src/main/cpp/CMakeLists.txt b/wrappers/aar/zxingcpp/src/main/cpp/CMakeLists.txt
|
||||||
|
index 11332e48..78f514f1 100644
|
||||||
|
--- a/wrappers/aar/zxingcpp/src/main/cpp/CMakeLists.txt
|
||||||
|
+++ b/wrappers/aar/zxingcpp/src/main/cpp/CMakeLists.txt
|
||||||
|
@@ -13,3 +13,4 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../core ZXing EXCLUD
|
||||||
|
add_library(zxingcpp_android SHARED ZxingCpp.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(zxingcpp_android PRIVATE ZXing::ZXing jnigraphics)
|
||||||
|
+target_link_options(zxingcpp_android PRIVATE "-Wl,-z,max-page-size=16384")
|
||||||
8
contrib/android/dl-ndk-ci.sh
Executable file
8
contrib/android/dl-ndk-ci.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "missing url"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo $1
|
||||||
|
|
||||||
|
curl $1 | grep "var JSVariables" | python3 -c "import sys; line=sys.stdin.read(); line=line[line.find('{'):-2]; import json; j=json.loads(line); print(j['artifactUrl'])" | wget -i - -O android-ndk-ci-linux-x86_64.zip
|
||||||
@@ -65,6 +65,7 @@ else
|
|||||||
info "Building zxing-cpp for $ZXING_CPP_BUILD_ID..."
|
info "Building zxing-cpp for $ZXING_CPP_BUILD_ID..."
|
||||||
ZXING_CPP_DIR="$BUILDDIR/zxing-cpp"
|
ZXING_CPP_DIR="$BUILDDIR/zxing-cpp"
|
||||||
clone_or_update_repo "$ZXING_CPP_REPO" "$ZXING_CPP_COMMIT_HASH" "$ZXING_CPP_DIR"
|
clone_or_update_repo "$ZXING_CPP_REPO" "$ZXING_CPP_COMMIT_HASH" "$ZXING_CPP_DIR"
|
||||||
|
apply_patch "${CONTRIB_ANDROID}/barcode_16kb.patch" "$ZXING_CPP_DIR"
|
||||||
cd "$ZXING_CPP_DIR/wrappers/aar"
|
cd "$ZXING_CPP_DIR/wrappers/aar"
|
||||||
chmod +x gradlew
|
chmod +x gradlew
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,24 @@ clone_or_update_repo() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apply_patch() {
|
||||||
|
local patch=$1
|
||||||
|
local path=$2
|
||||||
|
|
||||||
|
if [ -z "$patch" ] || [ -z "$path" ]; then
|
||||||
|
fail "apply_patch: invalid arguments: patch='$patch', path='$path'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$path" ]; then
|
||||||
|
info "Patching: $patch"
|
||||||
|
cd "$path"
|
||||||
|
patch -p1 <"$patch"
|
||||||
|
cd -
|
||||||
|
else
|
||||||
|
fail "apply_patch: path='$path' not found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/templates/header.sh
|
# https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/templates/header.sh
|
||||||
function retry() {
|
function retry() {
|
||||||
local result=0
|
local result=0
|
||||||
|
|||||||
Reference in New Issue
Block a user