Warning, /frameworks/baloo/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # set minimum version requirements
0002 cmake_minimum_required(VERSION 3.16)
0003 set(REQUIRED_QT_VERSION 6.5.0)
0004 set(KF_VERSION "5.240.0") # handled by release scripts
0005 set(KF_DEP_VERSION "5.240.0") # handled by release scripts
0006 
0007 # set up project
0008 project(Baloo VERSION ${KF_VERSION})
0009 
0010 # set up extra-cmake-modules before trying anything else
0011 include(FeatureSummary)
0012 
0013 find_package(ECM ${KF_DEP_VERSION} NO_MODULE)
0014 set_package_properties(ECM
0015     PROPERTIES
0016         TYPE REQUIRED
0017         DESCRIPTION "Extra CMake Modules"
0018         URL "https://commits.kde.org/extra-cmake-modules"
0019 )
0020 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0021 
0022 # we found extra-cmake-modules, so use it now
0023 set(CMAKE_MODULE_PATH
0024     "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH}
0025 )
0026 
0027 include(ECMSetupVersion)
0028 
0029 # set up baloo versions
0030 ecm_setup_version(PROJECT
0031     VARIABLE_PREFIX BALOO
0032     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/baloo_version.h"
0033     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6BalooConfigVersion.cmake"
0034     SOVERSION 6
0035 )
0036 
0037 # include optional and extra cmake stuff
0038 include(ECMGenerateHeaders)
0039 include(CMakePackageConfigHelpers)
0040 include(KDEInstallDirs)
0041 include(KDECMakeSettings)
0042 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0043 include(ECMAddTests)
0044 include(ECMAddQch)
0045 include(ECMQtDeclareLoggingCategory)
0046 include(ECMMarkNonGuiExecutable)
0047 include(ECMGenerateExportHeader)
0048 include(ECMGeneratePkgConfigFile)
0049 include(ECMConfiguredInstall)
0050 include(ECMDeprecationSettings)
0051 
0052 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
0053 
0054 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0055 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0056 
0057 option(BUILD_EXPERIMENTAL "Build experimental features" OFF)
0058 add_feature_info(EXP ${BUILD_EXPERIMENTAL} "Build experimental features")
0059 
0060 option(BUILD_INDEXER_SERVICE "Build the background indexer service" ON)
0061 add_feature_info(INDEXER_SERVICE ${BUILD_INDEXER_SERVICE}
0062     "Build and install the session wide indexer service. The service is started with the session and running in the background.")
0063 
0064 # set up build dependencies
0065 find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Core DBus Widgets Qml Quick Test)
0066 
0067 find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS CoreAddons Config DBusAddons I18n IdleTime Solid FileMetaData Crash KIO)
0068 
0069 find_package(LMDB)
0070 set_package_properties(LMDB
0071     PROPERTIES
0072         DESCRIPTION "Lightning Memory-Mapped Database (LMDB)"
0073         URL "https://symas.com/lmdb"
0074         TYPE REQUIRED
0075 )
0076 if(${LMDB_FOUND})
0077     include_directories(${LMDB_INCLUDE_DIRS})
0078 endif()
0079 
0080 # compiler flags and build system
0081 ecm_set_disabled_deprecation_versions(
0082     QT 6.4
0083     KF 5.97
0084 )
0085 
0086 find_package(Inotify)
0087 set_package_properties(Inotify PROPERTIES
0088     PURPOSE "Filesystem alteration notifications using inotify")
0089 set(BUILD_KINOTIFY ${Inotify_FOUND})
0090 
0091 configure_file(config.h.in ${CMAKE_BINARY_DIR}/config.h)
0092 
0093 include_directories(
0094     ${CMAKE_BINARY_DIR}
0095     ${CMAKE_SOURCE_DIR}
0096 
0097     # we'll configure the rest here so that we don't have to
0098     # specify them in the source and test directories separately
0099     ${CMAKE_SOURCE_DIR}/src/lib
0100     ${CMAKE_BINARY_DIR}/src/lib
0101     ${CMAKE_BINARY_DIR}/src/codecs
0102     ${CMAKE_SOURCE_DIR}/src/codecs
0103     ${CMAKE_BINARY_DIR}/src/engine
0104     ${CMAKE_SOURCE_DIR}/src/engine
0105     ${CMAKE_BINARY_DIR}/src/file
0106     ${CMAKE_SOURCE_DIR}/src/file
0107     ${CMAKE_BINARY_DIR}/src/dbus
0108     ${CMAKE_SOURCE_DIR}/src/dbus
0109 )
0110 
0111 # targets
0112 add_subdirectory(src)
0113 
0114 if (BUILD_TESTING AND BUILD_KINOTIFY)
0115    add_subdirectory(tests)
0116    add_subdirectory(autotests)
0117 endif()
0118 
0119 # i18n
0120 if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
0121    ki18n_install(po)
0122 endif()
0123 
0124 # config files
0125 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Baloo")
0126 
0127 if (BUILD_QCH)
0128     ecm_install_qch_export(
0129         TARGETS KF6Baloo_QCH
0130         FILE KF6BalooQchTargets.cmake
0131         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0132         COMPONENT Devel
0133     )
0134     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6BalooQchTargets.cmake\")")
0135 endif()
0136 
0137 configure_package_config_file(
0138     "${CMAKE_CURRENT_SOURCE_DIR}/KF6BalooConfig.cmake.in"
0139     "${CMAKE_CURRENT_BINARY_DIR}/KF6BalooConfig.cmake"
0140     PATH_VARS KDE_INSTALL_DBUSINTERFACEDIR
0141     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0142 )
0143 
0144 # install targets
0145 install(FILES
0146     "${CMAKE_CURRENT_BINARY_DIR}/KF6BalooConfig.cmake"
0147     "${CMAKE_CURRENT_BINARY_DIR}/KF6BalooConfigVersion.cmake"
0148     DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0149     COMPONENT devel
0150 )
0151 
0152 install(EXPORT KF6BalooTargets
0153     NAMESPACE KF6::
0154     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0155     FILE KF6BalooTargets.cmake)
0156 
0157 install(FILES
0158     "${CMAKE_CURRENT_BINARY_DIR}/baloo_version.h"
0159     DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Baloo
0160     COMPONENT Devel
0161 )
0162 
0163 # and we're done
0164 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)