2014-07-11 02:31:24 +04:00
|
|
|
project(gui)
|
2020-05-06 21:04:58 +03:00
|
|
|
find_package(Qt5 REQUIRED COMPONENTS Widgets Svg Qml Quick QuickControls2)
|
2020-03-09 03:48:07 +03:00
|
|
|
|
2020-11-23 19:09:44 +03:00
|
|
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
add_definitions(-DQT_QML_DEBUG)
|
|
|
|
endif()
|
|
|
|
|
2020-03-09 03:48:07 +03:00
|
|
|
IF(BUILD_UPDATER)
|
|
|
|
add_subdirectory(updater)
|
|
|
|
endif()
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2020-01-18 19:47:17 +03:00
|
|
|
set(MIRALL_RC_SRC ../../resources.qrc)
|
2017-09-22 11:28:08 +03:00
|
|
|
if (EXISTS "${OEM_THEME_DIR}/theme.qrc")
|
2017-12-14 17:10:33 +03:00
|
|
|
list(APPEND MIRALL_RC_SRC ${OEM_THEME_DIR}/theme.qrc)
|
2014-07-11 02:31:24 +04:00
|
|
|
set(theme_dir ${OEM_THEME_DIR}/theme)
|
|
|
|
else()
|
2017-12-14 17:10:33 +03:00
|
|
|
list(APPEND MIRALL_RC_SRC ../../theme.qrc)
|
2014-07-11 02:31:24 +04:00
|
|
|
set(theme_dir ${CMAKE_SOURCE_DIR}/theme)
|
|
|
|
endif()
|
|
|
|
|
2020-01-19 22:13:12 +03:00
|
|
|
#set (QML_IMPORT_PATH "${CMAKE_SOURCE_DIR}/src/gui/tray" CACHE STRING "Extra qml module import paths" FORCE)
|
|
|
|
|
2017-12-14 17:10:33 +03:00
|
|
|
set(client_UI_SRCS
|
2014-07-11 02:31:24 +04:00
|
|
|
accountsettings.ui
|
2020-10-07 18:51:18 +03:00
|
|
|
conflictdialog.ui
|
2021-01-29 21:00:21 +03:00
|
|
|
foldercreationdialog.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
folderwizardsourcepage.ui
|
|
|
|
folderwizardtargetpage.ui
|
|
|
|
generalsettings.ui
|
2018-08-02 09:36:03 +03:00
|
|
|
legalnotice.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
ignorelisteditor.ui
|
2019-08-15 00:09:19 +03:00
|
|
|
ignorelisttablewidget.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
networksettings.ui
|
|
|
|
settingsdialog.ui
|
2014-09-03 18:12:21 +04:00
|
|
|
sharedialog.ui
|
2015-11-05 11:58:16 +03:00
|
|
|
sharelinkwidget.ui
|
|
|
|
shareusergroupwidget.ui
|
2017-04-04 16:05:08 +03:00
|
|
|
shareuserline.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
sslerrordialog.ui
|
2014-11-18 18:44:14 +03:00
|
|
|
addcertificatedialog.ui
|
2015-07-16 15:21:51 +03:00
|
|
|
proxyauthdialog.ui
|
2018-06-21 20:57:51 +03:00
|
|
|
mnemonicdialog.ui
|
2020-11-18 18:42:37 +03:00
|
|
|
tray/ActivityActionButton.qml
|
2020-01-03 15:09:29 +03:00
|
|
|
tray/Window.qml
|
2019-12-03 19:25:11 +03:00
|
|
|
tray/UserLine.qml
|
2019-12-23 08:51:46 +03:00
|
|
|
wizard/flow2authwidget.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
|
2017-06-07 17:19:34 +03:00
|
|
|
wizard/owncloudoauthcredspage.ui
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/owncloudsetupnocredspage.ui
|
|
|
|
wizard/owncloudwizardresultpage.ui
|
2017-11-29 00:25:35 +03:00
|
|
|
wizard/webview.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
|
2020-10-07 18:51:18 +03:00
|
|
|
conflictdialog.cpp
|
2020-10-07 17:30:43 +03:00
|
|
|
conflictsolver.cpp
|
2018-02-21 17:03:55 +03:00
|
|
|
connectionvalidator.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
folder.cpp
|
2021-01-29 21:00:21 +03:00
|
|
|
foldercreationdialog.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
folderman.cpp
|
|
|
|
folderstatusmodel.cpp
|
2015-06-15 15:16:21 +03:00
|
|
|
folderstatusdelegate.cpp
|
2018-10-30 22:35:35 +03:00
|
|
|
folderstatusview.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
folderwatcher.cpp
|
|
|
|
folderwizard.cpp
|
|
|
|
generalsettings.cpp
|
2018-08-02 09:36:03 +03:00
|
|
|
legalnotice.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
ignorelisteditor.cpp
|
2019-08-15 00:09:19 +03:00
|
|
|
ignorelisttablewidget.cpp
|
2016-04-29 17:14:18 +03:00
|
|
|
lockwatcher.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
logbrowser.cpp
|
2017-10-04 14:49:42 +03:00
|
|
|
navigationpanehelper.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
networksettings.cpp
|
2018-02-20 21:33:25 +03:00
|
|
|
ocsnavigationappsjob.cpp
|
2018-01-26 15:11:35 +03:00
|
|
|
ocsjob.cpp
|
2015-09-07 14:50:01 +03:00
|
|
|
ocssharejob.cpp
|
2015-11-02 00:23:22 +03:00
|
|
|
ocsshareejob.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
openfilemanager.cpp
|
|
|
|
owncloudgui.cpp
|
|
|
|
owncloudsetupwizard.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
|
2015-11-05 11:58:16 +03:00
|
|
|
sharelinkwidget.cpp
|
2016-09-14 16:31:05 +03:00
|
|
|
sharemanager.cpp
|
2015-11-05 11:58:16 +03:00
|
|
|
shareusergroupwidget.cpp
|
2015-11-02 00:23:22 +03:00
|
|
|
sharee.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
socketapi.cpp
|
|
|
|
sslbutton.cpp
|
|
|
|
sslerrordialog.cpp
|
|
|
|
syncrunfilelog.cpp
|
|
|
|
systray.cpp
|
2015-09-07 14:50:01 +03:00
|
|
|
thumbnailjob.cpp
|
2020-02-14 04:10:01 +03:00
|
|
|
userinfo.cpp
|
2014-12-17 16:09:57 +03:00
|
|
|
accountstate.cpp
|
2014-11-18 18:44:14 +03:00
|
|
|
addcertificatedialog.cpp
|
2015-06-15 16:53:45 +03:00
|
|
|
authenticationdialog.cpp
|
2015-07-16 15:21:51 +03:00
|
|
|
proxyauthhandler.cpp
|
|
|
|
proxyauthdialog.cpp
|
2016-01-21 13:32:27 +03:00
|
|
|
tooltipupdater.cpp
|
2016-03-04 19:41:57 +03:00
|
|
|
notificationconfirmjob.cpp
|
2017-05-10 10:37:10 +03:00
|
|
|
guiutility.cpp
|
2017-07-11 16:50:56 +03:00
|
|
|
elidedlabel.cpp
|
2019-12-23 08:01:00 +03:00
|
|
|
headerbanner.cpp
|
2018-04-25 18:19:05 +03:00
|
|
|
iconjob.cpp
|
2019-07-24 14:56:21 +03:00
|
|
|
remotewipe.cpp
|
2020-01-03 15:09:29 +03:00
|
|
|
tray/ActivityData.cpp
|
|
|
|
tray/ActivityListModel.cpp
|
2019-12-03 20:50:34 +03:00
|
|
|
tray/UserModel.cpp
|
2020-01-13 16:35:58 +03:00
|
|
|
tray/NotificationHandler.cpp
|
2015-06-15 16:53:45 +03:00
|
|
|
creds/credentialsfactory.cpp
|
|
|
|
creds/httpcredentialsgui.cpp
|
2017-03-28 11:31:38 +03:00
|
|
|
creds/oauth.cpp
|
2019-08-17 03:37:04 +03:00
|
|
|
creds/flow2auth.cpp
|
2017-11-25 22:19:25 +03:00
|
|
|
creds/webflowcredentials.cpp
|
2017-11-29 00:25:35 +03:00
|
|
|
creds/webflowcredentialsdialog.cpp
|
2016-03-22 12:20:20 +03:00
|
|
|
wizard/postfixlineedit.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
|
2017-03-28 11:31:38 +03:00
|
|
|
wizard/owncloudoauthcredspage.cpp
|
2019-08-17 03:37:04 +03:00
|
|
|
wizard/flow2authcredspage.cpp
|
2019-08-24 17:21:44 +03:00
|
|
|
wizard/flow2authwidget.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
wizard/owncloudsetuppage.cpp
|
|
|
|
wizard/owncloudwizardcommon.cpp
|
|
|
|
wizard/owncloudwizard.cpp
|
|
|
|
wizard/owncloudwizardresultpage.cpp
|
2017-11-23 01:00:57 +03:00
|
|
|
wizard/webviewpage.cpp
|
2017-11-29 00:25:35 +03:00
|
|
|
wizard/webview.cpp
|
2018-10-29 13:17:04 +03:00
|
|
|
wizard/slideshow.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
|
2020-03-09 03:48:07 +03:00
|
|
|
IF(BUILD_UPDATER)
|
|
|
|
set(updater_SRCS
|
|
|
|
updater/ocupdater.cpp
|
|
|
|
updater/updateinfo.cpp
|
|
|
|
updater/updater.cpp
|
|
|
|
)
|
|
|
|
endif()
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
IF( APPLE )
|
2014-11-10 00:30:05 +03:00
|
|
|
list(APPEND client_SRCS cocoainitializer_mac.mm)
|
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
|
|
|
|
2020-03-09 03:48:07 +03:00
|
|
|
if(SPARKLE_FOUND AND BUILD_UPDATER)
|
2020-11-25 11:43:59 +03:00
|
|
|
# Define this, we need to check in updater.cpp
|
|
|
|
add_definitions(-DHAVE_SPARKLE)
|
|
|
|
list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h)
|
|
|
|
list(APPEND updater_DEPS ${SPARKLE_LIBRARY})
|
|
|
|
|
|
|
|
# Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle
|
|
|
|
# as its logic is tightly tailored around Qt5 frameworks
|
|
|
|
install(DIRECTORY "${SPARKLE_LIBRARY}"
|
|
|
|
DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS)
|
|
|
|
|
2014-07-11 02:31:24 +04:00
|
|
|
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/QProgressIndicator/QProgressIndicator.cpp
|
|
|
|
../3rdparty/qtlockedfile/qtlockedfile.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtlocalpeer.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtsingleapplication.cpp
|
|
|
|
../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp
|
2019-05-08 20:56:00 +03:00
|
|
|
../3rdparty/kmessagewidget/kmessagewidget.cpp
|
2014-07-11 02:31:24 +04:00
|
|
|
)
|
|
|
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp)
|
|
|
|
else()
|
|
|
|
list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp )
|
|
|
|
endif()
|
|
|
|
|
2018-01-25 15:42:08 +03:00
|
|
|
IF( NOT WIN32 AND NOT APPLE AND LIBCLOUDPROVIDERS_FOUND)
|
2017-07-23 21:58:00 +03:00
|
|
|
message("Building with libcloudproviderssupport")
|
|
|
|
add_definitions(-DWITH_LIBCLOUDPROVIDERS)
|
|
|
|
set(client_SRCS ${client_SRCS} cloudproviders/cloudprovidermanager.cpp)
|
|
|
|
set(client_SRCS ${client_SRCS} cloudproviders/cloudproviderwrapper.cpp)
|
|
|
|
|
|
|
|
include_directories(${GLib2_INCLUDE_DIRS})
|
|
|
|
include_directories(${GIO_INCLUDE_DIRS})
|
|
|
|
include_directories(${LIBCLOUDPROVIDERS_INCLUDE_DIR})
|
|
|
|
ENDIF()
|
|
|
|
|
2017-12-14 17:10:33 +03:00
|
|
|
find_package(Qt5LinguistTools)
|
|
|
|
if(Qt5LinguistTools_FOUND)
|
|
|
|
qt5_add_translation(client_I18N ${TRANSLATIONS})
|
|
|
|
endif()
|
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)
|
2016-10-29 23:06:03 +03:00
|
|
|
IF(NOT MSVC)
|
|
|
|
set(client_manifest ${CMAKE_CURRENT_SOURCE_DIR}/manifest-mingw.rc)
|
|
|
|
ENDIF()
|
2015-04-01 14:45:04 +03:00
|
|
|
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}
|
2016-10-29 23:06:03 +03:00
|
|
|
${client_manifest}
|
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}
|
|
|
|
)
|
|
|
|
|
2020-10-29 15:24:20 +03:00
|
|
|
if(Qt5Keychain_FOUND)
|
|
|
|
list(APPEND libsync_LINK_TARGETS qt5keychain)
|
2015-06-15 16:53:45 +03:00
|
|
|
endif()
|
|
|
|
|
2014-07-11 02:31:24 +04:00
|
|
|
# add executable icon on windows and osx
|
2018-01-04 23:06:23 +03:00
|
|
|
|
|
|
|
# UPSTREAM our ECMAddAppIcon.cmake then require that version here
|
|
|
|
# find_package(ECM 1.7.0 REQUIRED NO_MODULE)
|
|
|
|
# list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
|
|
|
|
include(ECMAddAppIcon)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2017-03-27 12:12:28 +03:00
|
|
|
# For historical reasons we can not use the application_shortname
|
|
|
|
# for ownCloud but must rather set it manually.
|
|
|
|
if (NOT DEFINED APPLICATION_ICON_NAME)
|
|
|
|
set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME})
|
2014-07-11 02:31:24 +04:00
|
|
|
endif()
|
|
|
|
|
2018-01-04 23:06:23 +03:00
|
|
|
file(GLOB_RECURSE OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*")
|
|
|
|
if(APPLE)
|
|
|
|
file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*")
|
|
|
|
MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}")
|
2016-09-11 17:14:08 +03:00
|
|
|
endif()
|
2019-09-05 21:58:05 +03:00
|
|
|
ecm_add_app_icon(final_src ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}")
|
2014-07-11 02:31:24 +04:00
|
|
|
|
2017-09-20 19:26:06 +03:00
|
|
|
if(UNIX AND NOT APPLE)
|
2017-10-06 15:34:22 +03:00
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
|
2017-09-20 19:26:06 +03:00
|
|
|
endif()
|
|
|
|
|
2017-11-24 16:54:24 +03:00
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
|
|
|
|
endif()
|
|
|
|
|
2021-01-15 01:07:32 +03:00
|
|
|
add_library(nextcloudCore STATIC ${final_src})
|
|
|
|
|
|
|
|
target_link_libraries(nextcloudCore
|
|
|
|
PUBLIC
|
|
|
|
Qt5::Widgets
|
|
|
|
Qt5::GuiPrivate
|
|
|
|
Qt5::Svg
|
|
|
|
Qt5::Network
|
|
|
|
Qt5::Xml
|
|
|
|
Qt5::Qml
|
|
|
|
Qt5::Quick
|
|
|
|
Qt5::QuickControls2
|
|
|
|
Qt5::WebEngineWidgets
|
|
|
|
${synclib_NAME}
|
|
|
|
)
|
|
|
|
|
|
|
|
set_target_properties(nextcloudCore
|
|
|
|
PROPERTIES
|
|
|
|
AUTOUIC ON
|
|
|
|
AUTORCC ON
|
|
|
|
AUTOMOC ON
|
|
|
|
)
|
|
|
|
|
|
|
|
target_include_directories(nextcloudCore
|
|
|
|
PUBLIC
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication
|
|
|
|
${CMAKE_SOURCE_DIR}/src/3rdparty/kmessagewidget
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
|
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)
|
2018-01-17 14:14:56 +03:00
|
|
|
file(GLOB _icons "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon.png")
|
|
|
|
foreach(_file ${_icons})
|
|
|
|
string(REPLACE "${theme_dir}/colored/" "" _res ${_file})
|
|
|
|
string(REPLACE "-${APPLICATION_ICON_NAME}-icon.png" "" _res ${_res})
|
|
|
|
install(FILES ${_file} RENAME ${APPLICATION_ICON_NAME}.png DESTINATION ${DATADIR}/icons/hicolor/${_res}x${_res}/apps)
|
|
|
|
endforeach(_file)
|
2018-06-27 00:28:37 +03:00
|
|
|
install(FILES ${client_I18N} DESTINATION ${SHAREDIR}/${APPLICATION_EXECUTABLE}/i18n)
|
|
|
|
else()
|
2019-09-06 09:35:46 +03:00
|
|
|
file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*")
|
2019-09-06 10:24:06 +03:00
|
|
|
install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements)
|
|
|
|
install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin)
|
2018-06-27 00:28:37 +03:00
|
|
|
install(FILES ${client_I18N} DESTINATION i18n)
|
|
|
|
endif()
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
# we may not add MACOSX_BUNDLE here, if not building one
|
2021-01-15 01:07:32 +03:00
|
|
|
add_executable(${APPLICATION_EXECUTABLE} WIN32 main.cpp)
|
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.
|
2018-09-05 12:57:26 +03:00
|
|
|
set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns")
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
# we must add MACOSX_BUNDLE only if building a bundle
|
2021-01-15 01:07:32 +03:00
|
|
|
add_executable(${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp)
|
2014-07-11 02:31:24 +04:00
|
|
|
|
|
|
|
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()
|
|
|
|
|
2020-03-09 03:48:07 +03:00
|
|
|
IF(BUILD_UPDATER)
|
|
|
|
add_library(updater STATIC ${updater_SRCS})
|
2020-11-25 11:43:59 +03:00
|
|
|
target_link_libraries(updater ${synclib_NAME} ${updater_DEPS} Qt5::Widgets Qt5::Svg Qt5::Network Qt5::Xml)
|
2020-03-09 03:48:07 +03:00
|
|
|
target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
2021-02-02 02:25:38 +03:00
|
|
|
set_target_properties(updater PROPERTIES AUTOMOC ON)
|
2020-03-09 03:48:07 +03:00
|
|
|
endif()
|
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-07-11 02:31:24 +04:00
|
|
|
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(${APPLICATION_EXECUTABLE} nextcloudCore)
|
|
|
|
|
2020-03-09 03:48:07 +03:00
|
|
|
IF(BUILD_UPDATER)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore PUBLIC updater)
|
2020-03-09 03:48:07 +03:00
|
|
|
endif()
|
2021-01-15 01:07:32 +03:00
|
|
|
|
|
|
|
target_link_libraries(nextcloudCore PUBLIC ${OS_SPECIFIC_LINK_LIBRARIES})
|
|
|
|
|
2017-07-23 21:58:00 +03:00
|
|
|
IF( LIBCLOUDPROVIDERS_FOUND )
|
|
|
|
string(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR)
|
|
|
|
string(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}")
|
|
|
|
string(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}")
|
|
|
|
if(NOT DBUS_PREFIX)
|
|
|
|
set(DBUS_PREFIX "com")
|
|
|
|
endif(NOT DBUS_PREFIX)
|
|
|
|
set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}")
|
|
|
|
set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}")
|
|
|
|
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cloudproviders/cloudproviderconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/cloudproviderconfig.h)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore
|
|
|
|
PUBLIC
|
|
|
|
${GLib2_LDFLAGS}
|
|
|
|
${GIO_LDFLAGS}
|
|
|
|
${LIBCLOUDPROVIDERS_LIBRARY}
|
|
|
|
)
|
2017-07-23 21:58:00 +03:00
|
|
|
ENDIF()
|
|
|
|
|
2017-12-14 17:10:33 +03:00
|
|
|
## handle DBUS for Fdo notifications
|
|
|
|
if( UNIX AND NOT APPLE )
|
|
|
|
find_package(Qt5 COMPONENTS DBus)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore PUBLIC Qt5::DBus)
|
|
|
|
target_compile_definitions(nextcloudCore PUBLIC "USE_FDO_NOTIFICATIONS")
|
2017-12-14 17:10:33 +03:00
|
|
|
endif()
|
|
|
|
|
2018-01-04 22:47:54 +03:00
|
|
|
if (APPLE)
|
|
|
|
find_package(Qt5 COMPONENTS MacExtras)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore PUBLIC Qt5::MacExtras)
|
2018-01-04 22:47:54 +03:00
|
|
|
endif()
|
|
|
|
|
2014-08-26 20:07:42 +04:00
|
|
|
if(WITH_CRASHREPORTER)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore PUBLIC crashreporter-handler)
|
2014-08-26 20:07:42 +04:00
|
|
|
|
|
|
|
if(UNIX AND NOT MAC)
|
|
|
|
find_package(Threads REQUIRED)
|
2021-01-15 01:07:32 +03:00
|
|
|
target_link_libraries(nextcloudCore PUBLIC ${CMAKE_THREAD_LIBS_INIT})
|
2014-08-26 20:07:42 +04:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2017-12-14 17:10:33 +03:00
|
|
|
# application.cpp still uses QDesktopServices::storageLocation
|
2021-01-15 01:07:32 +03:00
|
|
|
target_compile_definitions(nextcloudCore PRIVATE "QT_DISABLE_DEPRECATED_BEFORE=0")
|
2017-12-14 17:10:33 +03:00
|
|
|
|
|
|
|
|
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
|
2020-06-06 20:53:48 +03:00
|
|
|
#
|
|
|
|
# OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option
|
2014-10-22 12:20:38 +04:00
|
|
|
if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY)
|
2020-01-22 06:53:03 +03:00
|
|
|
get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
|
|
|
|
get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY)
|
|
|
|
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}")
|
|
|
|
|
2020-06-06 20:53:48 +03:00
|
|
|
set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd)
|
|
|
|
|
2020-07-17 15:07:13 +03:00
|
|
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
set(NO_STRIP "-no-strip")
|
|
|
|
else()
|
|
|
|
set(NO_STRIP "")
|
|
|
|
endif()
|
|
|
|
|
2020-01-22 06:53:03 +03:00
|
|
|
add_custom_command(TARGET ${APPLICATION_EXECUTABLE} POST_BUILD
|
|
|
|
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
|
|
|
|
"$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/../.."
|
|
|
|
-qmldir=${CMAKE_SOURCE_DIR}/src/gui
|
|
|
|
-always-overwrite
|
2020-06-06 20:53:48 +03:00
|
|
|
-executable="$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/${cmd_NAME}"
|
2020-07-17 15:07:13 +03:00
|
|
|
${NO_STRIP}
|
2020-01-22 06:53:03 +03:00
|
|
|
COMMENT "Running macdeployqt..."
|
|
|
|
)
|
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
|
2019-09-30 10:45:41 +03:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop DESTINATION ${DATADIR}/applications )
|
2018-01-15 21:43:33 +03:00
|
|
|
|
2018-01-25 18:20:35 +03:00
|
|
|
configure_file(owncloud.xml.in ${APPLICATION_EXECUTABLE}.xml)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_EXECUTABLE}.xml DESTINATION ${DATADIR}/mime/packages )
|
2018-01-15 21:43:33 +03:00
|
|
|
|
|
|
|
find_package(ECM 1.2.0 CONFIG)
|
|
|
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
find_package(SharedMimeInfo)
|
|
|
|
if(SharedMimeInfo_FOUND)
|
|
|
|
update_xdg_mimetypes( ${DATADIR}/mime/packages )
|
|
|
|
endif(SharedMimeInfo_FOUND)
|
2014-07-11 02:31:24 +04:00
|
|
|
endif()
|