diff options
-rw-r--r-- | cmake/modules/QtVersionAbstraction.cmake | 209 | ||||
-rw-r--r-- | src/CMakeLists.txt | 15 | ||||
-rw-r--r-- | test/CMakeLists.txt | 31 |
3 files changed, 76 insertions, 179 deletions
diff --git a/cmake/modules/QtVersionAbstraction.cmake b/cmake/modules/QtVersionAbstraction.cmake index 5bd853c84..0a13fe5e0 100644 --- a/cmake/modules/QtVersionAbstraction.cmake +++ b/cmake/modules/QtVersionAbstraction.cmake @@ -5,67 +5,47 @@ include (MacroOptionalFindPackage) include (MacroLogFeature) -option(BUILD_WITH_QT4 "Build with Qt4 no matter if Qt5 was found" OFF) - -if( BUILD_WITH_QT4 ) - message(STATUS "Search for Qt5 was disabled by option BUILD_WITH_QT4") -else( BUILD_WITH_QT4 ) - find_package(Qt5Core QUIET) -endif( BUILD_WITH_QT4 ) - -if( Qt5Core_FOUND ) - message(STATUS "Found Qt5 core, checking for further dependencies...") - find_package(Qt5Network REQUIRED) - find_package(Qt5Xml REQUIRED) - find_package(Qt5Concurrent REQUIRED) - if(UNIT_TESTING) - find_package(Qt5Test REQUIRED) - endif() - if(NOT TOKEN_AUTH_ONLY) - find_package(Qt5Widgets REQUIRED) - if(APPLE) - find_package(Qt5MacExtras REQUIRED) - endif(APPLE) - - if(NOT NO_SHIBBOLETH) - find_package(Qt5WebKitWidgets) - find_package(Qt5WebKit) - if(NOT Qt5WebKitWidgets_FOUND) - message(FATAL_ERROR "Qt5WebKit required for Shibboleth. Use -DNO_SHIBBOLETH=1 to disable it.") - endif() +find_package(Qt5Core REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5Xml REQUIRED) +find_package(Qt5Concurrent REQUIRED) +if(UNIT_TESTING) + find_package(Qt5Test REQUIRED) +endif() + +if(NOT TOKEN_AUTH_ONLY) + find_package(Qt5Widgets REQUIRED) + if(APPLE) + find_package(Qt5MacExtras REQUIRED) + endif(APPLE) + + if(NOT NO_SHIBBOLETH) + find_package(Qt5WebKitWidgets) + find_package(Qt5WebKit) + if(NOT Qt5WebKitWidgets_FOUND) + message(FATAL_ERROR "Qt5WebKit required for Shibboleth. Use -DNO_SHIBBOLETH=1 to disable it.") endif() endif() +endif() -else( Qt5Core_FOUND ) - if(WIN32 OR APPLE) - if (NOT BUILD_WITH_QT4) - message(FATAL_ERROR "Qt 5 not found, but application depends on Qt5 on Windows and Mac OS X") - endif () - endif(WIN32 OR APPLE) -endif( Qt5Core_FOUND ) - - -if( Qt5Core_FOUND ) - message(STATUS "Using Qt 5!") - - # We need this to find the paths to qdbusxml2cpp and co - if (WITH_DBUS) - find_package(Qt5DBus REQUIRED) - include_directories(${Qt5DBus_INCLUDES}) - add_definitions(${Qt5DBus_DEFINITIONS}) - endif (WITH_DBUS) - include_directories(${Qt5Core_INCLUDES}) - add_definitions(${Qt5Core_DEFINITIONS}) - if (NOT WIN32) #implied on Win32 - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") - endif(NOT WIN32) +# We need this to find the paths to qdbusxml2cpp and co +if (WITH_DBUS) + find_package(Qt5DBus REQUIRED) + include_directories(${Qt5DBus_INCLUDES}) + add_definitions(${Qt5DBus_DEFINITIONS}) +endif (WITH_DBUS) +include_directories(${Qt5Core_INCLUDES}) +add_definitions(${Qt5Core_DEFINITIONS}) +if (NOT WIN32) #implied on Win32 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +endif(NOT WIN32) # set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}") - if(APPLE AND NOT TOKEN_AUTH_ONLY) - include_directories(${Qt5MacExtras_INCLUDE_DIRS}) - add_definitions(${Qt5MacExtras_DEFINITIONS}) - set (QT_LIBRARIES ${QT_LIBRARIES} ${Qt5MacExtras_LIBRARIES}) - endif() +if(APPLE AND NOT TOKEN_AUTH_ONLY) + include_directories(${Qt5MacExtras_INCLUDE_DIRS}) + add_definitions(${Qt5MacExtras_DEFINITIONS}) + set (QT_LIBRARIES ${QT_LIBRARIES} ${Qt5MacExtras_LIBRARIES}) +endif() if(NOT BUILD_LIBRARIES_ONLY) macro(qt_wrap_ui) @@ -76,9 +56,9 @@ else() SET(QT_UIC_EXECUTABLE "") endif() - macro(qt_add_resources) - qt5_add_resources(${ARGN}) - endmacro() +macro(qt_add_resources) + qt5_add_resources(${ARGN}) +endmacro() if(NOT TOKEN_AUTH_ONLY) find_package(Qt5LinguistTools) @@ -95,103 +75,30 @@ else() endmacro() endif() - macro(qt_add_dbus_interface) - qt5_add_dbus_interface(${ARGN}) - endmacro() - - macro(qt_add_dbus_adaptor) - qt5_add_dbus_adaptor(${ARGN}) - endmacro() - - macro(qt_wrap_cpp) - qt5_wrap_cpp(${ARGN}) - endmacro() - - macro(install_qt_executable) - install_qt5_executable(${ARGN}) - endmacro() +macro(qt_add_dbus_interface) + qt5_add_dbus_interface(${ARGN}) +endmacro() - macro(setup_qt) - endmacro() +macro(qt_add_dbus_adaptor) + qt5_add_dbus_adaptor(${ARGN}) +endmacro() - set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}") +macro(qt_wrap_cpp) + qt5_wrap_cpp(${ARGN}) +endmacro() - #Enable deprecated symbols - add_definitions("-DQT_DISABLE_DEPRECATED_BEFORE=0") +macro(install_qt_executable) + install_qt5_executable(${ARGN}) +endmacro() - add_definitions("-DQT_USE_QSTRINGBUILDER") #optimize string concatenation - add_definitions("-DQT_MESSAGELOGCONTEXT") #enable function name and line number in debug output -endif( Qt5Core_FOUND ) +macro(setup_qt) +endmacro() -if(NOT Qt5Core_FOUND) - message(STATUS "Could not find Qt5, searching for Qt4 instead...") +set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}") - set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork" "QtGui" "QtWebkit") - if( BUILD_TESTS ) - list(APPEND NEEDED_QT4_COMPONENTS "QtTest") - endif() +#Enable deprecated symbols +add_definitions("-DQT_DISABLE_DEPRECATED_BEFORE=0") - find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} ) - macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://www.qt-project.org" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too") - - macro(qt5_use_modules) - endmacro() - - macro(qt_wrap_ui) - qt4_wrap_ui(${ARGN}) - endmacro() - - macro(qt_add_resources) - qt4_add_resources(${ARGN}) - endmacro() - - macro(qt_add_translation) - qt4_add_translation(${ARGN}) - endmacro() - - macro(qt_add_dbus_interface) - qt4_add_dbus_interface(${ARGN}) - endmacro() - - macro(qt_add_dbus_adaptor) - qt4_add_dbus_adaptor(${ARGN}) - endmacro() - - macro(qt_wrap_cpp) - qt4_wrap_cpp(${ARGN}) - endmacro() - - macro(install_qt_executable) - install_qt4_executable(${ARGN}) - endmacro() - - macro(setup_qt) - set(QT_USE_QTGUI TRUE) - set(QT_USE_QTSQL TRUE) - set(QT_USE_QTNETWORK TRUE) - set(QT_USE_QTXML TRUE) - set(QT_USE_QTWEBKIT TRUE) - set(QT_USE_QTDBUS TRUE) - - include( ${QT_USE_FILE} ) - endmacro() - - if (CMAKE_COMPILER_IS_GNUCC) - execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion - OUTPUT_VARIABLE GCC_VERSION) - if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7) - add_definitions("-DQ_DECL_OVERRIDE=override") - else() - add_definitions("-DQ_DECL_OVERRIDE=") - endif() - else() #clang or others - add_definitions("-DQ_DECL_OVERRIDE=override") - endif() - -endif() +add_definitions("-DQT_USE_QSTRINGBUILDER") #optimize string concatenation +add_definitions("-DQT_MESSAGELOGCONTEXT") #enable function name and line number in debug output -if( Qt5Core_DIR ) - set( HAVE_QT5 TRUE ) -else( Qt5Core_DIR ) - set( HAVE_QT5 FALSE ) -endif( Qt5Core_DIR ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4a7d756d4..1b53279d2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,28 +6,19 @@ set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) include(QtVersionAbstraction) setup_qt() -if(HAVE_QT5 AND NOT BUILD_WITH_QT4) - if (${Qt5Core_VERSION_MAJOR} EQUAL "5") - if (${Qt5Core_VERSION_MINOR} EQUAL "4" OR ${Qt5Core_VERSION_MINOR} GREATER 4) +if (${Qt5Core_VERSION_MAJOR} EQUAL "5") + if (${Qt5Core_VERSION_MINOR} EQUAL "6" OR ${Qt5Core_VERSION_MINOR} GREATER 6) else() - message(STATUS "If possible compile me with Qt 5.4 or higher.") + message(STATUS "If possible compile me with Qt 5.6 or higher.") endif() - endif() -else() - message(STATUS "If possible compile me with Qt 5.4 or higher.") endif() - if (APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() if(NOT TOKEN_AUTH_ONLY) - if (Qt5Core_DIR) find_package(Qt5Keychain REQUIRED) - else() - find_package(QtKeychain REQUIRED) - endif() endif() add_subdirectory(libsync) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2f94501ee..c9726d584 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,22 +33,21 @@ owncloud_add_test(XmlParse "") owncloud_add_test(ChecksumValidator "") owncloud_add_test(ExcludedFiles "") -if(HAVE_QT5 AND NOT BUILD_WITH_QT4) - owncloud_add_test(FileSystem "") - owncloud_add_test(Utility "") - owncloud_add_test(SyncEngine "syncenginetestutils.h") - owncloud_add_test(SyncFileStatusTracker "syncenginetestutils.h") - owncloud_add_test(ChunkingNg "syncenginetestutils.h") - owncloud_add_test(UploadReset "syncenginetestutils.h") - owncloud_add_test(AllFilesDeleted "syncenginetestutils.h") - owncloud_add_test(FolderWatcher "${FolderWatcher_SRC}") - - if( UNIX AND NOT APPLE ) - owncloud_add_test(InotifyWatcher "${FolderWatcher_SRC}") - endif(UNIX AND NOT APPLE) - - owncloud_add_benchmark(LargeSync "syncenginetestutils.h") -endif(HAVE_QT5 AND NOT BUILD_WITH_QT4) + +owncloud_add_test(FileSystem "") +owncloud_add_test(Utility "") +owncloud_add_test(SyncEngine "syncenginetestutils.h") +owncloud_add_test(SyncFileStatusTracker "syncenginetestutils.h") +owncloud_add_test(ChunkingNg "syncenginetestutils.h") +owncloud_add_test(UploadReset "syncenginetestutils.h") +owncloud_add_test(AllFilesDeleted "syncenginetestutils.h") +owncloud_add_test(FolderWatcher "${FolderWatcher_SRC}") + +if( UNIX AND NOT APPLE ) + owncloud_add_test(InotifyWatcher "${FolderWatcher_SRC}") +endif(UNIX AND NOT APPLE) + +owncloud_add_benchmark(LargeSync "syncenginetestutils.h") SET(FolderMan_SRC ../src/gui/folderman.cpp) list(APPEND FolderMan_SRC ../src/gui/folder.cpp ) |