[PATCH] Teach android build about subsurface-mobile

Anton Lundin glance at acc.umu.se
Thu Jul 9 15:02:35 PDT 2015


This teaches android build.sh and cmake about how to build the qml ui of
subsurface-mobile as a apk.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 CMakeLists.txt             | 18 +++++++++++++-----
 packaging/android/build.sh | 15 ++++++++++++---
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1d002a0..6e938a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -456,7 +456,11 @@ if(SUBSURFACE_MOBILE)
 	set(MOBILE_SRC qt-mobile/qmlmanager.cpp qt-models/divelistmodel.cpp)
 	add_definitions(-DSUBSURFACE_MOBILE)
 	qt5_add_resources(MOBILE_RESOURCES qt-mobile/mobile-resources.qrc)
-	add_executable(subsurface-mobile ${MOBILE_SRC} ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
+	if(ANDROID)
+		add_library(subsurface-mobile SHARED ${MOBILE_SRC} ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
+	else()
+		add_executable(subsurface-mobile ${MOBILE_SRC} ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
+	endif()
 	target_link_libraries(
 		subsurface-mobile
 		subsurface_generated_ui
@@ -717,11 +721,15 @@ if(ANDROID)
 	# Android template directory
 	set(ANDROID_PACKAGE_SOURCE_DIR, ${CMAKE_BINARY_DIR}/android)
 	include(${QT_ANDROID_CMAKE})
-	add_qt_android_apk(subsurface.apk ${SUBSURFACE_TARGET}
-		NAME "Subsurface"
-		PACKAGE_NAME "org.subsurfacedivelog"
-		PACKAGE_SOURCES ${CMAKE_CURRENT_LIST_DIR}/android
+	if(SUBSURFACE_MOBILE)
+		add_qt_android_apk(subsurface-mobile.apk subsurface-mobile
+			PACKAGE_SOURCES ${CMAKE_CURRENT_LIST_DIR}/android
 		)
+	else()
+		add_qt_android_apk(subsurface.apk ${SUBSURFACE_TARGET}
+			PACKAGE_SOURCES ${CMAKE_CURRENT_LIST_DIR}/android
+		)
+	endif()
 endif()
 
 if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
diff --git a/packaging/android/build.sh b/packaging/android/build.sh
index c569c74..fe03db5 100644
--- a/packaging/android/build.sh
+++ b/packaging/android/build.sh
@@ -168,10 +168,19 @@ else
 	popd
 fi
 
-mkdir -p subsurface-build-$ARCH
-cd subsurface-build-$ARCH
+# Should we build the mobile ui or the desktop ui?
+if [ ! -z "$SUBSURFACE_MOBILE" ] ; then
+	mkdir -p subsurface-mobile-build-$ARCH
+	cd subsurface-mobile-build-$ARCH
+	MOBILE_CMAKE="-DSUBSURFACE_MOBILE=ON"
+	# FIXME: We should install as a different package and name to.
+else
+	mkdir -p subsurface-build-$ARCH
+	cd subsurface-build-$ARCH
+fi
+
 # somehting in the qt-android-cmake-thingies mangles your path, so thats why we need to hard-code ant and pkg-config here.
-cmake -DQT_ANDROID_ANT=/usr/bin/ant -DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config -DQT_ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT -DQT_ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT -DCMAKE_TOOLCHAIN_FILE=$BUILDROOT/qt-android-cmake/toolchain/android.toolchain.cmake -DQT_ANDROID_CMAKE=$BUILDROOT/qt-android-cmake/AddQtAndroidApk.cmake -DFORCE_LIBSSH=OFF -DLIBDC_FROM_PKGCONFIG=ON -DLIBGIT2_FROM_PKGCONFIG=ON -DUSE_LIBGIT23_API=ON -DNO_MARBLE=ON -DNO_PRINTING=ON -DNO_USERMANUAL=ON -DCMAKE_PREFIX_PATH:UNINITIALIZED=${QT5_ANDROID}/android_${QT_ARCH}/lib/cmake $SUBSURFACE_SOURCE
+cmake $MOBILE_CMAKE -DQT_ANDROID_ANT=/usr/bin/ant -DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config -DQT_ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT -DQT_ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT -DCMAKE_TOOLCHAIN_FILE=$BUILDROOT/qt-android-cmake/toolchain/android.toolchain.cmake -DQT_ANDROID_CMAKE=$BUILDROOT/qt-android-cmake/AddQtAndroidApk.cmake -DFORCE_LIBSSH=OFF -DLIBDC_FROM_PKGCONFIG=ON -DLIBGIT2_FROM_PKGCONFIG=ON -DUSE_LIBGIT23_API=ON -DNO_MARBLE=ON -DNO_PRINTING=ON -DNO_USERMANUAL=ON -DCMAKE_PREFIX_PATH:UNINITIALIZED=${QT5_ANDROID}/android_${QT_ARCH}/lib/cmake $SUBSURFACE_SOURCE
 make
 #make install INSTALL_ROOT=android_build
 # bug in androiddeployqt? why is it looking for something with the builddir in it?
-- 
2.1.4



More information about the subsurface mailing list