Warning, /frameworks/kcoreaddons/src/lib/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # Configure checks for the caching subdir 0002 include(CheckIncludeFiles) 0003 check_include_files("sys/types.h;sys/mman.h" HAVE_SYS_MMAN_H) 0004 configure_file(caching/config-caching.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-caching.h) 0005 0006 include(CheckSymbolExists) 0007 check_symbol_exists("getgrouplist" "grp.h" HAVE_GETGROUPLIST) 0008 0009 if(UNIX) 0010 function(check_dladdr) # use a function to scope the variables! 0011 set(CMAKE_REQUIRED_FLAGS ${DLADDR_LINK_FLAGS}) 0012 set(CMAKE_REQUIRED_LIBRARIES ${DLADDR_LINK_LIBRARIES}) 0013 check_symbol_exists("dladdr" "dlfcn.h" HAVE_DLADDR) 0014 set(HAVE_DLADDR ${HAVE_DLADDR} PARENT_SCOPE) 0015 endfunction() 0016 0017 if(CMAKE_SYSTEM_NAME MATCHES "Linux") # on linux dladdr isn't part of libc, on freebsd and osx it is 0018 set(DLADDR_LINK_FLAGS "-D_GNU_SOURCE") 0019 set(DLADDR_LINK_LIBRARIES "dl") 0020 endif() 0021 check_dladdr() 0022 0023 add_feature_info(dladdr ${HAVE_DLADDR} "Can resolve shared library paths and by extension libexec paths at runtime using dladdr() API") 0024 endif() 0025 0026 set(ACCOUNTS_SERVICE_ICON_DIR "/var/lib/AccountsService/icons" CACHE STRING "Accounts Services icon storage directory") 0027 0028 configure_file(util/config-util.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-util.h) 0029 0030 add_library(KF6CoreAddons) 0031 add_library(KF6::CoreAddons ALIAS KF6CoreAddons) 0032 0033 set_target_properties(KF6CoreAddons PROPERTIES 0034 VERSION ${KCOREADDONS_VERSION} 0035 SOVERSION ${KCOREADDONS_SOVERSION} 0036 EXPORT_NAME CoreAddons 0037 ) 0038 0039 if(NOT BUILD_SHARED_LIBS) 0040 target_compile_definitions(KF6CoreAddons PUBLIC -DKCOREADDONS_STATIC) 0041 endif() 0042 0043 ecm_create_qm_loader(KF6CoreAddons kcoreaddons6_qt) 0044 0045 if (Inotify_FOUND) 0046 target_include_directories(KF6CoreAddons PRIVATE ${Inotify_INCLUDE_DIRS}) 0047 target_link_libraries(KF6CoreAddons PRIVATE ${Inotify_LIBRARIES}) 0048 endif () 0049 0050 if(NOT WIN32) 0051 target_sources(KF6CoreAddons PRIVATE 0052 caching/kshareddatacache.cpp 0053 caching/kshareddatacache.h 0054 caching/ksdclock.cpp 0055 caching/ksdcmemory.cpp 0056 ) 0057 0058 set_source_files_properties(caching/kshareddatacache.cpp 0059 PROPERTIES COMPILE_FLAGS -fexceptions) 0060 0061 target_link_libraries(KF6CoreAddons PRIVATE Threads::Threads) 0062 else() 0063 target_sources(KF6CoreAddons PRIVATE 0064 caching/kshareddatacache_win.cpp 0065 ) 0066 endif() 0067 0068 if (WIN32) 0069 target_sources(KF6CoreAddons PRIVATE 0070 text/kmacroexpander_win.cpp 0071 util/klistopenfilesjob_win.cpp 0072 util/kprocesslist_win.cpp 0073 util/kshell_win.cpp 0074 util/kuser_win.cpp 0075 ) 0076 endif () 0077 0078 if (UNIX) 0079 target_sources(KF6CoreAddons PRIVATE 0080 text/kmacroexpander_unix.cpp 0081 util/klistopenfilesjob_unix.cpp 0082 util/kuser_unix.cpp 0083 util/kshell_unix.cpp 0084 ) 0085 if (HAVE_PROCSTAT) 0086 target_sources(KF6CoreAddons PRIVATE 0087 util/kprocesslist_unix_procstat.cpp 0088 ) 0089 target_compile_definitions(KF6CoreAddons PRIVATE HAVE_PROCSTAT=1) 0090 else () 0091 target_sources(KF6CoreAddons PRIVATE 0092 util/kprocesslist_unix.cpp 0093 ) 0094 endif () 0095 endif () 0096 0097 if(HAVE_QTDBUS) 0098 set(_dbus_SRCS) 0099 0100 set_source_files_properties(io/org.freedesktop.portal.FileTransfer.xml PROPERTIES INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/io/dbustypes_p.h) 0101 qt_add_dbus_interface(_dbus_SRCS io/org.freedesktop.portal.FileTransfer.xml io/org.freedesktop.portal.FileTransfer) 0102 0103 set_source_files_properties(io/org.kde.KIOFuse.VFS.xml PROPERTIES NO_NAMESPACE TRUE) 0104 qt_add_dbus_interface(_dbus_SRCS io/org.kde.KIOFuse.VFS.xml io/org.kde.KIOFuse.VFS) 0105 0106 target_sources(KF6CoreAddons PRIVATE ${_dbus_SRCS}) 0107 target_link_libraries(KF6CoreAddons PRIVATE Qt6::DBus) 0108 endif() 0109 0110 if (TARGET UDev::UDev) 0111 target_link_libraries(KF6CoreAddons PRIVATE UDev::UDev) 0112 endif() 0113 0114 target_sources(KF6CoreAddons PRIVATE 0115 kaboutdata.cpp 0116 kcoreaddons.cpp 0117 io/kautosavefile.cpp 0118 io/kdirwatch.cpp 0119 io/kfilesystemtype.cpp 0120 io/kprocess.cpp 0121 io/kbackup.cpp 0122 io/kurlmimedata.cpp 0123 io/kfileutils.cpp 0124 io/knetworkmounts.cpp 0125 jobs/kcompositejob.cpp 0126 jobs/kjob.cpp 0127 jobs/kjobtrackerinterface.cpp 0128 jobs/kjobuidelegate.cpp 0129 plugin/kpluginfactory.cpp 0130 plugin/kpluginmetadata.cpp 0131 plugin/kstaticpluginhelpers.cpp 0132 randomness/krandom.cpp 0133 text/kemoticonsparser.cpp 0134 text/kjsonutils.cpp 0135 text/kfuzzymatcher.cpp 0136 text/kmacroexpander.cpp 0137 text/kstringhandler.cpp 0138 text/ktexttohtml.cpp 0139 util/kformat.cpp 0140 util/kformatprivate.cpp 0141 util/kosrelease.cpp 0142 util/kprocesslist.cpp 0143 util/kshell.cpp 0144 util/klibexec.cpp 0145 util/ksignalhandler.cpp 0146 util/ksandbox.cpp 0147 util/kmemoryinfo.cpp 0148 util/kruntimeplatform.cpp 0149 0150 kaboutdata.h 0151 kcoreaddons.h 0152 io/kautosavefile.h 0153 io/kdirwatch.h 0154 io/kfilesystemtype.h 0155 io/kprocess.h 0156 io/kbackup.h 0157 io/kurlmimedata.h 0158 io/kfileutils.h 0159 io/knetworkmounts.h 0160 jobs/kcompositejob.h 0161 jobs/kjob.h 0162 jobs/kjobtrackerinterface.h 0163 jobs/kjobuidelegate.h 0164 plugin/kpluginfactory.h 0165 plugin/kpluginmetadata.h 0166 randomness/krandom.h 0167 text/kjsonutils.h 0168 text/kfuzzymatcher.h 0169 text/kmacroexpander.h 0170 text/kstringhandler.h 0171 text/ktexttohtml.h 0172 util/kformat.h 0173 util/kosrelease.h 0174 util/kprocesslist.h 0175 util/kshell.h 0176 util/klibexec.h 0177 util/ksignalhandler.h 0178 util/ksandbox.h 0179 util/kmemoryinfo.h 0180 util/kruntimeplatform.h 0181 ) 0182 0183 if (ENABLE_PCH) 0184 target_precompile_headers(KF6CoreAddons PRIVATE 0185 <QObject> 0186 <QLoggingCategory> 0187 <QString> 0188 ) 0189 endif() 0190 0191 0192 set(kcoreaddons_INCLUDE_DIRS 0193 ${CMAKE_CURRENT_SOURCE_DIR}/caching/ 0194 ${CMAKE_CURRENT_BINARY_DIR}/io/ 0195 ${CMAKE_CURRENT_SOURCE_DIR}/io/ 0196 ${CMAKE_CURRENT_SOURCE_DIR}/jobs/ 0197 ${CMAKE_CURRENT_SOURCE_DIR}/plugin/ 0198 ${CMAKE_CURRENT_SOURCE_DIR}/randomness/ 0199 ${CMAKE_CURRENT_SOURCE_DIR}/text/ 0200 ${CMAKE_CURRENT_SOURCE_DIR}/util/ 0201 ) 0202 0203 ecm_qt_export_logging_category( 0204 IDENTIFIER KDIRWATCH 0205 CATEGORY_NAME kf.coreaddons.kdirwatch 0206 OLD_CATEGORY_NAMES kf5.kcoreaddons.kdirwatch 0207 DEFAULT_SEVERITY Warning 0208 DESCRIPTION "KDirWatch (KCoreAddons)" 0209 EXPORT KCOREADDONS 0210 ) 0211 ecm_qt_export_logging_category( 0212 IDENTIFIER KABOUTDATA 0213 CATEGORY_NAME kf.coreaddons.kaboutdata 0214 OLD_CATEGORY_NAMES kf5.kcoreaddons.kaboutdata 0215 DESCRIPTION "KAboutData (KCoreAddons)" 0216 EXPORT KCOREADDONS 0217 ) 0218 ecm_qt_export_logging_category( 0219 IDENTIFIER LOG_KMEMORYINFO 0220 CATEGORY_NAME kf.coreaddons.kmemoryinfo 0221 DESCRIPTION "KMemoryInfo (KCoreAddons)" 0222 EXPORT KCOREADDONS 0223 ) 0224 0225 ecm_qt_declare_logging_category(KF6CoreAddons 0226 HEADER kcoreaddons_debug.h 0227 IDENTIFIER KCOREADDONS_DEBUG 0228 CATEGORY_NAME kf.coreaddons 0229 OLD_CATEGORY_NAMES org.kde.kcoreaddons 0230 DESCRIPTION "kcoreaddons (kcoreaddons lib)" 0231 EXPORT KCOREADDONS 0232 ) 0233 0234 ecm_generate_export_header(KF6CoreAddons 0235 BASE_NAME KCoreAddons 0236 GROUP_BASE_NAME KF 0237 VERSION ${KF_VERSION} 0238 USE_VERSION_HEADER 0239 DEPRECATED_BASE_VERSION 0 0240 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} 0241 ) 0242 0243 target_include_directories(KF6CoreAddons PUBLIC "$<BUILD_INTERFACE:${kcoreaddons_INCLUDE_DIRS}>") 0244 0245 target_link_libraries(KF6CoreAddons 0246 PUBLIC 0247 Qt6::Core 0248 ) 0249 0250 if(WIN32) 0251 target_link_libraries(KF6CoreAddons PRIVATE netapi32 userenv psapi) 0252 endif() 0253 0254 if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 0255 target_link_libraries(KF6CoreAddons PRIVATE kvm) 0256 endif() 0257 0258 if (HAVE_PROCSTAT) 0259 target_link_libraries(KF6CoreAddons PRIVATE Procstat::Procstat) 0260 endif() 0261 0262 if(HAVE_DLADDR) 0263 set_source_files_properties(SOURCE util/klibexec.cpp PROPERTIES COMPILE_FLAGS "${DLADDR_LINK_FLAGS}") # ensure _GNU_SOURCE on Linux 0264 target_link_libraries(KF6CoreAddons PRIVATE ${DLADDR_LINK_LIBRARIES}) 0265 endif() 0266 0267 target_include_directories(KF6CoreAddons INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons>") 0268 0269 target_compile_definitions(KF6CoreAddons INTERFACE "$<INSTALL_INTERFACE:KCOREADDONS_LIB>") 0270 0271 ecm_generate_headers(KCoreAddons_HEADERS 0272 HEADER_NAMES 0273 KAboutData,KAboutPerson,KAboutLicense,KAboutComponent 0274 KCoreAddons 0275 REQUIRED_HEADERS KCoreAddons_HEADERS 0276 ) 0277 ecm_generate_headers(KCoreAddons_HEADERS 0278 HEADER_NAMES KSharedDataCache 0279 RELATIVE caching 0280 REQUIRED_HEADERS KCoreAddons_HEADERS 0281 ) 0282 ecm_generate_headers(KCoreAddons_HEADERS 0283 HEADER_NAMES 0284 KAutoSaveFile 0285 KDirWatch 0286 KProcess 0287 KBackup 0288 KUrlMimeData 0289 KFileSystemType 0290 KFileUtils 0291 KNetworkMounts 0292 RELATIVE io 0293 REQUIRED_HEADERS KCoreAddons_HEADERS 0294 ) 0295 ecm_generate_headers(KCoreAddons_HEADERS 0296 HEADER_NAMES 0297 KCompositeJob 0298 KJob 0299 KJobTrackerInterface 0300 KJobUiDelegate 0301 RELATIVE jobs 0302 REQUIRED_HEADERS KCoreAddons_HEADERS 0303 ) 0304 ecm_generate_headers(KCoreAddons_HEADERS 0305 HEADER_NAMES 0306 KPluginFactory 0307 KPluginMetaData 0308 RELATIVE plugin 0309 REQUIRED_HEADERS KCoreAddons_HEADERS 0310 ) 0311 ecm_generate_headers(KCoreAddons_HEADERS 0312 HEADER_NAMES 0313 KRandom 0314 RELATIVE randomness 0315 REQUIRED_HEADERS KCoreAddons_HEADERS 0316 ) 0317 ecm_generate_headers(KCoreAddons_HEADERS 0318 HEADER_NAMES 0319 KJsonUtils 0320 KFuzzyMatcher 0321 KMacroExpander 0322 KStringHandler 0323 KTextToHTML 0324 RELATIVE text 0325 REQUIRED_HEADERS KCoreAddons_HEADERS 0326 ) 0327 ecm_generate_headers(KCoreAddons_HEADERS 0328 HEADER_NAMES 0329 KFormat 0330 KOSRelease 0331 KUser 0332 KShell 0333 KProcessList 0334 KListOpenFilesJob 0335 KLibexec 0336 KSignalHandler 0337 KRuntimePlatform 0338 KSandbox 0339 KMemoryInfo 0340 RELATIVE util 0341 REQUIRED_HEADERS KCoreAddons_HEADERS 0342 ) 0343 0344 install(TARGETS KF6CoreAddons EXPORT KF6CoreAddonsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) 0345 0346 install(FILES 0347 ${KCoreAddons_HEADERS} 0348 ${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_export.h 0349 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons COMPONENT Devel 0350 ) 0351 install(FILES plugin/kpluginmetadata.schema.json DESTINATION ${KDE_INSTALL_DATADIR}/kf6/jsonschema COMPONENT Devel) 0352 0353 # Includes CMake code to install open-source license texts for KAboutData. 0354 add_subdirectory(licenses) 0355 0356 if(BUILD_QCH) 0357 ecm_add_qch( 0358 KF6CoreAddons_QCH 0359 NAME KCoreAddons 0360 BASE_NAME KF6CoreAddons 0361 VERSION ${KF_VERSION} 0362 ORG_DOMAIN org.kde 0363 SOURCES # using only public headers, to cover only public API 0364 ${KCoreAddons_HEADERS} 0365 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" 0366 LINK_QCHS 0367 Qt6Core_QCH 0368 INCLUDE_DIRS 0369 ${CMAKE_CURRENT_BINARY_DIR} 0370 ${kcoreaddons_INCLUDE_DIRS} 0371 BLANK_MACROS 0372 KCOREADDONS_EXPORT 0373 KCOREADDONS_DEPRECATED 0374 KCOREADDONS_DEPRECATED_EXPORT 0375 "KCOREADDONS_DEPRECATED_VERSION(x, y, t)" 0376 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0377 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0378 COMPONENT Devel 0379 ) 0380 endif()