initial commit
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
ARG DOCKER_PREFIX=wapmobil/
|
||||
FROM ${DOCKER_PREFIX}debian-base
|
||||
|
||||
ARG JOBS_COUNT=4
|
||||
ARG QT_DOWNLOAD_SERVER=shstk.ru/files
|
||||
|
||||
ENV CUR_SODIUM_VERSION=1.0.18
|
||||
ENV CUR_FFTW_VERSION=3.3.8
|
||||
ENV CUR_QT_VERSION_MAJOR=5.14
|
||||
ENV CUR_QT_VERSION=5.14.1
|
||||
|
||||
|
||||
# dev soft for our SDK
|
||||
RUN mkdir -p /usr/share/man/man1 && apt-get update \
|
||||
&& apt-get install -y cpio libglu1-mesa-dev libgl1-mesa-dev libwayland-dev libncurses-dev flex bison gperf \
|
||||
python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools \
|
||||
ccache libffi-dev libssl-dev doxygen graphviz libx11-dev libxkbcommon-dev libpkgconfig-perl libfreetype6-dev libfontconfig1-dev \
|
||||
lzma-dev liblzma-dev libxml2-dev libbz2-dev libmpc-dev libmpfr-dev libgmp-dev libicu-dev libusb-1.0-0-dev libreadline-dev \
|
||||
build-essential android-sdk openjdk-11-jdk && rm -rf /var/cache/apt/archives/*
|
||||
|
||||
|
||||
# Android SDK and NDK
|
||||
WORKDIR /soft/android
|
||||
|
||||
ENV ANDROID_HOME=/usr/lib/android-sdk
|
||||
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle
|
||||
ENV ANDROID_TOOLCHAIN=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake
|
||||
ENV NDK_PLATFORM="android-21"
|
||||
|
||||
RUN wget -nv -O commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip?hl=ru \
|
||||
&& unzip -o commandlinetools.zip -d ${ANDROID_HOME} && rm -f commandlinetools.zip
|
||||
RUN yes | ${ANDROID_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses
|
||||
RUN ${ANDROID_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --update
|
||||
RUN ${ANDROID_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "platforms;android-21" "platforms;android-29" "platforms;android-30" "platforms;android-31" "platforms;android-32" "platforms;android-33" "platforms;android-34" "platforms;android-35" "ndk-bundle" "build-tools;28.0.3" "platform-tools" "tools"
|
||||
|
||||
COPY android.toolchain.cmake.add /soft/android/
|
||||
RUN cat /soft/android/android.toolchain.cmake.add >> ${ANDROID_TOOLCHAIN}
|
||||
RUN mkdir -p /soft/android/armeabi-v7a && mkdir -p /soft/android/arm64-v8a && mkdir -p /soft/android/x86 && mkdir -p /soft/android/x86_64
|
||||
|
||||
|
||||
# sodium
|
||||
WORKDIR /soft
|
||||
RUN curl -s https://download.libsodium.org/libsodium/releases/libsodium-${CUR_SODIUM_VERSION}.tar.gz \
|
||||
-o libsodium-${CUR_SODIUM_VERSION}.tar.gz \
|
||||
&& tar -xf libsodium-${CUR_SODIUM_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f libsodium-${CUR_SODIUM_VERSION}.tar.gz
|
||||
WORKDIR /soft/libsodium-${CUR_SODIUM_VERSION}
|
||||
|
||||
RUN TARGET_ARCH=armv7-a \
|
||||
CFLAGS="-O3 -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -marm -march=armv7-a" \
|
||||
ARCH=arm \
|
||||
HOST_COMPILER=arm-linux-androideabi \
|
||||
dist-build/android-build.sh && \
|
||||
cp -rfv /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-armv7-a/* /soft/android/armeabi-v7a/ && \
|
||||
rm -rf /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-* && \
|
||||
make distclean && rm -rf ./android-toolchain*
|
||||
RUN TARGET_ARCH=armv8-a \
|
||||
CFLAGS="-O3 -march=armv8-a" \
|
||||
ARCH=arm64 \
|
||||
HOST_COMPILER=aarch64-linux-android \
|
||||
dist-build/android-build.sh && \
|
||||
cp -rfv /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-armv8-a/* /soft/android/arm64-v8a/ && \
|
||||
rm -rf /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-* && \
|
||||
make distclean && rm -rf ./android-toolchain*
|
||||
RUN TARGET_ARCH=i686 \
|
||||
CFLAGS="-O3 -march=i686" \
|
||||
ARCH=x86 \
|
||||
HOST_COMPILER=i686-linux-android \
|
||||
dist-build/android-build.sh && \
|
||||
cp -rfv /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-i686/* /soft/android/x86/ && \
|
||||
rm -rf /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-* && \
|
||||
make distclean && rm -rf ./android-toolchain*
|
||||
RUN TARGET_ARCH=westmere \
|
||||
CFLAGS="-O3 -march=westmere" \
|
||||
ARCH=x86_64 \
|
||||
HOST_COMPILER=x86_64-linux-android \
|
||||
dist-build/android-build.sh && \
|
||||
cp -rfv /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-westmere/* /soft/android/x86_64/ && \
|
||||
rm -rf /soft/libsodium-${CUR_SODIUM_VERSION}/libsodium-android-* && \
|
||||
make distclean && rm -rf ./android-toolchain*
|
||||
WORKDIR /soft
|
||||
RUN rm -rf /soft/libsodium-*
|
||||
|
||||
|
||||
# fftw3
|
||||
WORKDIR /soft
|
||||
RUN wget -nv http://www.fftw.org/fftw-${CUR_FFTW_VERSION}.tar.gz \
|
||||
&& tar -xf fftw-${CUR_FFTW_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f fftw-${CUR_FFTW_VERSION}.tar.gz
|
||||
WORKDIR /soft/fftw-${CUR_FFTW_VERSION}_build
|
||||
|
||||
ENV _CUR_ABI=armeabi-v7a
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=1 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=1 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
|
||||
ENV _CUR_ABI=arm64-v8a
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=1 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=1 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
|
||||
ENV _CUR_ABI=x86
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=1 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=1 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
|
||||
ENV _CUR_ABI=x86_64
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=1 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/soft/android/${_CUR_ABI} -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=1 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${_CUR_ABI} /soft/fftw-${CUR_FFTW_VERSION} && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
|
||||
|
||||
# Qt
|
||||
WORKDIR /soft/android
|
||||
|
||||
RUN wget -nv http://${QT_DOWNLOAD_SERVER}/qt-android-${CUR_QT_VERSION}.zip \
|
||||
&& unzip -o qt-android-${CUR_QT_VERSION}.zip -d /soft/android/qt \
|
||||
&& rm -f qt-android-${CUR_QT_VERSION}.zip
|
||||
WORKDIR /soft/android/qt/lib/cmake/Qt5
|
||||
COPY Qt5Config.patch /soft/android/qt/lib/cmake/Qt5
|
||||
RUN patch < Qt5Config.patch
|
||||
|
||||
ENV BUILD_TYPE=Release
|
||||
|
||||
WORKDIR /soft
|
||||
Reference in New Issue
Block a user