Warning, /frameworks/kuserfeedback/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 project(KUserFeedback VERSION 1.3.0) 0003 0004 find_package(ECM 5.26 REQUIRED NO_MODULE) 0005 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) 0006 0007 set(ENABLE_SURVEY_TARGET_EXPRESSIONS ON CACHE BOOL "Survey targeting expressions support is enabled by default.") 0008 set(ENABLE_PHP ON CACHE BOOL "Syntax checking of PHP server code.") 0009 set(ENABLE_PHP_UNIT ON CACHE BOOL "Unit tests for PHP server code.") 0010 set(ENABLE_DOCS ON CACHE BOOL "Generate documentation.") 0011 set(ENABLE_CONSOLE ON CACHE BOOL "Application console.") 0012 set(ENABLE_CLI ON CACHE BOOL "Command line interface support.") 0013 0014 set(CMAKE_AUTOMOC ON) 0015 set(CMAKE_AUTOUIC ON) 0016 set(CMAKE_AUTORCC ON) 0017 set(CMAKE_INCLUDE_CURRENT_DIR ON) 0018 set(CMAKE_CXX_STANDARD 17) 0019 0020 include(KDEInstallDirs) 0021 include(KDECMakeSettings) 0022 include(KDECompilerSettings NO_POLICY_SCOPE) 0023 0024 include(ECMGenerateHeaders) 0025 include(ECMPoQmTools) 0026 include(ECMSetupVersion) 0027 include(ECMQueryQmake) 0028 include(ECMGeneratePriFile) 0029 include(FeatureSummary) 0030 include(GenerateExportHeader) 0031 0032 if (ECM_VERSION VERSION_GREATER "5.68.0") 0033 include(ECMQtDeclareLoggingCategory) 0034 endif() 0035 0036 MESSAGE(STATUS "ECM Version found: ${ECM_VERSION}") 0037 set(KUSERFEEDBACK_EXTENSION) 0038 if (QT_MAJOR_VERSION STREQUAL "6") 0039 set(KUSERFEEDBACK_EXTENSION "Qt6") 0040 endif() 0041 0042 ecm_setup_version(PROJECT 0043 VARIABLE_PREFIX KUSERFEEDBACK 0044 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback_version.h" 0045 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION}ConfigVersion.cmake" 0046 ) 0047 # 0048 # Dependencies 0049 # 0050 0051 find_package(Qt${QT_MAJOR_VERSION} 5.4 NO_MODULE REQUIRED COMPONENTS Core Network) 0052 find_package(Qt${QT_MAJOR_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS Widgets Charts Test Qml Svg PrintSupport) 0053 find_package(QmlLint) 0054 0055 if (ENABLE_DOCS) 0056 if (NOT CMAKE_CROSSCOMPILING) 0057 find_package(Qt${QT_MAJOR_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS Help) 0058 endif() 0059 0060 if(QT_MAJOR_VERSION STREQUAL "5") 0061 find_package(Qt5 CONFIG OPTIONAL_COMPONENTS DocTools) 0062 else() 0063 find_package(Qt6 CONFIG OPTIONAL_COMPONENTS ToolsTools) 0064 endif() 0065 endif() 0066 0067 set_package_properties(Qt${QT_MAJOR_VERSION} PROPERTIES URL "http://qt-project.org/") 0068 set_package_properties(Qt${QT_MAJOR_VERSION}Widgets PROPERTIES TYPE RECOMMENDED PURPOSE "Required for feedback configuration and notification widgets.") 0069 set_package_properties(Qt${QT_MAJOR_VERSION}Charts PROPERTIES TYPE RECOMMENDED PURPOSE "Required for UserFeedbackConsole.") 0070 0071 # debug suffixes for qmake compatibility 0072 if(WIN32) 0073 set(CMAKE_DEBUG_POSTFIX "d") 0074 elseif(APPLE) 0075 set(CMAKE_DEBUG_POSTFIX "_debug") 0076 endif() 0077 0078 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) 0079 0080 if (ENABLE_SURVEY_TARGET_EXPRESSIONS) 0081 find_package(FLEX) 0082 set_package_properties(FLEX PROPERTIES TYPE RECOMMENDED PURPOSE "Survey target expression parser.") 0083 0084 find_package(BISON) 0085 set_package_properties(BISON PROPERTIES TYPE RECOMMENDED PURPOSE "Survey target expression parser.") 0086 0087 if(FLEX_FOUND AND BISON_FOUND) 0088 set(HAVE_SURVEY_TARGET_EXPRESSIONS 1) 0089 endif() 0090 endif() 0091 add_feature_info("Survey targeting expressions support" HAVE_SURVEY_TARGET_EXPRESSIONS "Requires flex and bison parser generators.") 0092 0093 if (ENABLE_PHP) 0094 find_package(Php) 0095 set_package_properties(Php PROPERTIES URL "http://php.net" TYPE RECOMMENDED PURPOSE "Syntax checking of PHP server code.") 0096 endif() 0097 0098 if (ENABLE_PHP_UNIT) 0099 find_package(PhpUnit) 0100 set_package_properties(PhpUnit PROPERTIES URL "http://phpunit.de" TYPE RECOMMENDED PURPOSE "Unit tests for PHP server code.") 0101 endif() 0102 0103 # 0104 # Actually build the stuff 0105 # 0106 include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) 0107 configure_file(config-userfeedback.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-userfeedback.h) 0108 0109 add_subdirectory(src) 0110 0111 if (BUILD_TESTING) 0112 add_subdirectory(autotests) 0113 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 if (${QT_MAJOR_VERSION} GREATER_EQUAL 6) 0127 set(_CONFIG_CMAKE_IN "KUserFeedbackConfig-Qt6.cmake.in") 0128 else() 0129 set(_CONFIG_CMAKE_IN "KUserFeedbackConfig-Qt5.cmake.in") 0130 endif() 0131 0132 configure_package_config_file( 0133 ${CMAKE_CURRENT_SOURCE_DIR}/${_CONFIG_CMAKE_IN} 0134 ${CMAKE_CURRENT_BINARY_DIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION}Config.cmake 0135 INSTALL_DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KUserFeedback 0136 PATH_VARS KDE_INSTALL_INCLUDEDIR 0137 ) 0138 0139 install(FILES 0140 ${CMAKE_CURRENT_BINARY_DIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION}Config.cmake 0141 ${CMAKE_CURRENT_BINARY_DIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION}ConfigVersion.cmake 0142 DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION} 0143 ) 0144 0145 install(EXPORT KUserFeedback${KUSERFEEDBACK_EXTENSION}Targets DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION} FILE KUserFeedback${KUSERFEEDBACK_EXTENSION}Target.cmake) 0146 0147 if (ECM_VERSION VERSION_GREATER "5.58.0") 0148 if (ECM_VERSION VERSION_GREATER "5.67.0") 0149 ecm_qt_install_logging_categories( 0150 EXPORT KUSERFEEDBACK 0151 FILE org_kde_UserFeedback.categories 0152 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0153 ) 0154 else() 0155 install(FILES org_kde_UserFeedback.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0156 endif() 0157 else() 0158 install(FILES org_kde_UserFeedback.categories DESTINATION ${KDE_INSTALL_CONFDIR}) 0159 endif() 0160 0161 ecm_install_po_files_as_qm(poqm) 0162 0163 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0164 0165 install(FILES 0166 ${KUserFeedbackCore_HEADERS} 0167 ${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback_version.h 0168 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KUserFeedback${KUSERFEEDBACK_EXTENSION} 0169 )