diff --git a/CMakeLists.txt b/CMakeLists.txt index e072427e..4221b29f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,17 +4,26 @@ cmake_minimum_required(VERSION 2.4.5) option(BUILD_TESTS "Create test" ON) -set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) - -set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install") - -set(PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") - set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) -find_package(Qt4 REQUIRED) -# properly set up compile flags (QT_DEBUG/QT_NO_DEBUG, ...) -include(${QT_USE_FILE}) +find_package(Qt5Core QUIET) +if (Qt5Core_FOUND) + message(STATUS "Building with Qt5 support") + find_package(ECM 0.0.6 REQUIRED NO_MODULE) + set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) + find_package(Qt5Transitional REQUIRED Core Network) + include(GNUInstallDirs) + set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") +else() + set(QT_MIN_VERSION "4.7.0") + find_package(Qt4 REQUIRED) + # properly set up compile flags (QT_DEBUG/QT_NO_DEBUG, ...) + include(${QT_USE_FILE}) + set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) + set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install") +endif() + +set(PKGCONFIG_INSTALL_PREFIX "${LIB_INSTALL_DIR}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") set(QCA_LIB_MAJOR_VERSION "2") set(QCA_LIB_MINOR_VERSION "0") @@ -148,7 +157,7 @@ add_subdirectory(src) add_subdirectory(tools) add_subdirectory(plugins) -if(BUILD_TESTS) +if(BUILD_TESTS AND NOT Qt5Core_FOUND) enable_testing() add_subdirectory(unittest) add_subdirectory(examples) diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake index 1c6a37f2..ec49bf2c 100644 --- a/cmake/modules/QcaMacro.cmake +++ b/cmake/modules/QcaMacro.cmake @@ -1,4 +1,16 @@ +IF (Qt5Core_FOUND) + # FindQt4.cmake wasn't used, so define it here + MACRO (QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) + SET(${_moc_INC_DIRS}) + GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) + + FOREACH(_current ${_inc_DIRS}) + SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) + ENDFOREACH(_current ${_inc_DIRS}) + ENDMACRO(QT4_GET_MOC_INC_DIRS) +ENDIF() + MACRO(MY_AUTOMOC _srcsList) QT4_GET_MOC_INC_DIRS(_moc_INCS) FOREACH (_current_FILE ${${_srcsList}}) diff --git a/src/support/synchronizer.cpp b/src/support/synchronizer.cpp index 7c48db6c..458b2f49 100644 --- a/src/support/synchronizer.cpp +++ b/src/support/synchronizer.cpp @@ -258,7 +258,11 @@ private: int id = timers[n].id; for(int i = 0; i < edtimers.count(); ++i) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + if(edtimers[i].timerId == id) +#else if(edtimers[i].first == id) +#endif { found = true; break; @@ -278,7 +282,11 @@ private: // added? for(int n = 0; n < edtimers.count(); ++n) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + int id = edtimers[n].timerId; +#else int id = edtimers[n].first; +#endif bool found = false; for(int i = 0; i < timers.count(); ++i) { @@ -293,7 +301,11 @@ private: { TimerInfo info; info.id = id; +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + info.interval = edtimers[n].interval; +#else info.interval = edtimers[n].second; +#endif info.time.start(); timers += info; #ifdef TIMERFIXER_DEBUG diff --git a/src/support/syncthread.cpp b/src/support/syncthread.cpp index a885fb0f..f534cf9d 100644 --- a/src/support/syncthread.cpp +++ b/src/support/syncthread.cpp @@ -32,7 +32,11 @@ QByteArray methodReturnType(const QMetaObject *obj, const QByteArray &method, co for(int n = 0; n < obj->methodCount(); ++n) { QMetaMethod m = obj->method(n); +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + QByteArray sig = m.methodSignature(); +#else QByteArray sig = m.signature(); +#endif int offset = sig.indexOf('('); if(offset == -1) continue;