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

0001 configure_file(config-kwindowsystem.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwindowsystem.h )
0002 
0003 add_library(KF6WindowSystem)
0004 add_library(KF6::WindowSystem ALIAS KF6WindowSystem)
0005 
0006 set_target_properties(KF6WindowSystem PROPERTIES
0007     VERSION     ${KWINDOWSYSTEM_VERSION}
0008     SOVERSION   ${KWINDOWSYSTEM_SOVERSION}
0009     EXPORT_NAME WindowSystem
0010 )
0011 
0012 ecm_create_qm_loader(KF6WindowSystem kwindowsystem6_qt)
0013 
0014 target_sources(KF6WindowSystem PRIVATE
0015     kwindoweffects.cpp
0016     kwindoweffects_dummy.cpp
0017     kwindowshadow.cpp
0018     kwindowsystem.cpp
0019     pluginwrapper.cpp
0020     kwindowsystemplugininterface.cpp
0021     )
0022 ecm_qt_declare_logging_category(KF6WindowSystem
0023     HEADER kwindowsystem_debug.h
0024     IDENTIFIER LOG_KWINDOWSYSTEM
0025     CATEGORY_NAME kf.windowsystem
0026     OLD_CATEGORY_NAMES org.kde.kwindowsystem
0027     DEFAULT_SEVERITY Warning
0028     DESCRIPTION "KWindowSystem"
0029     EXPORT KWINDOWSYSTEM
0030 )
0031 
0032 if (KWINDOWSYSTEM_X11)
0033    target_include_directories(KF6WindowSystem
0034         PRIVATE
0035             ${CMAKE_CURRENT_SOURCE_DIR}/platforms/xcb
0036    )
0037 
0038    target_link_libraries(KF6WindowSystem
0039         PUBLIC
0040             # public because they are used in kkeyserver_x11.h
0041             X11::X11
0042         PRIVATE
0043             XCB::XCB
0044             XCB::RES
0045             X11::Xfixes
0046             XCB::KEYSYMS
0047             Qt6::GuiPrivate # qtx11extras_p.h
0048    )
0049 
0050    ecm_qt_declare_logging_category(KF6WindowSystem
0051         HEADER kwindowsystem_xcb_debug.h
0052         IDENTIFIER LOG_KKEYSERVER_X11
0053         CATEGORY_NAME kf.windowsystem.keyserver.x11
0054         DEFAULT_SEVERITY Warning
0055     )
0056 
0057    target_sources(KF6WindowSystem PRIVATE
0058         platforms/xcb/kselectionowner.cpp
0059         platforms/xcb/kselectionwatcher.cpp
0060         platforms/xcb/kxmessages.cpp
0061         platforms/xcb/kxutils.cpp
0062         platforms/xcb/netwm.cpp
0063         kkeyserver.cpp
0064         kx11extras.cpp
0065         kstartupinfo.cpp
0066         kusertimestamp.cpp
0067         kxerrorhandler.cpp
0068         kwindowinfo.cpp
0069    )
0070 
0071    # we install kkeyserver_x11.h which needs the X11 headers available
0072    # if we don't add the include path here code that includes kkeyserver.h will fail
0073    # to compile unless X11 is installed in /usr/include
0074    target_include_directories(KF6WindowSystem PUBLIC ${XCB_XCB_INCLUDE_DIR})
0075 endif ()
0076 
0077 if (KWINDOWSYSTEM_WAYLAND)
0078     target_sources(KF6WindowSystem PRIVATE kwaylandextras.cpp)
0079 endif()
0080 
0081 ecm_generate_export_header(KF6WindowSystem
0082     BASE_NAME KWindowSystem
0083     GROUP_BASE_NAME KF
0084     VERSION ${KF_VERSION}
0085     USE_VERSION_HEADER
0086     DEPRECATED_BASE_VERSION 0
0087     DEPRECATION_VERSIONS 6.0
0088     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0089 )
0090 
0091 target_include_directories(KF6WindowSystem INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KWindowSystem>")
0092 
0093 target_link_libraries(KF6WindowSystem
0094     PUBLIC Qt6::Gui
0095 )
0096 
0097 ecm_generate_headers(KWindowSystem_HEADERS
0098   HEADER_NAMES
0099   KWindowEffects
0100   KWindowShadow,KWindowShadowTile
0101   KWindowSystem
0102 
0103   REQUIRED_HEADERS KWindowSystem_HEADERS
0104 )
0105 
0106 if (KWINDOWSYSTEM_X11)
0107     ecm_generate_headers(KWindowSystem_HEADERS
0108     HEADER_NAMES
0109     KX11Extras
0110     KStartupInfo
0111     KUserTimestamp
0112     KKeyServer
0113     KWindowInfo
0114 
0115     REQUIRED_HEADERS KWindowSystem_HEADERS
0116     )
0117 endif()
0118 
0119 if (KWINDOWSYSTEM_WAYLAND)
0120     ecm_generate_headers(KWindowSystem_HEADERS
0121         HEADER_NAMES
0122         KWaylandExtras
0123 
0124         REQUIRED_HEADERS KWindowSystem_HEADERS
0125     )
0126 endif()
0127 
0128 install(TARGETS KF6WindowSystem EXPORT KF6WindowSystemTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0129 
0130 install(FILES
0131   # FIXME: It seems odd to install this.
0132   ${CMAKE_CURRENT_BINARY_DIR}/config-kwindowsystem.h
0133   ${CMAKE_CURRENT_BINARY_DIR}/kwindowsystem_export.h
0134   ${KWindowSystem_HEADERS}
0135   netwm_def.h
0136   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KWindowSystem COMPONENT Devel
0137 )
0138 
0139 install(
0140     FILES
0141         kwindoweffects_p.h
0142         kwindowshadow_p.h
0143         kwindowsystem_p.h
0144         kwindowsystemplugininterface_p.h
0145     DESTINATION
0146         ${KDE_INSTALL_INCLUDEDIR_KF}/KWindowSystem/private
0147     COMPONENT
0148         Devel
0149 )
0150 
0151 if(BUILD_QCH)
0152     ecm_add_qch(
0153         KF6WindowSystem_QCH
0154         NAME KWindowSystem
0155         BASE_NAME KF6WindowSystem
0156         VERSION ${KF_VERSION}
0157         ORG_DOMAIN org.kde
0158         SOURCE_DIRS
0159             # using dir for now, to cover any platform dependent code
0160             # TODO: should only use public headers, to cover only public API
0161             ${CMAKE_CURRENT_SOURCE_DIR}
0162         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0163         LINK_QCHS
0164             Qt6Gui_QCH
0165         INCLUDE_DIRS
0166             ${CMAKE_CURRENT_BINARY_DIR}
0167         BLANK_MACROS
0168             KWINDOWSYSTEM_EXPORT
0169             KWINDOWSYSTEM_DEPRECATED
0170             KWINDOWSYSTEM_DEPRECATED_EXPORT
0171             "KWINDOWSYSTEM_DEPRECATED_VERSION(x, y, t)"
0172             "KWINDOWSYSTEM_DEPRECATED_VERSION_BELATED(x, y, xt, yt, t)"
0173             "KWINDOWSYSTEM_ENUMERATOR_DEPRECATED_VERSION(x, y, t)"
0174             "KWINDOWSYSTEM_ENUMERATOR_DEPRECATED_VERSION_BELATED(x, y, xt, yt, t)"
0175         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0176         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0177         COMPONENT Devel
0178     )
0179 endif()
0180 
0181 add_subdirectory(platforms)
0182 
0183 if(KWINDOWSYSTEM_QML)
0184     add_subdirectory(qml)
0185 endif()
0186 
0187 ecm_qt_install_logging_categories(
0188     EXPORT KWINDOWSYSTEM
0189     FILE kwindowsystem.categories
0190     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0191 )
0192