summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-11-30 15:06:18 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-11-30 15:06:18 -0800
commit05bf480e2e66147388aab5fce0481761bd5c2ca6 (patch)
tree63f6e357bbdf9c4abe9b1ed26398170406d39429 /CMakeLists.txt
parent26fbcb0b742947eb351606e137cf9520b0912e2b (diff)
downloadsubsurface-05bf480e2e66147388aab5fce0481761bd5c2ca6.tar.gz
CMake hack to build Subsurface-mobile on Mac
With this running make && make install should give you a Subsurface-mobile.app that you can execute (either with double click or using "open Subsurface-mobile.app" from the command line). This contains a couple of hacks but I didn't try too hard to make this clean since Tomaz is redoing the CMake build system, anyway and I'll need to make sure this still works once he's done. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt41
1 files changed, 31 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f672fcb9..c34efb32c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -299,16 +299,24 @@ if(ANDROID)
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -llog)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(SUBSURFACE_TARGET Subsurface)
+ if(SUBSURFACE_MOBILE)
+ set(SUBSURFACE_TARGET Subsurface-mobile)
+ set(MACOSX_BUNDLE_INFO_STRING "Subsurface-mobile")
+ set(MACOSX_BUNDLE_ICON_FILE Subsurface.icns)
+ set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.subsurface-divelog")
+ set(MACOSX_BUNDLE_BUNDLE_NAME "Subsurface-mobile")
+ else()
+ set(SUBSURFACE_TARGET Subsurface)
+ set(MACOSX_BUNDLE_INFO_STRING "Subsurface")
+ set(MACOSX_BUNDLE_ICON_FILE Subsurface.icns)
+ set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.subsurface-divelog")
+ set(MACOSX_BUNDLE_BUNDLE_NAME "Subsurface")
+ endif()
find_library(APP_SERVICES_LIBRARY ApplicationServices)
find_library(HID_LIB HidApi)
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} ${HID_LIB})
set(EXTRA_LIBS ${APP_SERVICES_LIBRARY})
set(ICON_FILE ${CMAKE_SOURCE_DIR}/packaging/macosx/Subsurface.icns)
- set(MACOSX_BUNDLE_INFO_STRING "Subsurface")
- set(MACOSX_BUNDLE_ICON_FILE Subsurface.icns)
- set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.subsurface-divelog")
- set(MACOSX_BUNDLE_BUNDLE_NAME "Subsurface")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${SSRF_VERSION_STRING}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${SSRF_VERSION_STRING}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${SSRF_VERSION_STRING}")
@@ -353,7 +361,11 @@ endif()
# create the executables
if(SUBSURFACE_MOBILE)
- set(SUBSURFACE_TARGET subsurface-mobile)
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(SUBSURFACE_TARGET Subsurface-mobile)
+ else()
+ set(SUBSURFACE_TARGET subsurface-mobile)
+ endif()
set(MOBILE_SRC
qt-mobile/qmlmanager.cpp
qt-mobile/qmlprofile.cpp
@@ -365,7 +377,7 @@ if(SUBSURFACE_MOBILE)
if(ANDROID)
add_library(subsurface-mobile SHARED ${MOBILE_SRC} ${SUBSURFACE_PKG} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
else()
- add_executable(subsurface-mobile ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
+ add_executable(${SUBSURFACE_TARGET} ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
endif()
target_link_libraries(
${SUBSURFACE_TARGET}
@@ -512,8 +524,14 @@ endforeach()
# now for each platform the install instructions
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(RESOURCEDIR ${CMAKE_BINARY_DIR}/Subsurface.app/Contents/Resources)
- set(PLUGINDIR ${CMAKE_BINARY_DIR}/Subsurface.app/Contents/PlugIns)
+ if(SUBSURFACE_MOBILE)
+ set(APP_BUNDLE_DIR Subsurface-mobile.app)
+ set(MACDEPLOY_ARGS "-qmldir=${APP_BUNDLE_DIR}/Contents/Frameworks/qml")
+ else()
+ set(APP_BUNDLE_DIR Subsurface.app)
+ endif()
+ set(RESOURCEDIR ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Resources)
+ set(PLUGINDIR ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/PlugIns)
install(DIRECTORY marbledata/maps DESTINATION ${RESOURCEDIR}/data)
install(DIRECTORY marbledata/bitmaps DESTINATION ${RESOURCEDIR}/data)
install(DIRECTORY Documentation/images DESTINATION ${RESOURCEDIR}/share/Documentation)
@@ -527,7 +545,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
install(DIRECTORY ${Grantlee5_DIR}/../../grantlee DESTINATION ${PLUGINDIR})
# this is a hack - but I don't know how else to find the macdeployqt program if it's not in the PATH
string(REPLACE moc macdeployqt MACDEPLOYQT ${QT_MOC_EXECUTABLE})
- install(CODE "execute_process(COMMAND ${MACDEPLOYQT} Subsurface.app)")
+ install(CODE "execute_process(COMMAND ${MACDEPLOYQT} ${APP_BUNDLE_DIR} ${MACDEPLOY_ARGS})")
+ # and another hack to get the QML Components in the right place
+ install(CODE "execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/qml)")
+ install(CODE "execute_process(COMMAND cp -a ${_qt5Core_install_prefix}/qml/QtQuick ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/qml)")
install(CODE "message(STATUS \"two ERRORS here about libmysqlclient and libpq not found are harmless\")")
endif()