mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-24 02:42:50 +00:00

removed via 2efd951b7d
however Attica's
default providers are basicly stub and the plugin is required since the
only provider is KDE.
the Attica tests require it in fact otherwise one of the tests crashes.
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
331 lines
11 KiB
CMake
331 lines
11 KiB
CMake
project(kde-workspace)
|
|
|
|
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
|
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
|
|
|
|
include(CheckIncludeFiles)
|
|
include(CheckFunctionExists)
|
|
include(GenerateExportHeader)
|
|
|
|
find_package(KDE4 4.19.0 REQUIRED)
|
|
include(KDE4Defaults)
|
|
|
|
option(WITH_XINERAMA "Xinerama support for multi-headed X displays" ON)
|
|
|
|
find_package(ZLIB)
|
|
set_package_properties(ZLIB PROPERTIES
|
|
DESCRIPTION "Support for gzip compressed files and data streams"
|
|
URL "http://www.zlib.net"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
macro_optional_find_package(DBusMenuQt 0.6.0)
|
|
set_package_properties(DBusMenuQt PROPERTIES
|
|
DESCRIPTION "Support for notification area menus via the DBusMenu protocol"
|
|
URL "https://launchpad.net/libdbusmenu-qt"
|
|
TYPE RECOMMENDED
|
|
)
|
|
|
|
macro_optional_find_package(Strigi 0.6.3)
|
|
set_package_properties(Strigi PROPERTIES
|
|
DESCRIPTION "Desktop indexing and search support"
|
|
URL "http://strigi.sourceforge.net"
|
|
PURPOSE "Fonts analyzer"
|
|
TYPE RECOMMENDED
|
|
)
|
|
|
|
macro_optional_find_package(OpenGL)
|
|
set_package_properties(OpenGL PROPERTIES
|
|
DESCRIPTION "The OpenGL libraries"
|
|
URL "http://www.opengl.org"
|
|
PURPOSE "3D screensavers and OpenGL info module"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
macro_optional_find_package(OpenGLES)
|
|
set_package_properties(OpenGLES PROPERTIES
|
|
DESCRIPTION "The OpenGLES libraries"
|
|
URL "http://www.khronos.org/opengles"
|
|
TYPE OPTIONAL
|
|
PURPOSE "OpenGL ES info module"
|
|
)
|
|
|
|
macro_optional_find_package(UDev)
|
|
set_package_properties(UDev PROPERTIES
|
|
DESCRIPTION "The UDev Libraries"
|
|
PURPOSE "Allows support for UPower backend in PowerDevil - STRONGLY RECOMMENDED"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
if(Q_WS_X11)
|
|
find_package(XCB REQUIRED)
|
|
set_package_properties(XCB PROPERTIES
|
|
DESCRIPTION "X protocol C-language Binding"
|
|
URL "http://xcb.freedesktop.org"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
find_package(X11_XCB)
|
|
set_package_properties(X11_XCB
|
|
PROPERTIES DESCRIPTION "XCB X11 protocol client library"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
find_package(X11)
|
|
set_package_properties(X11 PROPERTIES
|
|
DESCRIPTION "X11 libraries"
|
|
URL "http://www.x.org"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
add_feature_info("Automated testing of X clients" X11_XTest_FOUND
|
|
"The X11 Testing Resource extension library is useful for automated testing of X clients")
|
|
add_feature_info("libXau" X11_Xau_FOUND "The X11 Authorization Protocol library may be used by KDM")
|
|
add_feature_info("LibXdmcp" X11_Xdmcp_FOUND "The X Display Manager Control Protocol library may be used by KDM")
|
|
|
|
if(NOT X11_Xdamage_FOUND)
|
|
message(FATAL_ERROR "The X11 damaged region extension library was not found. Required for compositing support in KWin.")
|
|
endif()
|
|
if(NOT X11_Xrender_FOUND)
|
|
message(FATAL_ERROR " The X Rendering Extension client library was not found. Required for XRender Compositing backend in KWin.")
|
|
endif()
|
|
if(NOT X11_Xfixes_FOUND)
|
|
message(FATAL_ERROR "The X11 miscellaneous 'fixes' extension library was not found. Required for XRender Compositing backend in KWin.")
|
|
endif()
|
|
if(NOT X11_Xrandr_FOUND)
|
|
message(FATAL_ERROR "The X11 RandR extension library was not found. Required for Multi Screen Support.")
|
|
endif()
|
|
if(NOT X11_Xcursor_FOUND)
|
|
message(FATAL_ERROR "The X11 cursor management library was not found. Required for desktop effects support in KWin.")
|
|
endif()
|
|
endif(Q_WS_X11)
|
|
|
|
macro_optional_find_package(Fontconfig)
|
|
set_package_properties(Fontconfig PROPERTIES
|
|
DESCRIPTION "Font access configuration library"
|
|
URL "http://www.freedesktop.org/wiki/Software/fontconfig"
|
|
PURPOSE "Needed to build font configuration and installation tools"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
find_package(LibGcrypt 1.5.0)
|
|
set_package_properties(LibGcrypt PROPERTIES
|
|
DESCRIPTION "general purpose cryptographic library based on the code from GnuPG"
|
|
URL "https://www.gnu.org/software/libgcrypt/"
|
|
PURPOSE "kwalletd needs libgcrypt to perform PBKDF2-SHA512 hashing"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
find_package(JPEG)
|
|
set_package_properties(JPEG PROPERTIES
|
|
DESCRIPTION "Accelerated JPEG image codec"
|
|
URL "http://libjpeg-turbo.virtualgl.org/"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
find_package(PNG)
|
|
set_package_properties(PNG PROPERTIES
|
|
DESCRIPTION "An Open, Extensible Image Format with Lossless Compression"
|
|
URL "http://www.libpng.org/"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
macro_optional_find_package(LibGPS)
|
|
set_package_properties(LibGPS PROPERTIES
|
|
DESCRIPTION "GPSes/AIS service library"
|
|
URL "http://www.catb.org/gpsd/"
|
|
PURPOSE "GPS support for geolocation in plasma dataengine"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
macro_optional_find_package(LibKonq)
|
|
set_package_properties(LibKonq PROPERTIES
|
|
DESCRIPTION "Konqueror library"
|
|
URL "http://fluxer.github.io/katana/"
|
|
PURPOSE "folderview plasma applets"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
find_package(Perl)
|
|
set_package_properties(Perl PROPERTIES
|
|
DESCRIPTION "Highly capable, feature-rich programming language"
|
|
URL "http://www.perl.org"
|
|
PURPOSE "Needed for KDM config handler generator, as well as info and finger KIO slaves"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
set(POLKITQT-1_MIN_VERSION "0.99.0")
|
|
macro_optional_find_package(PolkitQt-1)
|
|
set_package_properties(PolkitQt-1 PROPERTIES
|
|
DESCRIPTION "Qt wrapper around polkit-1 client libraries"
|
|
URL "https://cgit.kde.org/polkit-qt-1.git/"
|
|
PURPOSE "polkit-1 agent"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
macro_optional_find_package(LibAttica 0.1.4)
|
|
set_package_properties(LibAttica PROPERTIES
|
|
DESCRIPTION "Attica Library"
|
|
URL "https://github.com/fluxer/attica"
|
|
PURPOSE "Attica is needed for KDE specific Open Collaboration Service providers"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
check_include_files(sys/wait.h HAVE_SYS_WAIT_H)
|
|
check_include_files(sys/time.h HAVE_SYS_TIME_H)
|
|
|
|
include(ConfigureChecks.cmake)
|
|
configure_file(config-runtime.h.cmake ${CMAKE_BINARY_DIR}/config-runtime.h)
|
|
configure_file(config-unix.h.cmake ${CMAKE_BINARY_DIR}/config-unix.h )
|
|
configure_file(config-X11.h.cmake ${CMAKE_BINARY_DIR}/config-X11.h )
|
|
if(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
|
set(EXPORT_XCURSOR_PATH "XCURSOR_PATH=${CMAKE_INSTALL_PREFIX}/share/icons:$XCURSOR_PATH\":~/.icons:/usr/share/icons:/usr/share/pixmaps:/usr/X11R6/lib/X11/icons\"; export XCURSOR_PATH")
|
|
endif(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
|
configure_file(startkde.cmake ${CMAKE_BINARY_DIR}/startkde @ONLY)
|
|
configure_file(config-workspace.h.cmake ${CMAKE_BINARY_DIR}/config-workspace.h )
|
|
|
|
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
|
|
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${CMAKE_SOURCE_DIR}/libs)
|
|
|
|
# libs
|
|
add_subdirectory(libs)
|
|
# pictures
|
|
add_subdirectory(pics)
|
|
|
|
macro_optional_add_subdirectory(systemsettings )
|
|
|
|
# core apps
|
|
macro_optional_add_subdirectory(kcheckpass)
|
|
macro_optional_add_subdirectory(kwin)
|
|
macro_optional_add_subdirectory(ksmserver)
|
|
|
|
macro_optional_add_subdirectory(ksplash)
|
|
|
|
macro_optional_add_subdirectory(powerdevil)
|
|
macro_optional_add_subdirectory(qguiplatformplugin_kde)
|
|
macro_optional_add_subdirectory(ksysguard)
|
|
|
|
macro_optional_add_subdirectory(kcontrol)
|
|
macro_optional_add_subdirectory(klipper)
|
|
macro_optional_add_subdirectory(kmenuedit)
|
|
macro_optional_add_subdirectory(krunner)
|
|
macro_optional_add_subdirectory(solid-actions-kcm)
|
|
macro_optional_add_subdirectory(kstartupconfig)
|
|
macro_optional_add_subdirectory(freespacenotifier)
|
|
macro_optional_add_subdirectory(kscreensaver)
|
|
macro_optional_add_subdirectory(kinfocenter)
|
|
|
|
if(Q_WS_X11 AND X11_Xinput_FOUND)
|
|
macro_optional_add_subdirectory(ktouchpadenabler)
|
|
endif(Q_WS_X11 AND X11_Xinput_FOUND)
|
|
|
|
macro_optional_add_subdirectory(kcminit)
|
|
macro_optional_add_subdirectory(khotkeys)
|
|
macro_optional_add_subdirectory(kwrited)
|
|
macro_optional_add_subdirectory(ksystraycmd)
|
|
macro_optional_add_subdirectory(appmenu)
|
|
|
|
if(X11_Xau_FOUND AND X11_Xdmcp_FOUND)
|
|
macro_optional_add_subdirectory( kdm )
|
|
else(X11_Xau_FOUND AND X11_Xdmcp_FOUND)
|
|
message(STATUS "Xau lib or Xdmcp lib was missing. kdm will not compile")
|
|
endif(X11_Xau_FOUND AND X11_Xdmcp_FOUND)
|
|
|
|
# data
|
|
macro_optional_add_subdirectory(cursors)
|
|
|
|
macro_optional_add_subdirectory(plasma)
|
|
macro_optional_add_subdirectory(statusnotifierwatcher)
|
|
macro_optional_add_subdirectory(kstyles)
|
|
|
|
# imported from kde-runtime and other sub-projects
|
|
macro_optional_add_subdirectory(menu)
|
|
macro_optional_add_subdirectory(kwalletd)
|
|
macro_optional_add_subdirectory(kwalletmanager)
|
|
macro_optional_add_subdirectory(knotify)
|
|
macro_optional_add_subdirectory(kuiserver)
|
|
macro_optional_add_subdirectory(soliduiserver)
|
|
macro_optional_add_subdirectory(solidautoeject)
|
|
macro_optional_add_subdirectory(solid-device-automounter)
|
|
macro_optional_add_subdirectory(solid-networkstatus)
|
|
macro_optional_add_subdirectory(kcmshell)
|
|
macro_optional_add_subdirectory(kioslave)
|
|
macro_optional_add_subdirectory(kurifilter-plugins)
|
|
macro_optional_add_subdirectory(renamedlgplugins)
|
|
macro_optional_add_subdirectory(kquitapp)
|
|
if (Q_WS_X11)
|
|
macro_optional_add_subdirectory(kstart)
|
|
endif (Q_WS_X11)
|
|
if (POLKITQT-1_FOUND)
|
|
macro_optional_add_subdirectory(polkit-kde-agent)
|
|
endif(POLKITQT-1_FOUND)
|
|
# Background processes
|
|
macro_optional_add_subdirectory(kpasswdserver)
|
|
macro_optional_add_subdirectory(kdontchangethehostname)
|
|
macro_optional_add_subdirectory(kglobalaccel)
|
|
macro_optional_add_subdirectory(ktimezoned)
|
|
# Command-line tools (e.g. for shell scripts)
|
|
macro_optional_add_subdirectory(kdeeject)
|
|
macro_optional_add_subdirectory(kfile)
|
|
macro_optional_add_subdirectory(kiconfinder)
|
|
macro_optional_add_subdirectory(kioclient)
|
|
macro_optional_add_subdirectory(kioexec)
|
|
macro_optional_add_subdirectory(ktraderclient)
|
|
macro_optional_add_subdirectory(kreadconfig)
|
|
macro_optional_add_subdirectory(kmimetypefinder)
|
|
# UI Helper applications
|
|
macro_optional_add_subdirectory(drkonqi)
|
|
macro_optional_add_subdirectory(knetattach)
|
|
macro_optional_add_subdirectory(keditfiletype)
|
|
# Default settings, content and config
|
|
macro_optional_add_subdirectory(l10n)
|
|
macro_optional_add_subdirectory(localization)
|
|
macro_optional_add_subdirectory(kde-menu)
|
|
# Integration for attica
|
|
if(LIBATTICA_FOUND)
|
|
macro_optional_add_subdirectory(attica)
|
|
endif()
|
|
|
|
########### install files ###############
|
|
# install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kde4 DESTINATION ${KDE4_BIN_INSTALL_DIR})
|
|
install(PROGRAMS ${CMAKE_BINARY_DIR}/startkde DESTINATION ${KDE4_BIN_INSTALL_DIR})
|
|
|
|
set(KDE4WORKSPACE_TARGET_PREFIX KDE4Workspace::)
|
|
|
|
configure_file(
|
|
KDE4WorkspaceConfig.cmake.in
|
|
"${CMAKE_BINARY_DIR}/KDE4WorkspaceConfig.cmake"
|
|
@ONLY
|
|
)
|
|
configure_file(
|
|
KDE4WorkspaceVersion.cmake.in
|
|
"${CMAKE_BINARY_DIR}/KDE4WorkspaceVersion.cmake"
|
|
@ONLY
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
${CMAKE_BINARY_DIR}/KDE4WorkspaceConfig.cmake
|
|
${CMAKE_BINARY_DIR}/KDE4WorkspaceVersion.cmake
|
|
DESTINATION ${KDE4_DATA_INSTALL_DIR}/cmake/modules
|
|
)
|
|
|
|
# run a script before installing the exports files which deletes previously
|
|
# installed configuration specific export files, if the main exports file has
|
|
# changed this makes sure it doesn't include older and different configuration
|
|
# specific exports files, which might have a different set of targets or
|
|
# targets with different names.
|
|
install(
|
|
CODE "set(EXPORT_FILES KDE4WorkspaceLibraryTargets.cmake)"
|
|
CODE "set(EXPORT_INSTALL_DIR \"${KDE4_DATA_INSTALL_DIR}/cmake/modules\")"
|
|
SCRIPT "${CMAKE_SOURCE_DIR}/cmake/modules/check_installed_exports_file.cmake"
|
|
)
|
|
|
|
install(
|
|
EXPORT kdeworkspaceLibraryTargets
|
|
NAMESPACE ${KDE4WORKSPACE_TARGET_PREFIX}
|
|
DESTINATION ${KDE4_DATA_INSTALL_DIR}/cmake/modules
|
|
FILE KDE4WorkspaceLibraryTargets.cmake
|
|
)
|
|
|
|
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
|