kdelibs/kdecore/CMakeLists.txt
Ivailo Monev 4ff227e336 kdecore: emulate cross-filesystem move in KDE::rename()
if the temporary directory is of tmpfs type (which is the case on
Debian) then moving temporary files will fail thus thumbnails will not be
cached for example because they are stored as temporary file first and
then moved to ~/.thumbnails

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-07 22:38:57 +03:00

385 lines
9.5 KiB
CMake

project(kdecore)
# Generate config-kstandarddirs.h
configure_file(
config-kstandarddirs.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config-kstandarddirs.h
)
# Generate kdeversion.h
configure_file(
util/kdeversion.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/kdeversion.h
)
# Configure checks for date/
include(date/ConfigureChecks.cmake)
configure_file(
date/config-date.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/date/config-date.h
)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/date)
# Configure checks for compression/
include(compression/ConfigureChecks.cmake)
configure_file(
compression/config-compression.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/compression/config-compression.h
)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/compression)
include_directories(
${KDE4_KDECORE_INCLUDES}
${KDE4_KDEUI_INCLUDES}
${ZLIB_INCLUDE_DIR}
${QT_INCLUDES}
${CMAKE_CURRENT_SOURCE_DIR}/auth
${CMAKE_CURRENT_SOURCE_DIR}/sonnet
)
# kdecore_OPTIONAL_SRCS is used to collect source files
# which are not always compiled into kdecore
# if it's used, *always* append to it
set(kdecore_OPTIONAL_SRCS)
# same for optional libs
set(kdecore_OPTIONAL_LIBS)
add_definitions(-DQT_NO_CAST_FROM_ASCII)
# compile bzip2 support if available
if(BZIP2_FOUND)
include_directories(${BZIP2_INCLUDE_DIR})
set(kdecore_OPTIONAL_SRCS ${kdecore_OPTIONAL_SRCS} compression/kbzip2filter.cpp)
set(kdecore_OPTIONAL_LIBS ${kdecore_OPTIONAL_LIBS} ${BZIP2_LIBRARIES})
endif(BZIP2_FOUND)
# compile lzma support if available
if(LIBLZMA_FOUND)
include_directories(${LIBLZMA_INCLUDE_DIRS})
set(kdecore_OPTIONAL_SRCS ${kdecore_OPTIONAL_SRCS} compression/kxzfilter.cpp)
set(kdecore_OPTIONAL_LIBS ${kdecore_OPTIONAL_LIBS} ${LIBLZMA_LIBRARIES})
endif(LIBLZMA_FOUND)
# compile Gettext support if available
if(LIBINTL_FOUND)
include_directories(${LIBINTL_INCLUDE_DIR})
set(kdecore_OPTIONAL_LIBS ${kdecore_OPTIONAL_LIBS} ${LIBINTL_LIBRARIES})
endif()
# compile Enchant if available
if(ENCHANT_FOUND)
include_directories(
${ENCHANT_INCLUDE_DIR}
"${ENCHANT_INCLUDE_DIR}/.."
)
set(kdecore_OPTIONAL_SRCS
${kdecore_OPTIONAL_SRCS}
sonnet/enchantclient.cpp
sonnet/enchantdict.cpp
)
set(kdecore_OPTIONAL_LIBS ${kdecore_OPTIONAL_LIBS} ${ENCHANT_LIBRARIES})
endif()
add_subdirectory(kconfig_compiler)
if(ENABLE_TESTING)
add_subdirectory(tests)
add_subdirectory(sonnet/tests)
endif()
########### next target ###############
set(kdecore_LIB_SRCS
compression/kgzipfilter.cpp
compression/kfilterbase.cpp
compression/kfilterdev.cpp
config/kconfig.cpp
config/kconfigbase.cpp
config/kconfigdata.cpp
config/kconfiggroup.cpp
config/kconfigini.cpp
config/kdesktopfile.cpp
config/ksharedconfig.cpp
config/kcoreconfigskeleton.cpp
config/ksettings.cpp
date/kcalendarera.cpp
date/kcalendarsystem.cpp
date/kcalendarsystemcoptic.cpp
date/kcalendarsystemethiopian.cpp
date/kcalendarsystemqdate.cpp
date/kcalendarsystemgregorian.cpp
date/kcalendarsystemislamiccivil.cpp
date/kcalendarsystemhebrew.cpp
date/kcalendarsystemindiannational.cpp
date/kcalendarsystemjalali.cpp
date/kcalendarsystemjapanese.cpp
date/kcalendarsystemjulian.cpp
date/kcalendarsystemminguo.cpp
date/kcalendarsystemthai.cpp
date/kdatetime.cpp
date/kdatetimeformatter.cpp
date/kdatetimeparser.cpp
date/kdayperiod.cpp
date/klocalizeddate.cpp
date/ktimezone.cpp
date/ksystemtimezone.cpp
io/kdebug.cpp
io/kdirwatch.cpp
io/kfilesystemtype_p.cpp
io/kmessage.cpp
io/kmountpoint.cpp
io/kprocess.cpp
io/ksavefile.cpp
io/ktempdir.cpp
io/ktemporaryfile.cpp
io/kurl.cpp
jobs/kcompositejob.cpp
jobs/kjob.cpp
jobs/kjobuidelegate.cpp
jobs/kjobtrackerinterface.cpp
kernel/kauthorization.cpp
kernel/kaboutdata.cpp
kernel/kcmdlineargs.cpp
kernel/kdbusconnectionpool.cpp
kernel/kglobal.cpp
kernel/kcomponentdata.cpp
kernel/kstandarddirs.cpp
kernel/ktoolinvocation.cpp
services/kfoldermimetype.cpp
services/kmimetypefactory.cpp
services/kmimemagicrule.cpp
services/kmimetypetrader.cpp
services/kmimetype.cpp
services/kmimeglobsfileparser.cpp
services/kmimetyperepository.cpp
services/kservice.cpp
services/kserviceaction.cpp
services/kservicefactory.cpp
services/kservicegroup.cpp
services/kservicegroupfactory.cpp
services/kserviceoffer.cpp
services/kservicetype.cpp
services/kservicetypefactory.cpp
services/kservicetypetrader.cpp
services/ktraderparse.cpp
services/ktraderparsetree.cpp
services/yacc.c
services/lex.c
services/kplugininfo.cpp
sonnet/loader.cpp
sonnet/speller.cpp
sonnet/filter.cpp
sonnet/settings.cpp
sonnet/backgroundchecker.cpp
sonnet/backgroundengine.cpp
sonnet/globals.cpp
localization/kcatalog.cpp
localization/kcharsets.cpp
localization/klocale.cpp
localization/klocale_kde.cpp
localization/klocalizedstring.cpp
localization/kuitsemantics.cpp
localization/kuitformats.cpp
localization/common_helpers.cpp
sycoca/ksycoca.cpp
sycoca/ksycocadict.cpp
sycoca/ksycocaentry.cpp
sycoca/ksycocafactory.cpp
sycoca/kprotocolinfo.cpp
sycoca/kprotocolinfofactory.cpp
text/kstringhandler.cpp
util/kautostart.cpp
util/kde_file.cpp
util/kdedmodule.cpp
util/kdevicedatabase.cpp
util/kdeversion.cpp
util/klauncher_iface.cpp
util/kmacroexpander.cpp
util/kpluginfactory.cpp
util/kpluginloader.cpp
util/kshell.cpp
util/krandom.cpp
util/kunitconversion.cpp
util/qtest_kde.cpp
kernel/ktoolinvocation_x11.cpp
kernel/kstandarddirs_unix.cpp
io/klockfile_unix.cpp
util/kshell_unix.cpp
util/kuser_unix.cpp
util/kmacroexpander_unix.cpp
${kdecore_OPTIONAL_SRCS}
)
if(NOT Q_WS_X11 AND NOT Q_WS_QWS)
add_definitions(-DNO_DISPLAY)
endif()
add_library(kdecore ${LIBRARY_TYPE} ${kdecore_LIB_SRCS})
target_link_libraries(kdecore PRIVATE
${ZLIB_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${kdecore_OPTIONAL_LIBS}
)
target_link_libraries(kdecore PUBLIC
${QT_QTCORE_LIBRARY}
${QT_QTNETWORK_LIBRARY}
${QT_QTXML_LIBRARY}
${QT_QTDBUS_LIBRARY}
)
set_target_properties(kdecore PROPERTIES
VERSION ${GENERIC_LIB_VERSION}
SOVERSION ${GENERIC_LIB_SOVERSION}
)
install(
TARGETS kdecore
EXPORT kdelibsLibraryTargets
${INSTALL_TARGETS_DEFAULT_ARGS}
)
########### next target ###############
configure_file(
localization/all_languages.desktop
${CMAKE_CURRENT_BINARY_DIR}/all_languages
@ONLY
)
add_executable(kde4-config kde-config.cpp )
target_link_libraries(kde4-config ${KDE4_KDECORE_LIBS})
install(TARGETS kde4-config ${INSTALL_TARGETS_DEFAULT_ARGS})
########### install files ###############
generate_export_header(kdecore)
install(
FILES
localization/entry.desktop
${CMAKE_CURRENT_BINARY_DIR}/all_languages
DESTINATION ${KDE4_LOCALE_INSTALL_DIR}
)
install(
FILES
kdebug.areas
kdebugrc
DESTINATION ${KDE4_CONFIG_INSTALL_DIR}
)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/kdecore_export.h
compression/kfilterbase.h
compression/kfilterdev.h
config/kconfig.h
config/kconfigbase.h
config/kconfiggroup.h
config/kdesktopfile.h
config/ksharedconfig.h
config/kcoreconfigskeleton.h
config/ksettings.h
date/kcalendarsystem.h
date/kdatetime.h
date/klocalizeddate.h
date/ksystemtimezone.h
date/ktimezone.h
io/kdebug.h
io/kdirwatch.h
io/kmessage.h
io/kprocess.h
io/klockfile.h
io/kmountpoint.h
io/ksavefile.h
io/ktempdir.h
io/ktemporaryfile.h
io/kurl.h
jobs/kcompositejob.h
jobs/kjob.h
jobs/kjobuidelegate.h
jobs/kjobtrackerinterface.h
kernel/kaboutdata.h
kernel/kauthorization.h
kernel/kcmdlineargs.h
kernel/kdbusconnectionpool.h
kernel/kglobal.h
kernel/kcomponentdata.h
kernel/kstandarddirs.h
kernel/ktoolinvocation.h
services/kmimetype.h
services/kmimetypetrader.h
services/kservice.h
services/kserviceaction.h
services/kservicegroup.h
#services/kservicefactory.h: do not install, internal API
services/kservicetype.h
#services/kservicetypefactory.h: do not install, internal API
services/kservicetypetrader.h
#services/kserviceoffer.h: do not install, internal API
services/kplugininfo.h
localization/kcharsets.h
localization/klocale.h
localization/klocalizedstring.h
sycoca/kprotocolinfo.h
sycoca/ksycoca.h
sycoca/ksycocaentry.h
sycoca/ksycocatype.h
text/kstringhandler.h
util/kautostart.h
util/kde_file.h
util/kdedmodule.h
util/kdevicedatabase.h
util/klauncher_iface.h
util/kmacroexpander.h
util/kpluginfactory.h
util/kpluginloader.h
util/kshell.h
util/krandom.h
util/kunitconversion.h
util/ksharedptr.h
util/ksortablelist.h
util/kuser.h
util/qtest_kde.h
${CMAKE_CURRENT_BINARY_DIR}/kdeversion.h
DESTINATION ${KDE4_INCLUDE_INSTALL_DIR}
COMPONENT Devel
)
install(
FILES
sonnet/backgroundchecker.h
sonnet/speller.h
sonnet/globals.h
DESTINATION ${KDE4_INCLUDE_INSTALL_DIR}/sonnet
COMPONENT Devel
)
install(
FILES
services/kplugininfo.desktop
DESTINATION ${KDE4_SERVICETYPES_INSTALL_DIR}
)
install(
FILES
pci.ids
usb.ids
kde4_pci.ids
kde4_usb.ids
DESTINATION ${KDE4_DATA_INSTALL_DIR}/kdevicedatabase
)
install(
FILES
dbus_policy.stub
dbus_service.stub
DESTINATION ${KDE4_DATA_INSTALL_DIR}/kauth
COMPONENT Devel
)