diff options
author | Daniel Molkentin <danimo@owncloud.com> | 2014-07-11 02:31:24 +0400 |
---|---|---|
committer | Daniel Molkentin <danimo@owncloud.com> | 2014-07-11 13:07:31 +0400 |
commit | df3c3bca025a7cdb5f20e55fc2ecc37618e7cc8d (patch) | |
tree | 22fa58b5a09ec9f93ad376dce2edd6272483fc1a /src/CMakeLists.txt | |
parent | d1b991e1984ef0c4ed803c5c5ead1ce3bfe00266 (diff) |
Split into three separate projects: library, gui and cmd
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 445 |
1 files changed, 5 insertions, 440 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ec15a250a..118f47809 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,416 +1,11 @@ -set(CMAKE_AUTOMOC TRUE) -include(GenerateExportHeader) - -include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) - -qt_add_resources(MIRALL_RC_SRC ../mirall.qrc) -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_CURRENT_SOURCE_DIR}/../theme) -endif() +# TODO: OSX and LIB_ONLY seem to require this to go to binary dir only +set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) -if ( APPLE ) - list(APPEND OS_SPECIFIC_LINK_LIBRARIES - /System/Library/Frameworks/CoreServices.framework - /System/Library/Frameworks/Foundation.framework - /System/Library/Frameworks/AppKit.framework - ) -endif() - -IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - list(APPEND OS_SPECIFIC_LINK_LIBRARIES - inotify - ) -ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - -if(SPARKLE_FOUND AND NOT BUILD_LIBRARIES_ONLY) - list (APPEND OS_SPECIFIC_LINK_LIBRARIES ${SPARKLE_LIBRARY}) -endif() - -set(3rdparty_SRC -3rdparty/qtsingleapplication/qtsingleapplication.cpp -3rdparty/qtsingleapplication/qtlocalpeer.cpp -3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp -3rdparty/qtlockedfile/qtlockedfile.cpp -3rdparty/fancylineedit/fancylineedit.cpp -3rdparty/QProgressIndicator/QProgressIndicator.cpp -) - -if (APPLE) - list(APPEND 3rdparty_SRC - 3rdparty/qtmacgoodies/src/macpreferenceswindow.mm - 3rdparty/qtmacgoodies/src/macstandardicon.mm - ) -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_CURRENT_SOURCE_DIR}/3rdparty/qtlockedfile - ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication - ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/QProgressIndicator - ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/fancylineedit - ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qjson - ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtmacgoodies/src - ) - -set(libsync_SRCS - mirall/syncresult.cpp - mirall/mirallconfigfile.cpp - mirall/syncengine.cpp - mirall/owncloudpropagator.cpp - mirall/propagatorjobs.cpp - mirall/propagator_qnam.cpp - mirall/propagator_legacy.cpp - mirall/syncjournalfilerecord.cpp - mirall/syncjournaldb.cpp - mirall/theme.cpp - mirall/owncloudtheme.cpp - mirall/logger.cpp - mirall/utility.cpp - mirall/filesystem.cpp - mirall/connectionvalidator.cpp - mirall/progressdispatcher.cpp - mirall/mirallaccessmanager.cpp - mirall/networkjobs.cpp - mirall/account.cpp - mirall/quotainfo.cpp - mirall/clientproxy.cpp - mirall/cookiejar.cpp - mirall/syncfilestatus.cpp - creds/dummycredentials.cpp - creds/abstractcredentials.cpp - creds/credentialsfactory.cpp - creds/http/httpconfigfile.cpp - creds/credentialscommon.cpp - 3rdparty/qjson/json.cpp -) -if(TOKEN_AUTH_ONLY) - set (libsync_SRCS - ${libsync_SRCS} - creds/tokencredentials.cpp - ) -else() - set (libsync_SRCS - ${libsync_SRCS} - creds/httpcredentials.cpp - creds/shibbolethcredentials.cpp - creds/shibboleth/shibbolethwebview.cpp - creds/shibboleth/shibbolethrefresher.cpp - creds/shibboleth/authenticationdialog.cpp - creds/shibboleth/shibbolethuserjob.cpp - ) -endif() - -# These headers are installed for libowncloudsync to be used by 3rd party apps -set(owncloudsync_HEADERS - mirall/account.h - mirall/syncengine.h - mirall/mirallconfigfile.h - mirall/networkjobs.h - mirall/progressdispatcher.h - mirall/syncfileitem.h - mirall/syncjournaldb.h - mirall/syncresult.h -) - -set(creds_HEADERS - creds/abstractcredentials.h - creds/httpcredentials.h -) - -IF (NOT APPLE) - INSTALL( - FILES ${owncloudsync_HEADERS} - DESTINATION ${INCLUDE_INSTALL_DIR}/${synclib_NAME}/mirall - ) - INSTALL( - FILES ${creds_HEADERS} - DESTINATION ${INCLUDE_INSTALL_DIR}/${synclib_NAME}/creds - ) -ENDIF(NOT APPLE) - -list(APPEND libsync_LINK_TARGETS - ${QT_LIBRARIES} - ocsync - httpbf - ${OS_SPECIFIC_LINK_LIBRARIES} -) - -if(QTKEYCHAIN_FOUND OR QT5KEYCHAIN_FOUND) - list(APPEND libsync_LINK_TARGETS ${QTKEYCHAIN_LIBRARY}) - include_directories(${QTKEYCHAIN_INCLUDE_DIR}) -endif() - -if(NEON_FOUND) - list(APPEND libsync_LINK_TARGETS ${NEON_LIBRARIES}) - include_directories(${NEON_INCLUDE_DIRS}) - - if(NEON_WITH_LFS) - add_definitions(-DNE_LFS) - endif() - -endif() - -add_library(${synclib_NAME} SHARED ${libsync_SRCS} ${syncMoc}) -GENERATE_EXPORT_HEADER( ${synclib_NAME} - BASE_NAME ${synclib_NAME} - EXPORT_MACRO_NAME OWNCLOUDSYNC_EXPORT - EXPORT_FILE_NAME owncloudlib.h - STATIC_DEFINE OWNCLOUD_BUILT_AS_STATIC -) - - -if(TOKEN_AUTH_ONLY) - qt5_use_modules(${synclib_NAME} Network Xml Sql) -else() - qt5_use_modules(${synclib_NAME} Widgets Network Xml WebKitWidgets Sql) -endif() - -set_target_properties( ${synclib_NAME} PROPERTIES - VERSION ${MIRALL_VERSION} - SOVERSION ${MIRALL_SOVERSION} -) -set_target_properties( ${synclib_NAME} PROPERTIES - INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/${APPLICATION_EXECUTABLE}" ) - -target_link_libraries(${synclib_NAME} ${libsync_LINK_TARGETS} ) - -if(BUILD_LIBRARIES_ONLY) - #add_library(${synclib_NAME}_static STATIC ${libsync_SRCS} ${syncMoc}) - #qt5_use_modules(${synclib_NAME}_static Widgets Network Xml Sql) - - #set_target_properties( ${synclib_NAME}_static PROPERTIES - # VERSION ${MIRALL_VERSION} - # SOVERSION ${MIRALL_SOVERSION} - #) - - #target_link_libraries(${synclib_NAME}_static ${libsync_LINK_TARGETS} ) -endif() - - - -if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) - install(TARGETS ${synclib_NAME} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - if(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() -else() - install(TARGETS ${synclib_NAME} DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/MacOS) - if (SPARKLE_FOUND) - install(DIRECTORY "${SPARKLE_LIBRARY}" - DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks") - endif (SPARKLE_FOUND) - -endif() - -set(mirall_UI -mirall/folderwizardsourcepage.ui -mirall/folderwizardtargetpage.ui -mirall/sslerrordialog.ui -mirall/settingsdialog.ui -mirall/generalsettings.ui -mirall/networksettings.ui -mirall/accountsettings.ui -mirall/ignorelisteditor.ui -mirall/protocolwidget.ui -wizard/owncloudsetupnocredspage.ui -wizard/owncloudhttpcredspage.ui -wizard/owncloudwizardresultpage.ui -wizard/owncloudadvancedsetuppage.ui -) - -qt_wrap_ui(mirall_UI_SRCS ${mirall_UI}) - -set(mirall_SRCS - mirall/application.cpp - mirall/systray.cpp - mirall/folderman.cpp - mirall/folder.cpp - mirall/folderwatcher.cpp - mirall/folderwizard.cpp - mirall/folderstatusmodel.cpp - mirall/protocolwidget.cpp - mirall/openfilemanager.cpp - wizard/owncloudwizard.cpp - wizard/owncloudsetuppage.cpp - wizard/owncloudhttpcredspage.cpp - wizard/abstractcredswizardpage.cpp - wizard/owncloudwizardresultpage.cpp - wizard/owncloudwizardcommon.cpp - wizard/owncloudshibbolethcredspage.cpp - wizard/owncloudadvancedsetuppage.cpp - mirall/owncloudsetupwizard.cpp - mirall/sslerrordialog.cpp - mirall/logbrowser.cpp - mirall/settingsdialog.cpp - mirall/generalsettings.cpp - mirall/networksettings.cpp - mirall/accountsettings.cpp - mirall/ignorelisteditor.cpp - mirall/owncloudgui.cpp - mirall/socketapi.cpp - mirall/sslbutton.cpp - mirall/syncrunfilelog.cpp -) - - -set(updater_SRCS - updater/updateinfo.cpp - updater/updater.cpp - updater/ocupdater.cpp -) - -IF( APPLE ) - list(APPEND mirall_SRCS mirall/cocoainitializer_mac.mm) - - list(APPEND mirall_SRCS mirall/settingsdialogmac.cpp) - - 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 ) -set(mirall_SRCS ${mirall_SRCS} mirall/folderwatcher_linux.cpp) -ENDIF() -IF( WIN32 ) -set(mirall_SRCS ${mirall_SRCS} mirall/folderwatcher_win.cpp) -ENDIF() -IF( APPLE ) -list(APPEND mirall_SRCS mirall/folderwatcher_mac.cpp) -ENDIF() - -# csync is required. -include_directories(../csync/src ../csync/src/httpbf/src ${CMAKE_CURRENT_BINARY_DIR}/../csync ${CMAKE_CURRENT_BINARY_DIR}/../csync/src ) -include_directories(${3rdparty_INC}) - -qt_add_translation(mirall_I18N ${TRANSLATIONS}) - -set( final_src - ${MIRALL_RC_SRC} - ${mirall_SRCS} - ${mirall_UI_SRCS} - ${mirallMoc} - ${mirall_I18N} - ${3rdparty_SRC} - ${3rdparty_MOC} -) - -# add executable icon on windows and osx -include( AddAppIconMacro ) -set(ownCloud_old ${ownCloud}) - -# set an icon_app_name. For historical reasons we can not use the -# 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) - -if(NOT BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) - set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") - - 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) - - install(FILES ${mirall_I18N} DESTINATION share/${APPLICATION_EXECUTABLE}/i18n) - - # 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}) -elseif(NOT BUILD_LIBRARIES_ONLY) - set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") - if (Qt5Core_FOUND) - include(DeployQt5) - else(Qt5Core_FOUND) - include(DeployQt4) - endif(Qt5Core_FOUND) - - set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. - 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) - install(FILES ${mirall_I18N} DESTINATION ${QM_DIR}) - file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) - install(FILES ${qt_I18N} DESTINATION ${QM_DIR}) - file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm) - install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR}) -endif() - -if(NOT BUILD_LIBRARIES_ONLY) - add_library(updater STATIC ${updater_SRCS} ${updaterMoc}) - target_link_libraries(updater ${synclib_NAME}) - qt5_use_modules(updater Widgets Network Xml) - - set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} - ) - set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES - INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/${APPLICATION_EXECUTABLE}" ) - - 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} ) - - install(TARGETS ${APPLICATION_EXECUTABLE} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - BUNDLE DESTINATION "." - ) -endif() - - -#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 -if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) - if(Qt5Core_FOUND) - install_qt5_executable(${OWNCLOUD_OSX_BUNDLE} "qtaccessiblewidgets;qsqlite;qcocoa") - else(Qt5Core_FOUND) - install_qt4_executable(${OWNCLOUD_OSX_BUNDLE} "qtaccessiblewidgets;qsqlite") - endif(Qt5Core_FOUND) -endif() +add_subdirectory(libsync) +add_subdirectory(gui) +add_subdirectory(cmd) find_program(KRAZY2_EXECUTABLE krazy2) if(KRAZY2_EXECUTABLE) @@ -421,33 +16,3 @@ if(KRAZY2_EXECUTABLE) ${PROJECT_SOURCE_DIR}/src/mirall/*.cpp ) endif() - -set(owncloudcmd_NAME ${APPLICATION_EXECUTABLE}cmd) -set(OWNCLOUDCMD_SRC owncloudcmd/simplesslerrorhandler.cpp owncloudcmd/owncloudcmd.cpp) -if(NOT BUILD_LIBRARIES_ONLY) - - add_executable(${owncloudcmd_NAME} ${OWNCLOUDCMD_SRC}) - qt5_use_modules(${owncloudcmd_NAME} Network Sql) - set_target_properties(${owncloudcmd_NAME} PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} ) - set_target_properties(${owncloudcmd_NAME} PROPERTIES - INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/${APPLICATION_EXECUTABLE}" ) - - target_link_libraries(${owncloudcmd_NAME} ${synclib_NAME}) -endif() - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mirall) -if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) - install(TARGETS ${owncloudcmd_NAME} DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/MacOS) - if (SPARKLE_FOUND) - install(FILES ${CMAKE_SOURCE_DIR}/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist - DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources) - install(FILES ${CMAKE_SOURCE_DIR}/admin/osx/sparkle/dsa_pub.pem - DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources) - endif() -elseif(NOT BUILD_LIBRARIES_ONLY) - install(TARGETS ${owncloudcmd_NAME} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif() |