Merge f3d74e1128
into eea4711110
This commit is contained in:
commit
c1fdcfdd71
|
@ -25,9 +25,9 @@ else
|
|||
fi
|
||||
fi
|
||||
|
||||
android_platformdir="$ANDROID_HOME/platforms/android-$ANDROID_API"
|
||||
android_platformdir="${ANDROID_HOME}/platforms/android-${ANDROID_API}"
|
||||
|
||||
echo "Building for android api version $ANDROID_API"
|
||||
echo "Building for android api version ${ANDROID_API}"
|
||||
echo "android_platformdir=$android_platformdir"
|
||||
|
||||
scriptdir=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
|
||||
|
@ -56,6 +56,7 @@ build_cmake_projects() {
|
|||
cmake -S "$sdl_root" -B "${build_root}/build_${android_abi}" \
|
||||
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
|
||||
-DANDROID_PLATFORM=${android_platform} \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DANDROID_ABI=${android_abi} \
|
||||
-DSDL_SHARED=ON \
|
||||
-DSDL_STATIC=ON \
|
||||
|
@ -80,6 +81,7 @@ build_cmake_projects() {
|
|||
|
||||
classes_sources_jar_path="${prefabhome}/classes-sources.jar"
|
||||
classes_jar_path="${prefabhome}/classes.jar"
|
||||
javadoc_jar_path="${prefabhome}/classes-javadoc.jar"
|
||||
compile_java() {
|
||||
classes_sources_root="${prefabhome}/classes-sources"
|
||||
|
||||
|
@ -102,17 +104,25 @@ compile_java() {
|
|||
jar -cf "${classes_sources_jar_path}" "@${java_sourceslist_path}"
|
||||
popd
|
||||
|
||||
java_sourceslist_path="${prefabhome}/java_sources.txt"
|
||||
|
||||
echo "Collecting java sources"
|
||||
find "$sdl_root/android-project/app/src/main/java" -name "*.java" >"${java_sourceslist_path}"
|
||||
|
||||
classes_root="${prefabhome}/classes"
|
||||
mkdir -p "${classes_root}/META-INF"
|
||||
cp "$sdl_root/LICENSE.txt" "${classes_root}/META-INF"
|
||||
java_sourceslist_path="${prefabhome}/java_sources.txt"
|
||||
|
||||
echo "Collecting sources for classes.jar"
|
||||
find "$sdl_root/android-project/app/src/main/java" -name "*.java" >"${java_sourceslist_path}"
|
||||
|
||||
echo "Compiling classes"
|
||||
javac -encoding utf-8 -classpath "$android_platformdir/android.jar" -d "${classes_root}" "@${java_sourceslist_path}"
|
||||
|
||||
javadoc_root="${prefabhome}/javadoc"
|
||||
mkdir -p "${javadoc_root}/META-INF"
|
||||
cp "$sdl_root/LICENSE.txt" "${javadoc_root}/META-INF"
|
||||
|
||||
echo "Compiling javadoc"
|
||||
javadoc -encoding utf-8 -classpath "$android_platformdir/android.jar" -d "${javadoc_root}" "@${java_sourceslist_path}"
|
||||
|
||||
java_classeslist_path="${prefabhome}/java_classes.txt"
|
||||
pushd "${classes_root}"
|
||||
find "." -name "*.class" >"${java_classeslist_path}"
|
||||
|
@ -120,6 +130,14 @@ compile_java() {
|
|||
echo "Creating classes.jar"
|
||||
jar -cf "${classes_jar_path}" "@${java_classeslist_path}"
|
||||
popd
|
||||
|
||||
javadoc_fileslist_path="${prefabhome}/javadoc_files.txt"
|
||||
pushd "${javadoc_root}"
|
||||
find "." -name "*" >"${javadoc_fileslist_path}"
|
||||
#find "META-INF" -name "*" >>"${java_classeslist_path}"
|
||||
echo "Creating javadoc.jar"
|
||||
jar -cf "${javadoc_jar_path}" "@${javadoc_fileslist_path}"
|
||||
popd
|
||||
}
|
||||
|
||||
pom_filename="SDL${sdl_major}-${sdl_version}.pom"
|
||||
|
@ -143,10 +161,29 @@ create_pom_xml() {
|
|||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Sam Lantinga</name>
|
||||
<email>slouken@libsdl.org</email>
|
||||
<organization>SDL</organization>
|
||||
<organizationUrl>https://www.libsdl.org</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/libsdl-org/SDL</connection>
|
||||
<developerConnection>scm:git:ssh://github.com:libsdl-org/SDL.git</developerConnection>
|
||||
<url>https://github.com/libsdl-org/SDL</url>
|
||||
</scm>
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>ossrh</id>
|
||||
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>ossrh</id>
|
||||
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
</project>
|
||||
EOF
|
||||
}
|
||||
|
@ -298,7 +335,8 @@ pushd "${aar_root}"
|
|||
aar_filename="SDL${sdl_major}-${sdl_version}.aar"
|
||||
cp "${classes_jar_path}" ./classes.jar
|
||||
cp "${classes_sources_jar_path}" ./classes-sources.jar
|
||||
zip -r "${aar_filename}" AndroidManifest.xml classes.jar classes-sources.jar prefab META-INF
|
||||
cp "${javadoc_jar_path}" ./classes-javadoc.jar
|
||||
zip -r "${aar_filename}" AndroidManifest.xml classes.jar classes-sources.jar classes-javadoc.jar prefab META-INF
|
||||
zip -Tv "${aar_filename}" 2>/dev/null ;
|
||||
mv "${aar_filename}" "${prefabhome}"
|
||||
popd
|
||||
|
|
92
build-scripts/docker/Dockerfile.android
Normal file
92
build-scripts/docker/Dockerfile.android
Normal file
|
@ -0,0 +1,92 @@
|
|||
# MIT License
|
||||
#
|
||||
# Simple DirectMedia Layer
|
||||
# Copyright (C) 2022-2022 Sam Lantinga <slouken@libsdl.org>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
FROM ubuntu:22.04
|
||||
|
||||
WORKDIR /
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN : \
|
||||
&& apt-get update -qq \
|
||||
&& apt-get install -qq -y openjdk-11-jdk vim git unzip libglu1 libpulse-dev libasound2 libc6 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxi6 libxtst6 libnss3 wget \
|
||||
&& apt-get install -qq -y cmake make ninja-build sudo zip \
|
||||
&& apt-get clean \
|
||||
&& :
|
||||
|
||||
ARG GRADLE_VERSION=7.5.1
|
||||
|
||||
# Download gradle, install gradle and gradlew
|
||||
RUN : \
|
||||
&& wget -q https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -P /tmp \
|
||||
&& unzip -q -d /opt/gradle /tmp/gradle-${GRADLE_VERSION}-bin.zip \
|
||||
&& rm /tmp/gradle-${GRADLE_VERSION}-bin.zip \
|
||||
&& mkdir /opt/gradlew \
|
||||
&& touch /opt/gradlew/settings.gradle \
|
||||
&& /opt/gradle/gradle-${GRADLE_VERSION}/bin/gradle wrapper --gradle-version ${GRADLE_VERSION} --distribution-type all -p /opt/gradlew \
|
||||
&& /opt/gradle/gradle-${GRADLE_VERSION}/bin/gradle wrapper -p /opt/gradlew \
|
||||
&& :
|
||||
|
||||
# https://developer.android.com/studio/
|
||||
ARG ANNDROID_CMD_LINE_TOOLS=linux-9123335_latest
|
||||
|
||||
RUN mkdir /opt/android
|
||||
RUN mkdir /opt/android/cmdline-tools
|
||||
RUN : \
|
||||
&& wget -q https://dl.google.com/android/repository/commandlinetools-${ANNDROID_CMD_LINE_TOOLS}.zip -P /tmp \
|
||||
&& unzip -q -d /opt/android/cmdline-tools /tmp/commandlinetools-${ANNDROID_CMD_LINE_TOOLS}.zip \
|
||||
&& rm \tmp/commandlinetools-${ANNDROID_CMD_LINE_TOOLS}.zip \
|
||||
&& :
|
||||
|
||||
ARG ANDROID_API_LEVEL=33
|
||||
# https://developer.android.com/studio/releases/build-tools
|
||||
ARG ANDROID_BUILD_TOOLS_LEVEL=33.0.1
|
||||
# https://developer.android.com/ndk/downloads
|
||||
ARG ANDROID_NDK_VERSION=21.4.7075529
|
||||
|
||||
# install packages and accept all licenses
|
||||
# cmdline-tools/cmdline-tools - the second "cmdline-tools" is the folder in the zip file
|
||||
RUN : \
|
||||
&& yes Y | /opt/android/cmdline-tools/cmdline-tools/bin/sdkmanager --install "build-tools;${ANDROID_BUILD_TOOLS_LEVEL}" "platforms;android-${ANDROID_API_LEVEL}" "platform-tools" "ndk;${ANDROID_NDK_VERSION}" \
|
||||
&& yes Y | /opt/android/cmdline-tools/cmdline-tools/bin/sdkmanager --licenses \
|
||||
&& :
|
||||
|
||||
# Environment variables to be used for build
|
||||
ENV GRADLE_HOME=/opt/gradle/gradle-${GRADLE_VERSION}
|
||||
ENV ANDROID_HOME=/opt/android
|
||||
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}
|
||||
ENV PATH "$PATH:$GRADLE_HOME/bin:/opt/gradlew:${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_NDK_HOME}"
|
||||
ENV LD_LIBRARY_PATH "${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib"
|
||||
|
||||
ARG USERID=1000
|
||||
|
||||
RUN : \
|
||||
&& useradd -u ${USERID} -r -m user \
|
||||
&& yes password | passwd user \
|
||||
&& echo "user ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/user \
|
||||
&& usermod -s /bin/bash user \
|
||||
&& :
|
||||
|
||||
USER ${USERID}
|
Loading…
Reference in a new issue