2 cmake_minimum_required(VERSION 3.0.2)
3 set(CMAKE_AUTOMOC TRUE)
4 set(CMAKE_AUTOUIC TRUE)
5 set(CMAKE_AUTORCC TRUE)
8 option(WITH_DOC "Build documentation (requires Doxygen)" ON)
12 set(dbusmenu_qt_VERSION_MAJOR 0)
13 set(dbusmenu_qt_VERSION_MINOR 9)
14 set(dbusmenu_qt_VERSION_PATCH 2)
15 set(dbusmenu_qt_VERSION ${dbusmenu_qt_VERSION_MAJOR}.${dbusmenu_qt_VERSION_MINOR}.${dbusmenu_qt_VERSION_PATCH})
17 find_package(Katie REQUIRED)
20 ${QT_QTCORE_INCLUDE_DIR}
21 ${QT_QTDBUS_INCLUDE_DIR}
22 ${QT_QTGUI_INCLUDE_DIR}
24 add_definitions(${QT_DEFINITIONS})
26 set(QT_SUFFIX "katie")
28 include (CheckCXXCompilerFlag)
29 # Check some compiler flags
30 check_cxx_compiler_flag(-fvisibility=hidden __DBUSMENU_HAVE_GCC_VISIBILITY)
31 if (__DBUSMENU_HAVE_GCC_VISIBILITY AND NOT WIN32)
32 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
33 endif (__DBUSMENU_HAVE_GCC_VISIBILITY AND NOT WIN32)
35 check_cxx_compiler_flag(-Woverloaded-virtual __DBUSMENU_HAVE_W_OVERLOADED_VIRTUAL)
36 if (__DBUSMENU_HAVE_W_OVERLOADED_VIRTUAL)
37 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual")
38 endif (__DBUSMENU_HAVE_W_OVERLOADED_VIRTUAL)
40 check_cxx_compiler_flag(-std=c++11 __DBUSMENU_HAVE_CXX11)
41 if (__DBUSMENU_HAVE_CXX11)
42 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
43 endif (__DBUSMENU_HAVE_CXX11)
45 include(CMakePackageConfigHelpers)
46 include(GNUInstallDirs)
47 set(LIB_DESTINATION "${CMAKE_INSTALL_LIBDIR}")
48 set(CMAKECONFIG_INSTALL_DIR "${LIB_DESTINATION}/cmake/dbusmenu-${QT_SUFFIX}")
49 set(INCLUDE_INSTALL_DIR "include/dbusmenu-${QT_SUFFIX}")
51 configure_file(dbusmenu-qt.pc.in ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}.pc @ONLY)
54 FILES ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}.pc
55 DESTINATION ${LIB_DESTINATION}/pkgconfig
59 add_subdirectory(tools)
63 add_subdirectory(tests)
67 configure_file(Doxyfile.in ${CMAKE_BINARY_DIR}/Doxyfile @ONLY)
69 add_custom_target(doc ALL doxygen
70 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
74 DIRECTORY ${CMAKE_BINARY_DIR}/html/
75 DESTINATION share/doc/libdbusmenu-${QT_SUFFIX}-doc
79 # Generate dbusmenu-qt-config* files
80 configure_package_config_file(
81 dbusmenu-qt-config.cmake.in
82 ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config.cmake
83 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
84 PATH_VARS INCLUDE_INSTALL_DIR
87 write_basic_package_version_file(
88 ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config-version.cmake
89 VERSION ${dbusmenu_qt_VERSION}
90 COMPATIBILITY SameMajorVersion
93 # Install dbusmenu-qt-config* files
95 ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config.cmake
96 ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config-version.cmake
97 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"