2014-07-11 02:31:24 +04:00
|
|
|
project(gui)
|
|
|
|
set(CMAKE_AUTOMOC TRUE)
|
|
|
|
|
|
|
|
add_subdirectory(updater)
|
|
|
|
|
|
|
|
#TODO Move resources files
|
2014-12-08 21:25:57 +03:00
|
|
|
qt_add_resources(MIRALL_RC_SRC ../../client.qrc)
|
2014-07-11 02:31:24 +04:00
|
|
|
if ( IS_DIRECTORY ${OEM_THEME_DIR} )
|
|
|
|
qt_add_resources(MIRALL_RC_SRC ${OEM_THEME_DIR}/theme.qrc)
|
|
|
|
set(theme_dir ${OEM_THEME_DIR}/theme)
|
|
|
|
else()
|
|
|
|
qt_add_resources(MIRALL_RC_SRC ../../theme.qrc)
|
|
|
|
set(theme_dir ${CMAKE_SOURCE_DIR}/theme)
|
|
|
|
endif()
|
|
|
|
|
2014-11-10 00:30:05 +03:00
|
|
|
set(client_UI
|
2014-07-11 02:31:24 +04:00
|
|
|
accountsettings.ui
|
|
|
|
folderwizardsourcepage.ui
|
|
|
|
folderwizardtargetpage.ui
|
|
|
|
generalsettings.ui
|
|
|
|
ignorelisteditor.ui
|
|
|
|
networksettings.ui
|
|
|
|
protocolwidget.ui
|
|
|
|
settingsdialog.ui
|
2014-09-03 18:12:21 +04:00
|
|
|
sharedialog.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
sslerrordialog.ui
|
2014-11-18 18:44:14 +03:00
|
|
|
owncloudsetuppage.ui
|
|
|
|
addcertificatedialog.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/owncloudadvancedsetuppage.ui
|
2015-02-03 00:29:21 +03:00
|
|
|
wizard/owncloudconnectionmethoddialog.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/owncloudhttpcredspage.ui
|
|
|
|
wizard/owncloudsetupnocredspage.ui
|
|
|
|
wizard/owncloudwizardresultpage.ui
|
|
|
|
)
|
|
|
|
|
2014-11-10 00:58:24 +03:00
|
|
|
qt_wrap_ui(client_UI_SRCS ${client_UI})
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2014-11-10 00:30:05 +03:00
|
|
|
set(client_SRCS
|
2015-04-09 17:19:17 +03:00
|
|
|
accountmanager.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
accountsettings.cpp
|
|
|
|
application.cpp
|
|
|
|
folder.cpp
|
|
|
|
folderman.cpp
|
|
|
|
folderstatusmodel.cpp
|
2015-06-15 15:16:21 +03:00
|
|
|
folderstatusdelegate.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
folderwatcher.cpp
|
|
|
|
folderwizard.cpp
|
|
|
|
generalsettings.cpp
|
|
|
|
ignorelisteditor.cpp
|
|
|
|
logbrowser.cpp
|
|
|
|
networksettings.cpp
|
|
|
|
openfilemanager.cpp
|
|
|
|
owncloudgui.cpp
|
|
|
|
owncloudsetupwizard.cpp
|
|
|
|
protocolwidget.cpp
|
2014-08-26 16:33:21 +04:00
|
|
|
selectivesyncdialog.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
settingsdialog.cpp
|
2014-09-03 18:12:21 +04:00
|
|
|
sharedialog.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
socketapi.cpp
|
|
|
|
sslbutton.cpp
|
|
|
|
sslerrordialog.cpp
|
|
|
|
syncrunfilelog.cpp
|
|
|
|
systray.cpp
|
2014-08-29 22:40:33 +04:00
|
|
|
accountmigrator.cpp
|
2014-12-17 16:09:57 +03:00
|
|
|
quotainfo.cpp
|
|
|
|
accountstate.cpp
|
2014-11-18 18:44:14 +03:00
|
|
|
addcertificatedialog.cpp
|
2015-06-15 16:53:45 +03:00
|
|
|
authenticationdialog.cpp
|
|
|
|
creds/credentialsfactory.cpp
|
|
|
|
creds/httpcredentialsgui.cpp
|
|
|
|
creds/shibbolethcredentials.cpp
|
|
|
|
creds/shibboleth/shibbolethwebview.cpp
|
|
|
|
creds/shibboleth/shibbolethrefresher.cpp
|
|
|
|
creds/shibboleth/shibbolethuserjob.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/abstractcredswizardpage.cpp
|
|
|
|
wizard/owncloudadvancedsetuppage.cpp
|
2015-02-03 00:29:21 +03:00
|
|
|
wizard/owncloudconnectionmethoddialog.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/owncloudhttpcredspage.cpp
|
|
|
|
wizard/owncloudsetuppage.cpp
|
|
|
|
wizard/owncloudshibbolethcredspage.cpp
|
|
|
|
wizard/owncloudwizardcommon.cpp
|
|
|
|
wizard/owncloudwizard.cpp
|
|
|
|
wizard/owncloudwizardresultpage.cpp
|
2015-01-12 15:53:40 +03:00
|
|
|
../3rdparty/qjson/json.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
set(updater_SRCS
|
|
|
|
updater/ocupdater.cpp
|
|
|
|
updater/updateinfo.cpp
|
|
|
|
updater/updater.cpp
|
|
|
|
)
|
|
|
|
|
|
|
|
IF( APPLE )
|
2014-11-10 00:30:05 +03:00
|
|
|
list(APPEND client_SRCS cocoainitializer_mac.mm)
|
|
|
|
list(APPEND client_SRCS settingsdialogmac.cpp)
|
2015-06-15 15:51:11 +03:00
|
|
|
list(APPEND client_SRCS socketapisocket_mac.mm)
|
2015-02-07 20:23:09 +03:00
|
|
|
list(APPEND client_SRCS systray.mm)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
if(SPARKLE_FOUND)
|
|
|
|
# Define this, we need to check in updater.cpp
|
|
|
|
add_definitions( -DHAVE_SPARKLE )
|
|
|
|
list(APPEND updater_SRCS updater/sparkleupdater_mac.mm)
|
|
|
|
endif()
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
IF( NOT WIN32 AND NOT APPLE )
|
2014-11-10 00:58:24 +03:00
|
|
|
set(client_SRCS ${client_SRCS} folderwatcher_linux.cpp)
|
2014-07-11 02:31:24 +04:00
|
|
|
ENDIF()
|
|
|
|
IF( WIN32 )
|
2014-11-10 00:58:24 +03:00
|
|
|
set(client_SRCS ${client_SRCS} folderwatcher_win.cpp)
|
2014-07-11 02:31:24 +04:00
|
|
|
ENDIF()
|
|
|
|
IF( APPLE )
|
2014-11-10 00:30:05 +03:00
|
|
|
list(APPEND client_SRCS folderwatcher_mac.cpp)
|
2014-07-11 02:31:24 +04:00
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
set(3rdparty_SRC
|
|
|
|
../3rdparty/fancylineedit/fancylineedit.cpp
|
|
|
|
../3rdparty/QProgressIndicator/QProgressIndicator.cpp
|
|
|
|
../3rdparty/qtlockedfile/qtlockedfile.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtlocalpeer.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtsingleapplication.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp
|
2014-11-18 18:44:14 +03:00
|
|
|
../3rdparty/certificates/p12topem.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
list(APPEND 3rdparty_SRC
|
|
|
|
../3rdparty/qtmacgoodies/src/macpreferenceswindow.mm
|
|
|
|
../3rdparty/qtmacgoodies/src/macstandardicon.mm
|
2014-09-12 13:25:52 +04:00
|
|
|
../3rdparty/qtmacgoodies/src/macwindow.mm
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp)
|
|
|
|
else()
|
|
|
|
list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp )
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(3rdparty_INC
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/fancylineedit
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qjson
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qtmacgoodies/src
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication
|
|
|
|
)
|
|
|
|
|
|
|
|
include_directories(${3rdparty_INC})
|
2015-02-04 15:03:28 +03:00
|
|
|
include_directories(${OPENSSL_INCLUDE_DIR})
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
# csync is required.
|
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/csync/src
|
|
|
|
${CMAKE_BINARY_DIR}/csync
|
|
|
|
${CMAKE_BINARY_DIR}/csync/src
|
|
|
|
)
|
2014-07-11 14:10:08 +04:00
|
|
|
|
2014-07-11 02:31:24 +04:00
|
|
|
include_directories(../libsync ${CMAKE_CURRENT_BINARY_DIR}/../libsync)
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2014-11-10 00:30:05 +03:00
|
|
|
qt_add_translation(client_I18N ${TRANSLATIONS})
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2015-04-01 14:45:04 +03:00
|
|
|
IF( WIN32 )
|
|
|
|
configure_file(
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/version.rc
|
|
|
|
@ONLY)
|
|
|
|
set(client_version ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
|
|
|
ENDIF()
|
|
|
|
|
2014-07-11 02:31:24 +04:00
|
|
|
set( final_src
|
|
|
|
${MIRALL_RC_SRC}
|
2014-11-10 00:30:05 +03:00
|
|
|
${client_SRCS}
|
|
|
|
${client_UI_SRCS}
|
2015-04-01 14:45:04 +03:00
|
|
|
${client_version}
|
2014-11-10 01:10:18 +03:00
|
|
|
${guiMoc}
|
2014-11-10 00:30:05 +03:00
|
|
|
${client_I18N}
|
2014-07-11 02:31:24 +04:00
|
|
|
${3rdparty_SRC}
|
|
|
|
${3rdparty_MOC}
|
|
|
|
)
|
|
|
|
|
2015-06-15 16:53:45 +03:00
|
|
|
if(QTKEYCHAIN_FOUND OR QT5KEYCHAIN_FOUND)
|
|
|
|
list(APPEND libsync_LINK_TARGETS ${QTKEYCHAIN_LIBRARY})
|
|
|
|
include_directories(${QTKEYCHAIN_INCLUDE_DIR})
|
|
|
|
endif()
|
|
|
|
|
2014-07-11 02:31:24 +04:00
|
|
|
# add executable icon on windows and osx
|
|
|
|
include( AddAppIconMacro )
|
|
|
|
set(ownCloud_old ${ownCloud})
|
|
|
|
|
2014-09-12 13:25:52 +04:00
|
|
|
# set an icon_app_name. For historical reasons we can not use the
|
2014-07-11 02:31:24 +04:00
|
|
|
# application_shortname for ownCloud but must rather set it manually.
|
|
|
|
if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
|
|
|
|
set(ICON_APP_NAME ${APPLICATION_SHORTNAME})
|
|
|
|
else()
|
|
|
|
set(ICON_APP_NAME "owncloud")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
kde4_add_app_icon( ownCloud "${theme_dir}/colored/${ICON_APP_NAME}-icon*.png")
|
|
|
|
list(APPEND final_src ${ownCloud})
|
|
|
|
set(ownCloud ${ownCloud_old})
|
|
|
|
|
|
|
|
if (WITH_DBUS)
|
|
|
|
set(ADDITIONAL_APP_MODULES DBus)
|
|
|
|
endif(WITH_DBUS)
|
|
|
|
|
2014-07-11 14:36:01 +04:00
|
|
|
if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
file( GLOB _icons "${theme_dir}/colored/${ICON_APP_NAME}-icon-*.png" )
|
|
|
|
foreach( _file ${_icons} )
|
|
|
|
string( REPLACE "${theme_dir}/colored/${ICON_APP_NAME}-icon-" "" _res ${_file} )
|
|
|
|
string( REPLACE ".png" "" _res ${_res} )
|
|
|
|
install( FILES ${_file} RENAME ${ICON_APP_NAME}.png DESTINATION ${DATADIR}/icons/hicolor/${_res}x${_res}/apps )
|
|
|
|
endforeach( _file )
|
|
|
|
endif(NOT WIN32)
|
|
|
|
|
2014-11-10 00:30:05 +03:00
|
|
|
install(FILES ${client_I18N} DESTINATION share/${APPLICATION_EXECUTABLE}/i18n)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
# we may not add MACOSX_BUNDLE here, if not building one
|
|
|
|
|
|
|
|
# add_executable( ${APPLICATION_EXECUTABLE} main.cpp ${final_src})
|
|
|
|
add_executable( ${APPLICATION_EXECUTABLE} WIN32 main.cpp ${final_src})
|
|
|
|
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml WebKitWidgets Sql ${ADDITIONAL_APP_MODULES})
|
2014-09-12 13:25:52 +04:00
|
|
|
else()
|
2014-10-22 12:20:38 +04:00
|
|
|
# set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf.
|
2014-07-11 02:31:24 +04:00
|
|
|
set(MACOSX_BUNDLE_ICON_FILE "ownCloud.icns")
|
|
|
|
|
|
|
|
# we must add MACOSX_BUNDLE only if building a bundle
|
|
|
|
add_executable( ${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp ${final_src})
|
|
|
|
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml WebKitWidgets Sql ${ADDITIONAL_APP_MODULES})
|
|
|
|
|
|
|
|
set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations)
|
2014-11-10 00:30:05 +03:00
|
|
|
install(FILES ${client_I18N} DESTINATION ${QM_DIR})
|
2014-10-22 12:20:38 +04:00
|
|
|
get_target_property(_qmake Qt5::qmake LOCATION)
|
|
|
|
execute_process(COMMAND ${_qmake} -query QT_INSTALL_TRANSLATIONS
|
|
|
|
OUTPUT_VARIABLE QT_TRANSLATIONS_DIR
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
)
|
2014-07-11 02:31:24 +04:00
|
|
|
file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm)
|
|
|
|
install(FILES ${qt_I18N} DESTINATION ${QM_DIR})
|
2014-10-22 12:20:38 +04:00
|
|
|
file(GLOB qtbase_I18N ${QT_TRANSLATIONS_DIR}/qtbase_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm)
|
|
|
|
install(FILES ${qtbase_I18N} DESTINATION ${QM_DIR})
|
2014-07-11 02:31:24 +04:00
|
|
|
file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm)
|
|
|
|
install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR})
|
|
|
|
endif()
|
|
|
|
|
2014-07-11 14:36:01 +04:00
|
|
|
add_library(updater STATIC ${updater_SRCS} ${updaterMoc})
|
|
|
|
target_link_libraries(updater ${synclib_NAME})
|
|
|
|
qt5_use_modules(updater Widgets Network Xml)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2014-07-11 14:36:01 +04:00
|
|
|
set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY}
|
|
|
|
)
|
2014-10-22 12:20:38 +04:00
|
|
|
# Only relevant for Linux? On OS X it by default properly checks in the bundle directory next to the exe
|
2014-07-11 14:36:01 +04:00
|
|
|
set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES
|
2015-01-23 13:50:12 +03:00
|
|
|
INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/${APPLICATION_EXECUTABLE}" )
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2014-07-11 14:36:01 +04:00
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} ${QT_LIBRARIES} )
|
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} ${synclib_NAME} )
|
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} updater )
|
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} ${OS_SPECIFIC_LINK_LIBRARIES} )
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2014-08-26 20:07:42 +04:00
|
|
|
if(WITH_CRASHREPORTER)
|
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} crashreporter-handler)
|
2014-08-28 13:11:42 +04:00
|
|
|
include_directories( "../3rdparty/libcrashreporter-qt/src/" )
|
2014-08-26 20:07:42 +04:00
|
|
|
|
|
|
|
if(UNIX AND NOT MAC)
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
target_link_libraries( ${APPLICATION_EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT})
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2014-07-11 14:36:01 +04:00
|
|
|
install(TARGETS ${APPLICATION_EXECUTABLE}
|
|
|
|
RUNTIME DESTINATION bin
|
|
|
|
LIBRARY DESTINATION lib
|
|
|
|
ARCHIVE DESTINATION lib
|
2014-10-22 12:20:38 +04:00
|
|
|
BUNDLE DESTINATION "."
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
|
2014-11-18 18:44:14 +03:00
|
|
|
|
2015-01-20 21:03:56 +03:00
|
|
|
# FIXME: The following lines are dup in src/gui and src/cmd because it needs to be done after both are installed
|
2014-07-11 02:31:24 +04:00
|
|
|
#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unnecessary
|
|
|
|
# currently it needs to be done because the code right above needs to be executed no matter
|
|
|
|
# if building a bundle or not and the install_qt4_executable needs to be called afterwards
|
2014-10-22 12:20:38 +04:00
|
|
|
if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY)
|
|
|
|
get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
|
|
|
|
install(CODE "
|
|
|
|
message(STATUS \"Deploying (Qt) dependencies and fixing library pathes...\")
|
|
|
|
execute_process(COMMAND \"${CMAKE_SOURCE_DIR}/admin/osx/macdeployqt.py\" ${CMAKE_INSTALL_PREFIX}/${OWNCLOUD_OSX_BUNDLE} ${QT_QMAKE_EXECUTABLE})
|
|
|
|
" COMPONENT RUNTIME)
|
2014-07-11 02:31:24 +04:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT BUILD_OWNCLOUD_OSX_BUNDLE AND NOT WIN32)
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/mirall.desktop.in
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_EXECUTABLE}.desktop)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_EXECUTABLE}.desktop DESTINATION share/applications )
|
|
|
|
endif()
|
|
|
|
|