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 (KDE4_DEFAULT_HOME ".kde${_KDE4_DEFAULT_HOME_POSTFIX}" CACHE STRING "The default KDE home directory" ) 0027 set (ACCOUNTS_SERVICE_ICON_DIR "/var/lib/AccountsService/icons" CACHE STRING "Accounts Services icon storage directory") 0028 0029 configure_file(util/config-util.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-util.h) 0030 0031 add_library(KF5CoreAddons) 0032 add_library(KF5::CoreAddons ALIAS KF5CoreAddons) 0033 0034 if(NOT BUILD_SHARED_LIBS) 0035 target_compile_definitions(KF5CoreAddons PUBLIC -DKCOREADDONS_STATIC) 0036 endif() 0037 0038 ecm_create_qm_loader(KF5CoreAddons kcoreaddons5_qt) 0039 0040 if (FAM_FOUND) 0041 target_include_directories(KF5CoreAddons PRIVATE ${FAM_INCLUDE_DIR}) 0042 target_link_libraries(KF5CoreAddons PRIVATE ${FAM_LIBRARIES}) 0043 endif () 0044 0045 if (Inotify_FOUND) 0046 target_include_directories(KF5CoreAddons PRIVATE ${Inotify_INCLUDE_DIRS}) 0047 target_link_libraries(KF5CoreAddons PRIVATE ${Inotify_LIBRARIES}) 0048 endif () 0049 0050 if(NOT WIN32) 0051 target_sources(KF5CoreAddons PRIVATE 0052 caching/kshareddatacache.cpp 0053 caching/kshareddatacache.h 0054 ) 0055 0056 set_source_files_properties(caching/kshareddatacache.cpp 0057 PROPERTIES COMPILE_FLAGS -fexceptions) 0058 0059 target_link_libraries(KF5CoreAddons PRIVATE Threads::Threads) 0060 else() 0061 target_sources(KF5CoreAddons PRIVATE 0062 caching/kshareddatacache_win.cpp 0063 ) 0064 endif() 0065 0066 if (WIN32) 0067 target_sources(KF5CoreAddons PRIVATE 0068 text/kmacroexpander_win.cpp 0069 util/klistopenfilesjob_win.cpp 0070 util/kprocesslist_win.cpp 0071 util/kshell_win.cpp 0072 util/kuser_win.cpp 0073 ) 0074 endif () 0075 0076 if (UNIX) 0077 target_sources(KF5CoreAddons PRIVATE 0078 text/kmacroexpander_unix.cpp 0079 util/klistopenfilesjob_unix.cpp 0080 util/kuser_unix.cpp 0081 util/kshell_unix.cpp 0082 ) 0083 if (HAVE_PROCSTAT) 0084 target_sources(KF5CoreAddons PRIVATE 0085 util/kprocesslist_unix_procstat.cpp 0086 ) 0087 target_compile_definitions(KF5CoreAddons PRIVATE HAVE_PROCSTAT=1) 0088 else () 0089 target_sources(KF5CoreAddons PRIVATE 0090 util/kprocesslist_unix.cpp 0091 ) 0092 endif () 0093 endif () 0094 0095 if(HAVE_QTDBUS) 0096 set(_dbus_SRCS) 0097 0098 set_source_files_properties(io/org.freedesktop.portal.FileTransfer.xml PROPERTIES INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/io/dbustypes_p.h) 0099 qt_add_dbus_interface(_dbus_SRCS io/org.freedesktop.portal.FileTransfer.xml io/org.freedesktop.portal.FileTransfer) 0100 0101 set_source_files_properties(io/org.kde.KIOFuse.VFS.xml PROPERTIES NO_NAMESPACE TRUE) 0102 qt_add_dbus_interface(_dbus_SRCS io/org.kde.KIOFuse.VFS.xml io/org.kde.KIOFuse.VFS) 0103 0104 target_sources(KF5CoreAddons PRIVATE ${_dbus_SRCS}) 0105 target_link_libraries(KF5CoreAddons PRIVATE Qt${QT_MAJOR_VERSION}::DBus) 0106 endif() 0107 0108 if (TARGET UDev::UDev) 0109 target_link_libraries(KF5CoreAddons PRIVATE UDev::UDev) 0110 endif() 0111 0112 target_sources(KF5CoreAddons PRIVATE 0113 kaboutdata.cpp 0114 kcoreaddons.cpp 0115 io/kautosavefile.cpp 0116 io/kdirwatch.cpp 0117 io/kfilesystemtype.cpp 0118 io/kmessage.cpp 0119 io/kprocess.cpp 0120 io/kbackup.cpp 0121 io/kurlmimedata.cpp 0122 io/kfileutils.cpp 0123 io/knetworkmounts.cpp 0124 jobs/kcompositejob.cpp 0125 jobs/kjob.cpp 0126 jobs/kjobtrackerinterface.cpp 0127 jobs/kjobuidelegate.cpp 0128 plugin/kpluginfactory.cpp 0129 plugin/kpluginloader.cpp 0130 plugin/kpluginmetadata.cpp 0131 plugin/kstaticpluginhelpers.cpp 0132 plugin/desktopfileparser.cpp 0133 randomness/krandom.cpp 0134 randomness/krandomsequence.cpp 0135 text/kjsonutils.cpp 0136 text/kfuzzymatcher.cpp 0137 text/kmacroexpander.cpp 0138 text/kstringhandler.cpp 0139 text/ktexttohtml.cpp 0140 util/kdelibs4migration.cpp 0141 util/kdelibs4configmigrator.cpp 0142 util/kformat.cpp 0143 util/kformatprivate.cpp 0144 util/kosrelease.cpp 0145 util/kprocesslist.cpp 0146 util/kshell.cpp 0147 util/klibexec.cpp 0148 util/ksignalhandler.cpp 0149 util/ksandbox.cpp 0150 util/kmemoryinfo.cpp 0151 util/kruntimeplatform.cpp 0152 0153 kaboutdata.h 0154 kcoreaddons.h 0155 io/kautosavefile.h 0156 io/kdirwatch.h 0157 io/kfilesystemtype.h 0158 io/kmessage.h 0159 io/kprocess.h 0160 io/kbackup.h 0161 io/kurlmimedata.h 0162 io/kfileutils.h 0163 io/knetworkmounts.h 0164 jobs/kcompositejob.h 0165 jobs/kjob.h 0166 jobs/kjobtrackerinterface.h 0167 jobs/kjobuidelegate.h 0168 plugin/kpluginfactory.h 0169 plugin/kpluginloader.h 0170 plugin/kpluginmetadata.h 0171 plugin/kstaticpluginhelpers.h 0172 randomness/krandom.h 0173 randomness/krandomsequence.h 0174 text/kjsonutils.h 0175 text/kfuzzymatcher.h 0176 text/kmacroexpander.h 0177 text/kstringhandler.h 0178 text/ktexttohtml.h 0179 util/kdelibs4migration.h 0180 util/kdelibs4configmigrator.h 0181 util/kformat.h 0182 util/kosrelease.h 0183 util/kprocesslist.h 0184 util/kshell.h 0185 util/klibexec.h 0186 util/ksignalhandler.h 0187 util/ksandbox.h 0188 util/kmemoryinfo.h 0189 util/kruntimeplatform.h 0190 ) 0191 0192 0193 set(kcoreaddons_INCLUDE_DIRS 0194 ${CMAKE_CURRENT_BINARY_DIR}/../.. # for kcoreaddons_version.h 0195 ${CMAKE_CURRENT_SOURCE_DIR}/caching/ 0196 ${CMAKE_CURRENT_BINARY_DIR}/io/ 0197 ${CMAKE_CURRENT_SOURCE_DIR}/io/ 0198 ${CMAKE_CURRENT_SOURCE_DIR}/jobs/ 0199 ${CMAKE_CURRENT_SOURCE_DIR}/plugin/ 0200 ${CMAKE_CURRENT_SOURCE_DIR}/randomness/ 0201 ${CMAKE_CURRENT_SOURCE_DIR}/text/ 0202 ${CMAKE_CURRENT_SOURCE_DIR}/util/ 0203 ) 0204 0205 ecm_qt_export_logging_category( 0206 IDENTIFIER KDIRWATCH 0207 CATEGORY_NAME kf.coreaddons.kdirwatch 0208 OLD_CATEGORY_NAMES kf5.kcoreaddons.kdirwatch 0209 DEFAULT_SEVERITY Warning 0210 DESCRIPTION "KDirWatch (KCoreAddons)" 0211 EXPORT KCOREADDONS 0212 ) 0213 ecm_qt_export_logging_category( 0214 IDENTIFIER KABOUTDATA 0215 CATEGORY_NAME kf.coreaddons.kaboutdata 0216 OLD_CATEGORY_NAMES kf5.kcoreaddons.kaboutdata 0217 DESCRIPTION "KAboutData (KCoreAddons)" 0218 EXPORT KCOREADDONS 0219 ) 0220 ecm_qt_export_logging_category( 0221 IDENTIFIER LOG_KMEMORYINFO 0222 CATEGORY_NAME kf.coreaddons.kmemoryinfo 0223 DESCRIPTION "KMemoryInfo (KCoreAddons)" 0224 EXPORT KCOREADDONS 0225 ) 0226 ecm_qt_declare_logging_category(KF5CoreAddons 0227 HEADER desktopfileparser_debug.h 0228 IDENTIFIER DESKTOPPARSER 0229 CATEGORY_NAME kf.coreaddons.desktopparser 0230 OLD_CATEGORY_NAMES kf5.kcoreaddons.desktopparser 0231 DEFAULT_SEVERITY Warning 0232 DESCRIPTION "DesktopParser (KCoreAddons)" 0233 EXPORT KCOREADDONS 0234 ) 0235 ecm_qt_export_logging_category( 0236 IDENTIFIER MIGRATOR 0237 CATEGORY_NAME kf.coreaddons.kdelibs4configmigrator 0238 OLD_CATEGORY_NAMES kf5.kcoreaddons.kdelibs4configmigrator 0239 DEFAULT_SEVERITY Warning 0240 DESCRIPTION "Kdelibs4ConfigMigrator (KCoreAddons)" 0241 EXPORT KCOREADDONS 0242 ) 0243 0244 ecm_qt_declare_logging_category(KF5CoreAddons 0245 HEADER kcoreaddons_debug.h 0246 IDENTIFIER KCOREADDONS_DEBUG 0247 CATEGORY_NAME kf.coreaddons 0248 OLD_CATEGORY_NAMES org.kde.kcoreaddons 0249 DESCRIPTION "kcoreaddons (kcoreaddons lib)" 0250 EXPORT KCOREADDONS 0251 ) 0252 0253 ecm_generate_export_header(KF5CoreAddons 0254 BASE_NAME KCoreAddons 0255 GROUP_BASE_NAME KF 0256 VERSION ${KF_VERSION} 0257 DEPRECATED_BASE_VERSION 0 0258 DEPRECATION_VERSIONS 4.0 5.0 5.2 5.65 5.67 5.70 5.72 5.75 5.76 5.78 5.79 5.80 5.84 5.86 5.87 5.88 5.89 5.92 5.95 5.97 5.104 5.112 0259 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} 0260 ) 0261 0262 target_include_directories(KF5CoreAddons PUBLIC "$<BUILD_INTERFACE:${kcoreaddons_INCLUDE_DIRS}>") 0263 0264 target_link_libraries(KF5CoreAddons 0265 PUBLIC 0266 Qt${QT_MAJOR_VERSION}::Core 0267 ) 0268 0269 if(WIN32) 0270 target_link_libraries(KF5CoreAddons PRIVATE netapi32 userenv psapi) 0271 endif() 0272 0273 if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 0274 target_link_libraries(KF5CoreAddons PRIVATE kvm) 0275 endif() 0276 0277 if (HAVE_PROCSTAT) 0278 target_link_libraries(KF5CoreAddons PRIVATE Procstat::Procstat) 0279 endif() 0280 0281 if(HAVE_DLADDR) 0282 set_source_files_properties(SOURCE util/klibexec.cpp PROPERTIES COMPILE_FLAGS "${DLADDR_LINK_FLAGS}") # ensure _GNU_SOURCE on Linux 0283 target_link_libraries(KF5CoreAddons PRIVATE ${DLADDR_LINK_LIBRARIES}) 0284 endif() 0285 0286 target_include_directories(KF5CoreAddons INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons>" ) 0287 0288 target_compile_definitions(KF5CoreAddons INTERFACE "$<INSTALL_INTERFACE:KCOREADDONS_LIB>") 0289 0290 set_target_properties(KF5CoreAddons PROPERTIES VERSION ${KCOREADDONS_VERSION} 0291 SOVERSION ${KCOREADDONS_SOVERSION} 0292 EXPORT_NAME CoreAddons 0293 ) 0294 0295 ecm_generate_headers(KCoreAddons_HEADERS 0296 HEADER_NAMES 0297 KAboutData 0298 KCoreAddons 0299 REQUIRED_HEADERS KCoreAddons_HEADERS 0300 ) 0301 ecm_generate_headers(KCoreAddons_HEADERS 0302 HEADER_NAMES KSharedDataCache 0303 RELATIVE caching 0304 REQUIRED_HEADERS KCoreAddons_HEADERS 0305 ) 0306 ecm_generate_headers(KCoreAddons_HEADERS 0307 HEADER_NAMES 0308 KAutoSaveFile 0309 KDirWatch 0310 KMessage 0311 KProcess 0312 KBackup 0313 KUrlMimeData 0314 KFileSystemType 0315 KFileUtils 0316 KNetworkMounts 0317 RELATIVE io 0318 REQUIRED_HEADERS KCoreAddons_HEADERS 0319 ) 0320 ecm_generate_headers(KCoreAddons_HEADERS 0321 HEADER_NAMES 0322 KCompositeJob 0323 KJob 0324 KJobTrackerInterface 0325 KJobUiDelegate 0326 RELATIVE jobs 0327 REQUIRED_HEADERS KCoreAddons_HEADERS 0328 ) 0329 ecm_generate_headers(KCoreAddons_HEADERS 0330 HEADER_NAMES 0331 KExportPlugin 0332 KPluginFactory 0333 KPluginLoader 0334 KPluginMetaData 0335 KStaticPluginHelpers 0336 RELATIVE plugin 0337 REQUIRED_HEADERS KCoreAddons_HEADERS 0338 ) 0339 ecm_generate_headers(KCoreAddons_HEADERS 0340 HEADER_NAMES 0341 KRandom 0342 KRandomSequence 0343 RELATIVE randomness 0344 REQUIRED_HEADERS KCoreAddons_HEADERS 0345 ) 0346 ecm_generate_headers(KCoreAddons_HEADERS 0347 HEADER_NAMES 0348 KJsonUtils 0349 KFuzzyMatcher 0350 KMacroExpander 0351 KStringHandler 0352 KTextToHTML 0353 KTextToHTMLEmoticonsInterface 0354 RELATIVE text 0355 REQUIRED_HEADERS KCoreAddons_HEADERS 0356 ) 0357 ecm_generate_headers(KCoreAddons_HEADERS 0358 HEADER_NAMES 0359 KFormat 0360 KOSRelease 0361 KUser 0362 KShell 0363 KProcessList 0364 KListOpenFilesJob 0365 Kdelibs4Migration 0366 Kdelibs4ConfigMigrator 0367 KLibexec 0368 KSignalHandler 0369 KRuntimePlatform 0370 KSandbox 0371 KMemoryInfo 0372 RELATIVE util 0373 REQUIRED_HEADERS KCoreAddons_HEADERS 0374 ) 0375 0376 install(TARGETS KF5CoreAddons EXPORT KF5CoreAddonsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) 0377 0378 install(FILES 0379 ${KCoreAddons_HEADERS} 0380 ${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_export.h 0381 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons COMPONENT Devel 0382 ) 0383 0384 # Includes CMake code to install open-source license texts for KAboutData. 0385 add_subdirectory(licenses) 0386 0387 if(BUILD_QCH) 0388 ecm_add_qch( 0389 KF5CoreAddons_QCH 0390 NAME KCoreAddons 0391 BASE_NAME KF5CoreAddons 0392 VERSION ${KF_VERSION} 0393 ORG_DOMAIN org.kde 0394 SOURCES # using only public headers, to cover only public API 0395 ${KCoreAddons_HEADERS} 0396 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" 0397 LINK_QCHS 0398 Qt5Core_QCH 0399 INCLUDE_DIRS 0400 ${CMAKE_CURRENT_BINARY_DIR} 0401 ${kcoreaddons_INCLUDE_DIRS} 0402 BLANK_MACROS 0403 KCOREADDONS_EXPORT 0404 KCOREADDONS_DEPRECATED 0405 KCOREADDONS_DEPRECATED_EXPORT 0406 "KCOREADDONS_DEPRECATED_VERSION(x, y, t)" 0407 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0408 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0409 COMPONENT Devel 0410 ) 0411 endif() 0412 0413 include(ECMGeneratePriFile) 0414 ecm_generate_pri_file(BASE_NAME KCoreAddons LIB_NAME KF5CoreAddons DEPS "core" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KCoreAddons) 0415 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})