QtVersionAbstraction.cmake 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. include (MacroOptionalFindPackage)
  2. include (MacroLogFeature)
  3. option(BUILD_WITH_QT4 "Build with Qt4 no matter if Qt5 was found" ON)
  4. if( NOT BUILD_WITH_QT4 )
  5. find_package(Qt5Core QUIET)
  6. if( Qt5Core_DIR )
  7. find_package(Qt5Widgets QUIET)
  8. find_package(Qt5Quick QUIET)
  9. find_package(Qt5PrintSupport QUIET)
  10. find_package(Qt5WebKit QUIET)
  11. find_package(Qt5Location QUIET)
  12. find_package(Qt5Network QUIET)
  13. find_package(Qt5Sensors QUIET)
  14. # find_package(Qt5WebKitWidgets QUIET)
  15. message(STATUS "Using Qt 5!")
  16. include_directories(${Qt5Widgets_INCLUDES})
  17. add_definitions(${Qt5Widgets_DEFINITIONS})
  18. set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
  19. # We need this to find the paths to qdbusxml2cpp and co
  20. find_package(Qt5DBus REQUIRED)
  21. macro(qt_wrap_ui)
  22. qt5_wrap_ui(${ARGN})
  23. endmacro()
  24. macro(qt_add_resources)
  25. qt5_add_resources(${ARGN})
  26. endmacro()
  27. # find_package(Qt5LinguistTools REQUIRED)
  28. macro(qt_add_translation)
  29. # qt5_add_translation(${ARGN})
  30. endmacro()
  31. macro(qt_add_dbus_interface)
  32. qt5_add_dbus_interface(${ARGN})
  33. endmacro()
  34. macro(qt_add_dbus_adaptor)
  35. qt5_add_dbus_adaptor(${ARGN})
  36. endmacro()
  37. macro(setup_qt)
  38. endmacro()
  39. set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
  40. endif()
  41. endif()
  42. if( NOT Qt5Core_DIR )
  43. message(STATUS "Could not find Qt5, searching for Qt4 instead...")
  44. set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork" "QtGui" "QtWebkit")
  45. if( BUILD_TESTS )
  46. list(APPEND NEEDED_QT4_COMPONENTS "QtTest")
  47. endif()
  48. include(${QT_USE_FILE})
  49. macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
  50. macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt.nokia.com" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
  51. macro(qt5_use_modules)
  52. endmacro()
  53. macro(qt_wrap_ui)
  54. qt4_wrap_ui(${ARGN})
  55. endmacro()
  56. macro(qt_add_resources)
  57. qt4_add_resources(${ARGN})
  58. endmacro()
  59. macro(qt_add_translation)
  60. qt4_add_translation(${ARGN})
  61. endmacro()
  62. macro(qt_add_dbus_interface)
  63. qt4_add_dbus_interface(${ARGN})
  64. endmacro()
  65. macro(qt_add_dbus_adaptor)
  66. qt4_add_dbus_adaptor(${ARGN})
  67. endmacro()
  68. macro(setup_qt)
  69. set(QT_DONT_USE_QTGUI TRUE)
  70. set(QT_USE_QTSQL TRUE)
  71. set(QT_USE_QTNETWORK TRUE)
  72. set(QT_USE_QTXML TRUE)
  73. set(QT_USE_QTWEBKIT TRUE)
  74. include( ${QT_USE_FILE} )
  75. endmacro()
  76. endif()
  77. if( Qt5Core_DIR )
  78. set( HAVE_QT5 TRUE )
  79. else( Qt5Core_DIR )
  80. set( HAVE_QT5 FALSE )
  81. endif( Qt5Core_DIR )