mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	build-system: update Android builder docker container
This adjusts the docker setup to create a container with the correct NDK, SDK, tools, Qt version, etc, and updates the helper scripts that are needed in order to do that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									3071ea06f0
								
							
						
					
					
						commit
						cb4ccea3c2
					
				
					 3 changed files with 58 additions and 53 deletions
				
			
		|  | @ -5,12 +5,14 @@ RUN apt-get update  && \ | |||
|     apt-get install -y \ | ||||
|     autoconf \ | ||||
|     automake \ | ||||
|     cmake \ | ||||
|     git \ | ||||
|     libtool-bin \ | ||||
|     make \ | ||||
|     wget \ | ||||
|     unzip \ | ||||
|     python \ | ||||
|     python3-pip \ | ||||
|     bzip2 \ | ||||
|     pkg-config \ | ||||
|     libx11-xcb1 \ | ||||
|  | @ -18,65 +20,59 @@ RUN apt-get update  && \ | |||
|     libglib2.0-0 \ | ||||
|     openjdk-8-jdk \ | ||||
|     curl \ | ||||
|     coreutils \ | ||||
|     p7zip-full | ||||
| 
 | ||||
| # create our working directory and place the local copies of the Qt | ||||
| # install, NDK and SDK there, plus the three files from the Subsurface | ||||
| # sources that we need to get the prep routines to run | ||||
| RUN mkdir -p /android | ||||
| ADD android-ndk-r*-linux-x86_64.zip /android/ | ||||
| ADD sdk-tools-linux-*.zip /android/ | ||||
| ADD install-qt.sh android-build-wrapper.sh variables.sh /android/ | ||||
| ADD commandlinetools-linux-*.zip /android/ | ||||
| RUN cd /android && unzip commandlinetools-linux-*.zip | ||||
| ADD android-build-setup.sh variables.sh /android/ | ||||
| 
 | ||||
| # install current cmake | ||||
| ADD cmake-3.13.2.tar.gz /android/ | ||||
| RUN cd /android/cmake-3.13.2 && \ | ||||
|     bash ./bootstrap && \ | ||||
|     make -j6 && make install | ||||
| 
 | ||||
| # run the build wrapper in prep mode | ||||
| RUN cd /android && bash -x /android/android-build-wrapper.sh -prep-only | ||||
| # run the build setup | ||||
| RUN ls -l /android | ||||
| RUN cd /android && bash -x /android/android-build-setup.sh | ||||
| 
 | ||||
| # clean up the files that we don't need to keep the container smaller | ||||
| RUN cd /android && \ | ||||
|     apt-get remove -y gcc g++-7 libstdc++-7-dev && \ | ||||
|     rm -rf \ | ||||
| 	   Qt/5*/android_arm*/lib/*x86* \ | ||||
| 	   Qt/5*/android_arm*/doc \ | ||||
| 	   Qt/5*/android_arm*/include/QtHelp \ | ||||
| 	   Qt/5*/android_arm*/include/QtFbSupport \ | ||||
| 	   Qt/5*/android_arm*/include/QtFontDatabaseSupport \ | ||||
| 	   Qt/5*/android_arm*/include/QtNfc \ | ||||
| 	   Qt/5*/android_arm*/include/QtPrintSupport \ | ||||
| 	   Qt/5*/android_arm*/include/QtTest \ | ||||
| 	   Qt/5*/android_arm*/include/QtXml \ | ||||
| 	   Qt/5*/android_arm*/plugins/geoservices/libqtgeoservices_mapboxgl.so \ | ||||
| 	   sdk-tools-linux-*.zip \ | ||||
| 	   android-ndk-r*-linux-x86_64.zip \ | ||||
| 	   $( find android-ndk*/platforms -name arch-mips -o -name arch-x86 ) \ | ||||
| 	   android-ndk-r[0-9a-z]*/toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \ | ||||
| 	   android-ndk-r[0-9a-z]*/platforms/android-[12][2345678] \ | ||||
| 	   android-ndk-r[0-9a-z]*/platforms/android-21/arch-x86_64 \ | ||||
| 	   android-ndk-r[0-9a-z]*/prebuilt/linux-x86_64 \ | ||||
| 	   android-ndk-r[0-9a-z]*/simpleperf \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/libs/x* \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/libs/*/*static* \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/test \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/utils \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/llvmlibc++abi \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/cxx-stl/system \ | ||||
| 	   android-ndk-r[0-9a-z]*/sources/third_party \ | ||||
| 	   android-ndk-r[0-9a-z]*/sysroot/usr/lib \ | ||||
| 	   android-sdk-linux/build-tools/28.0.3/renderscript \ | ||||
| 	   android-sdk-linux/platform-tools/systrace \ | ||||
| 	   android-sdk-linux/tools/lib \ | ||||
| 	   android-sdk-linux/tools/proguard \ | ||||
| 	   android-sdk-linux/tools/support \ | ||||
|            android-sdk-linux/emulator \ | ||||
| 	   /usr/lib/gcc \ | ||||
|            cmake-3.13* && \ | ||||
| 	   5*/android/lib/*x86* \ | ||||
| 	   5*/android/doc \ | ||||
| 	   5*/android/include/QtHelp \ | ||||
| 	   5*/android/include/QtFbSupport \ | ||||
| 	   5*/android/include/QtFontDatabaseSupport \ | ||||
| 	   5*/android/include/QtNfc \ | ||||
| 	   5*/android/include/QtPrintSupport \ | ||||
| 	   5*/android/include/QtTest \ | ||||
| 	   5*/android/include/QtXml \ | ||||
| 	   5*/android/plugins/geoservices/libqtgeoservices_mapboxgl.so \ | ||||
| 	   commandlinetools-linux-*.zip \ | ||||
| 	   $( find platforms -name arch-mips -o -name arch-x86 ) \ | ||||
| 	   toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \ | ||||
| 	   platforms/android-[12][2345678] \ | ||||
| 	   platforms/android-21/arch-x86_64 \ | ||||
| 	   ndk/*/sources/cxx-stl/llvm-libc++/libs/x* \ | ||||
| 	   ndk/*/sources/cxx-stl/llvm-libc++/libs/*/*static* \ | ||||
| 	   ndk/*/sources/cxx-stl/llvm-libc++/test \ | ||||
| 	   ndk/*/sources/cxx-stl/llvm-libc++/utils \ | ||||
| 	   ndk/*/sources/cxx-stl/llvmlibc++abi \ | ||||
| 	   ndk/*/sources/cxx-stl/system \ | ||||
| 	   ndk/*/sources/third_party \ | ||||
| 	   ndk/*/sysroot/usr/lib \ | ||||
| 	   build-tools/*/renderscript \ | ||||
| 	   platform-tools/systrace \ | ||||
| 	   tools/lib \ | ||||
| 	   tools/proguard \ | ||||
| 	   tools/support \ | ||||
| 	   emulator \ | ||||
| 	   platform-tools-2 \ | ||||
| 	   variables.sh \ | ||||
| 	   android-build-setup.sh | ||||
| 	   /usr/lib/gcc && \ | ||||
|     ls -l && \ | ||||
|     du -sh * | ||||
| RUN apt-get clean | ||||
| RUN cd /android/android-ndk-r18b/toolchains && ln -s x86_64-4.9 x86-64-4.9 | ||||
| #RUN cd /android/android-ndk-r18b/toolchains && ln -s x86_64-4.9 x86-64-4.9 | ||||
| RUN touch /android/finished-"`date`" | ||||
|  |  | |||
|  | @ -2,10 +2,19 @@ | |||
| 
 | ||||
| # Use this to re-create a docker container for building Android binaries | ||||
| 
 | ||||
| # Google makes it intentionally very hard to download the command line tools | ||||
| # the URL is constantly changing and the website requires you to click through | ||||
| # a license. | ||||
| # Today this URL works: | ||||
| if [ ! -f commandlinetools-linux-6858069_latest.zip ] ; then | ||||
| 	wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip | ||||
| fi | ||||
| # if this fails, go to https://developer.android.com/studio#cmdline-tools and click through | ||||
| # for yourself... | ||||
| 
 | ||||
| # copy the dependency script into this folder | ||||
| cp ../../../packaging/android/android-build-wrapper.sh . | ||||
| cp ../../../packaging/android/android-build-setup.sh . | ||||
| cp ../../../packaging/android/variables.sh . | ||||
| cp ../../../packaging/android/install-qt.sh . | ||||
| 
 | ||||
| # create the container (this takes a while) | ||||
| sudo docker build -t android-builder --squash . | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue