Warning, /graphics/kruler/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 # KDE Application Version, managed by release script
0004 set(RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set(RELEASE_SERVICE_VERSION_MINOR "04")
0006 set(RELEASE_SERVICE_VERSION_MICRO "70")
0007 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0008
0009 project(kruler VERSION ${RELEASE_SERVICE_VERSION})
0010
0011 set(QT_MIN_VERSION "6.5.0")
0012 set(KF_MIN_VERSION "5.240.0")
0013
0014 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
0015 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0016
0017 include(KDEInstallDirs)
0018 include(KDECMakeSettings)
0019 include(KDECompilerSettings NO_POLICY_SCOPE)
0020 include(KDEClangFormat)
0021 include(KDEGitCommitHooks)
0022 include(ECMInstallIcons)
0023 include(FeatureSummary)
0024 include(ECMAddAppIcon)
0025 include(ECMSetupVersion)
0026 include(ECMDeprecationSettings)
0027
0028 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0029 Core
0030 Widgets
0031 )
0032
0033 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS
0034 CoreAddons
0035 I18n
0036 Notifications
0037 StatusNotifierItem
0038 WindowSystem
0039 XmlGui
0040 )
0041
0042
0043 find_package(KF6DocTools ${KF_MIN_VERSION})
0044 set_package_properties(KF6DocTools PROPERTIES DESCRIPTION
0045 "Tools to generate documentation"
0046 TYPE OPTIONAL
0047 )
0048 if (NOT APPLE)
0049 option(WITHOUT_X11 "Build without X11 integration (skips finding X11)" OFF)
0050 if (NOT WITHOUT_X11)
0051 find_package(XCB COMPONENTS XCB)
0052 set (KRULER_HAVE_X11 ${XCB_FOUND})
0053 endif()
0054 endif()
0055
0056 ecm_set_disabled_deprecation_versions(QT 6.5
0057 KF 5.240.0
0058 )
0059
0060 add_definitions(-DTRANSLATION_DOMAIN="kruler")
0061
0062 configure_file(krulerconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/krulerconfig.h)
0063
0064 add_subdirectory( pics )
0065
0066 if (KF6DocTools_FOUND)
0067 add_subdirectory(doc)
0068 endif()
0069
0070 ecm_setup_version(${RELEASE_SERVICE_VERSION}
0071 VARIABLE_PREFIX KRULER
0072 VERSION_HEADER kruler_version.h
0073 )
0074
0075 add_executable(kruler)
0076 target_sources(kruler PRIVATE
0077 klineal.cpp
0078 krulersystemtray.cpp
0079 klineal.h
0080 krulersystemtray.h
0081 main.cpp
0082 )
0083
0084 ki18n_wrap_ui(kruler
0085 cfg_appearance.ui
0086 cfg_advanced.ui
0087 )
0088
0089 kconfig_add_kcfg_files(kruler kruler.kcfgc)
0090
0091 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/*-apps-kruler.png")
0092 ecm_add_app_icon(kruler ICONS ${ICONS_SRCS})
0093
0094 target_link_libraries(kruler
0095 KF6::CoreAddons
0096 KF6::I18n
0097 KF6::Notifications
0098 KF6::WindowSystem
0099 KF6::XmlGui
0100 KF6::StatusNotifierItem
0101 )
0102 if(KRULER_HAVE_X11)
0103 target_link_libraries(kruler
0104 ${XCB_LIBRARIES}
0105 Qt6::GuiPrivate
0106 )
0107 endif()
0108
0109 install(TARGETS kruler ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0110
0111 install( PROGRAMS org.kde.kruler.desktop DESTINATION ${KDE_INSTALL_APPDIR} )
0112 install( FILES org.kde.kruler.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )
0113 install( FILES kruler.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} )
0114 install( FILES move.wav DESTINATION ${KDE_INSTALL_DATADIR}/kruler/sounds )
0115
0116 ki18n_install(po)
0117 if (KF6DocTools_FOUND)
0118 kdoctools_install(po)
0119 endif()
0120
0121 # add clang-format target for all our real source files
0122 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0123 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0124 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0125
0126 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)