Warning, /frameworks/kuserfeedback/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 set(KF_VERSION "6.0.0") # handled by release scripts 0003 set(KF_DEP_VERSION "5.249.0") # handled by release scripts 0004 project(KUserFeedback VERSION ${KF_VERSION}) 0005 0006 # ECM setup 0007 include(FeatureSummary) 0008 find_package(ECM ${KF_DEP_VERSION} NO_MODULE) 0009 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://invent.kde.org/frameworks/extra-cmake-modules") 0010 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 0011 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) 0012 0013 set(ENABLE_SURVEY_TARGET_EXPRESSIONS ON CACHE BOOL "Survey targeting expressions support is enabled by default.") 0014 set(ENABLE_PHP ON CACHE BOOL "Syntax checking of PHP server code.") 0015 set(ENABLE_PHP_UNIT ON CACHE BOOL "Unit tests for PHP server code.") 0016 set(ENABLE_DOCS ON CACHE BOOL "Generate documentation.") 0017 set(ENABLE_CONSOLE ON CACHE BOOL "Application console.") 0018 set(ENABLE_CLI ON CACHE BOOL "Command line interface support.") 0019 0020 set(CMAKE_AUTOMOC ON) 0021 set(CMAKE_AUTOUIC ON) 0022 set(CMAKE_AUTORCC ON) 0023 set(CMAKE_INCLUDE_CURRENT_DIR ON) 0024 set(CMAKE_CXX_STANDARD 17) 0025 0026 include(KDEInstallDirs) 0027 include(KDECMakeSettings) 0028 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) 0029 0030 include(ECMGenerateHeaders) 0031 include(ECMPoQmTools) 0032 include(ECMSetupVersion) 0033 include(ECMQueryQt) 0034 include(ECMGeneratePriFile) 0035 include(ECMQmlModule) 0036 include(FeatureSummary) 0037 include(GenerateExportHeader) 0038 0039 include(ECMQtDeclareLoggingCategory) 0040 0041 ecm_setup_version(PROJECT 0042 VARIABLE_PREFIX KUSERFEEDBACK 0043 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback_version.h" 0044 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6UserFeedbackConfigVersion.cmake" 0045 SOVERSION 6 0046 ) 0047 # 0048 # Dependencies 0049 # 0050 0051 # Dependencies 0052 set(REQUIRED_QT_VERSION 6.5.0) 0053 find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Network) 0054 find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS Widgets Charts Test Qml Svg PrintSupport) 0055 find_package(QmlLint) 0056 0057 if (ENABLE_DOCS) 0058 if (NOT CMAKE_CROSSCOMPILING) 0059 find_package(Qt6 NO_MODULE QUIET OPTIONAL_COMPONENTS Help) 0060 endif() 0061 0062 find_package(Qt6 CONFIG OPTIONAL_COMPONENTS ToolsTools) 0063 endif() 0064 0065 set_package_properties(Qt6 PROPERTIES URL "http://qt-project.org/") 0066 set_package_properties(Qt6Widgets PROPERTIES TYPE RECOMMENDED PURPOSE "Required for feedback configuration and notification widgets.") 0067 set_package_properties(Qt6Charts PROPERTIES TYPE RECOMMENDED PURPOSE "Required for UserFeedbackConsole.") 0068 0069 # debug suffixes for qmake compatibility 0070 if(WIN32) 0071 set(CMAKE_DEBUG_POSTFIX "d") 0072 elseif(APPLE) 0073 set(CMAKE_DEBUG_POSTFIX "_debug") 0074 endif() 0075 0076 add_definitions(-DQT_USE_QSTRINGBUILDER -DQT_USE_FAST_OPERATOR_PLUS -DQT_NO_CAST_TO_ASCII -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_CAST_FROM_ASCII) 0077 0078 remove_definitions(-DQT_NO_FOREACH) # still uses foreach 0079 remove_definitions(-DQT_NO_KEYWORDS) 0080 0081 if (ENABLE_SURVEY_TARGET_EXPRESSIONS) 0082 find_package(FLEX) 0083 set_package_properties(FLEX PROPERTIES TYPE RECOMMENDED PURPOSE "Survey target expression parser.") 0084 0085 find_package(BISON) 0086 set_package_properties(BISON PROPERTIES TYPE RECOMMENDED PURPOSE "Survey target expression parser.") 0087 0088 if(FLEX_FOUND AND BISON_FOUND) 0089 set(HAVE_SURVEY_TARGET_EXPRESSIONS 1) 0090 endif() 0091 endif() 0092 add_feature_info("Survey targeting expressions support" HAVE_SURVEY_TARGET_EXPRESSIONS "Requires flex and bison parser generators.") 0093 0094 if (ENABLE_PHP) 0095 find_package(Php) 0096 set_package_properties(Php PROPERTIES URL "http://php.net" TYPE RECOMMENDED PURPOSE "Syntax checking of PHP server code.") 0097 endif() 0098 0099 if (ENABLE_PHP_UNIT) 0100 find_package(PhpUnit) 0101 set_package_properties(PhpUnit PROPERTIES URL "http://phpunit.de" TYPE RECOMMENDED PURPOSE "Unit tests for PHP server code.") 0102 endif() 0103 0104 # 0105 # Actually build the stuff 0106 # 0107 include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) 0108 configure_file(config-userfeedback.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-userfeedback.h) 0109 0110 add_subdirectory(src) 0111 0112 if (BUILD_TESTING) 0113 add_subdirectory(autotests) 0114 add_subdirectory(tests) 0115 endif() 0116 0117 if (ENABLE_DOCS) 0118 add_subdirectory(docs) 0119 endif() 0120 0121 # 0122 # CMake package config file generation 0123 # 0124 include(CMakePackageConfigHelpers) 0125 0126 set(_CONFIG_CMAKE_IN "KF6UserFeedbackConfig.cmake.in") 0127 0128 configure_package_config_file( 0129 ${CMAKE_CURRENT_SOURCE_DIR}/${_CONFIG_CMAKE_IN} 0130 ${CMAKE_CURRENT_BINARY_DIR}/KF6UserFeedbackConfig.cmake 0131 INSTALL_DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6UserFeedback 0132 PATH_VARS KDE_INSTALL_INCLUDEDIR 0133 ) 0134 0135 install(FILES 0136 ${CMAKE_CURRENT_BINARY_DIR}/KF6UserFeedbackConfig.cmake 0137 ${CMAKE_CURRENT_BINARY_DIR}/KF6UserFeedbackConfigVersion.cmake 0138 DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6UserFeedback 0139 ) 0140 0141 install(EXPORT KF6UserFeedbackTargets DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6UserFeedback FILE KF6UserFeedbackTarget.cmake NAMESPACE KF6::) 0142 0143 ecm_qt_install_logging_categories( 0144 EXPORT KF6USERFEEDBACK 0145 FILE org_kde_UserFeedback.categories 0146 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0147 ) 0148 0149 ecm_install_po_files_as_qm(poqm) 0150 0151 include(ECMFeatureSummary) 0152 ecm_feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0153 0154 install(FILES 0155 ${KF6UserFeedbackCore_HEADERS} 0156 ${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback_version.h 0157 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KUserFeedback 0158 )