mirror of
https://github.com/Lorenzooone/cc3dsfs.git
synced 2025-06-18 16:45:39 -04:00
Add Android build system (builds android SFML example)
This commit is contained in:
parent
2503d24a82
commit
403355ce13
33
docker-scripts/build-dockers/Dockerfile_Android
Normal file
33
docker-scripts/build-dockers/Dockerfile_Android
Normal file
@ -0,0 +1,33 @@
|
||||
################################################################################
|
||||
### Build Android ###
|
||||
################################################################################
|
||||
# Different from all others
|
||||
FROM saschpe/android-ndk:31-jdk11.0.13_8-ndk23.0.7599858-cmake3.18.1 as builderandroid
|
||||
RUN apt update && apt install -y lsb-release g++ build-essential wget git libssl-dev pkg-config zip unzip
|
||||
RUN wget https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2.tar.gz
|
||||
RUN tar -xvf cmake-3.30.2.tar.gz
|
||||
RUN cd cmake-3.30.2 && ./bootstrap && make -j && make install
|
||||
RUN curl -s "https://get.sdkman.io" | bash
|
||||
RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh ; sdk install gradle 7.6.2"
|
||||
RUN sdkmanager "build-tools;30.0.3" "cmake;3.22.1"
|
||||
ENV ANDROID_SDK_VERSION="31"
|
||||
ENV ANDROID_HOME="/opt/android-sdk-linux"
|
||||
ENV ANDROID_NDK_VERSION="23.0.7599858"
|
||||
ENV ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$ANDROID_NDK_VERSION"
|
||||
ENV GRADLE_DIR="/home/builder/gradle"
|
||||
ENV GRADLE_HOME="$GRADLE_DIR/current"
|
||||
ENV GRADLE_USER_HOME=$GRADLE_HOME
|
||||
ENV PATH="$ANDROID_HOME:$GRADLE_HOME/bin:$ANDROID_NDK_HOME:$PATH"
|
||||
RUN useradd builder -m
|
||||
RUN mkdir -p /home/builder/cc3dsfs
|
||||
RUN mkdir -p /home/builder/building
|
||||
RUN chown -R builder:builder /home/builder
|
||||
WORKDIR /home/builder/building
|
||||
COPY docker_build_starter /
|
||||
RUN chmod +x /docker_build_starter
|
||||
RUN chown -R builder:builder $ANDROID_HOME
|
||||
RUN mkdir -p $GRADLE_DIR
|
||||
RUN mv /root/.sdkman/candidates/gradle/* $GRADLE_DIR/
|
||||
RUN chown -R builder:builder $GRADLE_DIR
|
||||
USER builder
|
||||
CMD /docker_build_starter docker-scripts/docker_build_android
|
@ -7,3 +7,5 @@ docker image rm lorenzooone/cc3dsfs:builderarm32
|
||||
docker build --target builderarm32 . -t lorenzooone/cc3dsfs:builderarm32
|
||||
docker image rm lorenzooone/cc3dsfs:builderarm64
|
||||
docker build --target builderarm64 . -t lorenzooone/cc3dsfs:builderarm64
|
||||
docker image rm lorenzooone/cc3dsfs:builderandroid
|
||||
docker build --target builderandroid . -f Dockerfile_Android -t lorenzooone/cc3dsfs:builderandroid
|
||||
|
16
docker-scripts/docker_build_android
Normal file
16
docker-scripts/docker_build_android
Normal file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
SFML_EXTRACTED_TO_FOLDER=~
|
||||
SFML_EXTRACTED_FOLDER=${SFML_EXTRACTED_TO_FOLDER}/SFML-master
|
||||
BUILD_ARCH_COMMAND=docker-scripts/docker_build_android_single_arch
|
||||
|
||||
STL_CHOSEN=c++_static
|
||||
RELEASE_TYPE=Debug
|
||||
OUT_FOLDER=~/cc3dsfs/build
|
||||
ANDROID_FOLDER=${SFML_EXTRACTED_FOLDER}/examples/android
|
||||
|
||||
export LANG=C.UTF-8
|
||||
|
||||
(cd ${SFML_EXTRACTED_TO_FOLDER} ; wget https://github.com/SFML/SFML/archive/refs/heads/master.zip ; unzip master.zip)
|
||||
#${BUILD_ARCH_COMMAND} ${SFML_EXTRACTED_FOLDER} armeabi-v7a ${STL_CHOSEN} ${RELEASE_TYPE} ${OUT_FOLDER} ${ANDROID_FOLDER}
|
||||
${BUILD_ARCH_COMMAND} ${SFML_EXTRACTED_FOLDER} arm64-v8a ${STL_CHOSEN} ${RELEASE_TYPE} ${OUT_FOLDER} ${ANDROID_FOLDER}
|
32
docker-scripts/docker_build_android_single_arch
Normal file
32
docker-scripts/docker_build_android_single_arch
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
SFML_FOLDER=$1
|
||||
ARCH_CHOSEN=$2
|
||||
STL_CHOSEN=$3
|
||||
RELEASE_TYPE=$4
|
||||
OUT_FOLDER=$5
|
||||
ANDROID_FOLDER=$6
|
||||
GRADLE_FLAGS=""
|
||||
|
||||
add_to_gradle_flags()
|
||||
{
|
||||
to_add=$1
|
||||
GRADLE_FLAGS="${GRADLE_FLAGS} -P${to_add}"
|
||||
}
|
||||
|
||||
to_lower()
|
||||
{
|
||||
echo "$1" | tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
|
||||
(cd ${SFML_FOLDER} ; mkdir -p build/${ARCH_CHOSEN})
|
||||
(cd ${SFML_FOLDER}/build/${ARCH_CHOSEN} ; cmake -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_NDK=${ANDROID_NDK_HOME} -DCMAKE_ANDROID_ARCH_ABI=${ARCH_CHOSEN} -DCMAKE_ANDROID_STL_TYPE=${STL_CHOSEN} -DCMAKE_BUILD_TYPE=${RELEASE_TYPE} ../.. ; make ; make install)
|
||||
add_to_gradle_flags NDK_VERSION=${ANDROID_NDK_VERSION}
|
||||
add_to_gradle_flags ARCH_ABI=${ARCH_CHOSEN}
|
||||
add_to_gradle_flags TARGET_SDK=${ANDROID_SDK_VERSION}
|
||||
add_to_gradle_flags STL_TYPE=${STL_CHOSEN}
|
||||
LOWER_RELEASE_TYPE=$(to_lower $RELEASE_TYPE)
|
||||
# Default with gradle-wrapper, slow in docker
|
||||
#./gradlew assemble${RELEASE_TYPE} ${GRADLE_FLAGS}
|
||||
# Use the pre-donwloaded gradle to speed build up
|
||||
(cd ${ANDROID_FOLDER} && gradle assemble${RELEASE_TYPE} ${GRADLE_FLAGS} && mkdir -p ${OUT_FOLDER} && cp app/build/outputs/apk/${LOWER_RELEASE_TYPE}/*.apk ${OUT_FOLDER})
|
Loading…
Reference in New Issue
Block a user