Introduce CMake support for building for Android

This is the first step to be able to build Subsurface with CMake for
Android.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2015-07-01 17:08:36 +02:00 committed by Dirk Hohndel
parent c3f6fcb0bf
commit d880040d0a
2 changed files with 22 additions and 3 deletions

View file

@ -155,8 +155,12 @@ if(SUBSURFACE_MOBILE)
set(QT_QUICK_PKG Quick) set(QT_QUICK_PKG Quick)
set(QT_QUICK_LIB Qt5::Quick) set(QT_QUICK_LIB Qt5::Quick)
endif() endif()
find_package(Qt5 REQUIRED COMPONENTS Core Concurrent Widgets Network ${WEBKIT_PKG} ${PRINTING_PKG} Svg Test LinguistTools ${QT_QUICK_PKG}) if(CMAKE_SYSTEM_NAME STREQUAL "Android")
set(QT_LIBRARIES Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network ${WEBKIT_LIB} ${PRINTING_LIB} Qt5::Svg ${QT_QUICK_PKG}) set(ANDROID_PKG AndroidExtras)
set(ANDROID_LIB Qt5::AndroidExtras)
endif()
find_package(Qt5 REQUIRED COMPONENTS Core Concurrent Widgets Network ${WEBKIT_PKG} ${PRINTING_PKG} Svg Test LinguistTools ${QT_QUICK_PKG} ${ANDROID_PKG})
set(QT_LIBRARIES Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network ${WEBKIT_LIB} ${PRINTING_LIB} Qt5::Svg ${QT_QUICK_PKG} ${ANDROID_LIB})
set(QT_TEST_LIBRARIES ${QT_LIBRARIES} Qt5::Test) set(QT_TEST_LIBRARIES ${QT_LIBRARIES} Qt5::Test)
# Generate the ssrf-config.h every 'make' # Generate the ssrf-config.h every 'make'
@ -223,6 +227,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
# in some builds we appear to be missing libz for some strange reason... # in some builds we appear to be missing libz for some strange reason...
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lz) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lz)
endif() endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
set(PLATFORM_SRC android.cpp)
# FIXME: Shouldn't cmake/Qt add this automatically somehow?
add_definitions(-DQ_OS_ANDROID)
set(SUBSURFACE_TARGET subsurface)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(FBSUPPORT 1) set(FBSUPPORT 1)
set(SUBSURFACE_TARGET Subsurface) set(SUBSURFACE_TARGET Subsurface)
@ -451,7 +461,13 @@ if(SUBSURFACE_MOBILE)
subsurface_corelib subsurface_corelib
${SUBSURFACE_LINK_LIBRARIES}) ${SUBSURFACE_LINK_LIBRARIES})
else() else()
add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES}) if(CMAKE_SYSTEM_NAME STREQUAL "Android")
# FIXME: is this the right way to link somehting which
# androiddeployqt can work with?
add_library(${SUBSURFACE_TARGET} SHARED ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES})
else()
add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES})
endif()
target_link_libraries( target_link_libraries(
${SUBSURFACE_TARGET} ${SUBSURFACE_TARGET}
subsurface_generated_ui subsurface_generated_ui

View file

@ -26,6 +26,9 @@ bool subsurface_ignore_font(const char *font)
return false; return false;
} }
void subsurface_user_info(struct user_info *user)
{ /* Encourage use of at least libgit2-0.20 */ }
const char *system_default_filename(void) const char *system_default_filename(void)
{ {
/* Replace this when QtCore/QStandardPaths getExternalStorageDirectory landed */ /* Replace this when QtCore/QStandardPaths getExternalStorageDirectory landed */