2121# git-ref - Specific git ref of H3 to build.
2222# use-docker - "true" to perform cross compilation via Docker, "false" to
2323# skip that step.
24- # remove-images - If use-docker is true and this argument is true, Docker
25- # cross compilation images will be removed after each step
24+ # system-prune - If use-docker is true and this argument is true, Docker
25+ # system prune will be run after each step
2626# (i.e. for disk space constrained environments like CI)
27+ # dockcross-tag - Tag name for dockcross
2728#
2829# This script downloads H3, builds H3 and the H3-Java native library, and
2930# cross compiles via Docker.
@@ -36,7 +37,8 @@ set -ex
3637GIT_REMOTE=$1
3738GIT_REVISION=$2
3839USE_DOCKER=$3
39- REMOVE_IMAGES=$4
40+ SYSTEM_PRUNE=$4
41+ DOCKCROSS_TAG=$5
4042
4143echo Downloading H3 from " $GIT_REMOTE "
4244
@@ -156,30 +158,43 @@ if ! command -v docker; then
156158 exit 0
157159fi
158160
161+ # Needed for older versions of dockcross
162+ UPGRADE_CMAKE=true
163+ CMAKE_ROOT=target/cmake-3.23.2-linux-x86_64
164+ mkdir -p $CMAKE_ROOT
165+
159166# linux-armv6 excluded because of build failure
160- for image in android-arm android-arm64 linux-arm64 linux-armv5 linux-armv7 linux-mipsel linux-mips linux-s390x \
161- linux-ppc64le linux-x64 linux-x86 windows-x64 windows-x86; do
167+ # linux-mips excluded due to manifest error
168+ for image in android-arm android-arm64 linux-arm64 linux-armv5 linux-armv7 linux-s390x \
169+ linux-ppc64le linux-x64 linux-x86 windows-static-x64 windows-static-x86; do
162170
163171 # Setup for using dockcross
164172 BUILD_ROOT=target/h3-java-build-$image
165173 mkdir -p $BUILD_ROOT
166- docker pull dockcross/$image
167- docker run --rm dockcross/$image > $BUILD_ROOT /dockcross
174+ docker pull dockcross/$image : $DOCKCROSS_TAG
175+ docker run --rm dockcross/$image : $DOCKCROSS_TAG > $BUILD_ROOT /dockcross
168176 chmod +x $BUILD_ROOT /dockcross
169177
170178 # Perform the actual build inside Docker
171- $BUILD_ROOT /dockcross --args " -v $JAVA_HOME :/java" src/main/c/h3-java/build-h3-docker.sh " $BUILD_ROOT "
179+ $BUILD_ROOT /dockcross --args " -v $JAVA_HOME :/java" src/main/c/h3-java/build-h3-docker.sh " $BUILD_ROOT " " $UPGRADE_CMAKE " " $CMAKE_ROOT "
172180
173181 # Copy the built artifact into the source tree so it can be included in the
174182 # built JAR.
175183 OUTPUT_ROOT=src/main/resources/$image
184+ if [ " $image " = " windows-static-x64" ]; then
185+ OUTPUT_ROOT=src/main/resources/windows-x64
186+ fi
187+ if [ " $image " = " windows-static-x86" ]; then
188+ OUTPUT_ROOT=src/main/resources/windows-x86
189+ fi
176190 mkdir -p $OUTPUT_ROOT
177191 if [ -e $BUILD_ROOT /lib/libh3-java.so ]; then cp $BUILD_ROOT /lib/libh3-java.so $OUTPUT_ROOT ; fi
178192 if [ -e $BUILD_ROOT /lib/libh3-java.dylib ]; then cp $BUILD_ROOT /lib/libh3-java.dylib $OUTPUT_ROOT ; fi
179193 if [ -e $BUILD_ROOT /lib/libh3-java.dll ]; then cp $BUILD_ROOT /lib/libh3-java.dll $OUTPUT_ROOT ; fi
180194
181- if $REMOVE_IMAGES ; then
182- docker rmi dockcross/$image
195+ if $SYSTEM_PRUNE ; then
196+ docker system prune --force --all
197+ docker system df
183198 rm $BUILD_ROOT /dockcross
184199 fi
185200 echo Current disk usage:
0 commit comments