2014-11-13 19:30:51 +02:00
|
|
|
########### configure tests ###############
|
|
|
|
|
2016-09-06 21:33:32 +00:00
|
|
|
option(KWIN_BUILD_OXYGEN "Enable building of default decoration Oxygen" ON)
|
|
|
|
option(KWIN_BUILD_KCMS "Enable building of KWin configuration modules." ON)
|
|
|
|
option(KWIN_BUILD_TABBOX "Enable building of KWin Tabbox functionality" ON)
|
|
|
|
option(KWIN_BUILD_SCREENEDGES "Enable building of KWin with screen edge support" ON)
|
|
|
|
option(KWIN_BUILD_COMPOSITE "Enable building of KWin with XRender Compositing support" ON)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2021-03-10 16:57:46 +02:00
|
|
|
include_directories(
|
|
|
|
${XCB_INCLUDE_DIR}
|
|
|
|
# for kworkspace_export.h
|
|
|
|
${CMAKE_BINARY_DIR}/libs/kworkspace
|
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
# for kwin internal things
|
2016-04-14 09:08:42 +00:00
|
|
|
configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
########### global ###############
|
|
|
|
|
|
|
|
include_directories(BEFORE
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/libkwineffects
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/libkwineffects
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/libkdecorations
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/effects
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tabbox
|
2016-04-14 09:08:42 +00:00
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
add_subdirectory( libkdecorations )
|
|
|
|
add_subdirectory( libkwineffects )
|
|
|
|
add_subdirectory( killer )
|
|
|
|
if(KWIN_BUILD_KCMS)
|
|
|
|
add_subdirectory( kcmkwin )
|
|
|
|
endif()
|
|
|
|
|
2015-07-11 22:12:33 +03:00
|
|
|
add_subdirectory( clients )
|
2014-11-13 19:30:51 +02:00
|
|
|
add_subdirectory( tabbox )
|
|
|
|
|
|
|
|
|
2016-09-08 00:51:09 +00:00
|
|
|
# Install the KWin/Effect service type
|
2020-02-08 19:29:32 +00:00
|
|
|
install(FILES effects/kwineffect.desktop DESTINATION ${KDE4_SERVICETYPES_INSTALL_DIR})
|
2016-09-08 00:51:09 +00:00
|
|
|
|
|
|
|
# Create initial variables
|
|
|
|
set(kwin4_effect_builtins_sources)
|
|
|
|
set(kwin4_effect_builtins_config_sources effects/configs_builtins.cpp)
|
|
|
|
set(kwin4_effect_include_directories)
|
|
|
|
|
|
|
|
include( effects/presentwindows/CMakeLists.txt )
|
|
|
|
include( effects/slidingpopups/CMakeLists.txt )
|
|
|
|
include( effects/taskbarthumbnail/CMakeLists.txt )
|
|
|
|
include( effects/diminactive/CMakeLists.txt )
|
|
|
|
include( effects/dimscreen/CMakeLists.txt )
|
|
|
|
include( effects/highlightwindow/CMakeLists.txt )
|
|
|
|
include( effects/minimizeanimation/CMakeLists.txt )
|
|
|
|
include( effects/resize/CMakeLists.txt )
|
|
|
|
include( effects/showfps/CMakeLists.txt )
|
|
|
|
include( effects/showpaint/CMakeLists.txt )
|
|
|
|
include( effects/slide/CMakeLists.txt )
|
|
|
|
include( effects/slideback/CMakeLists.txt )
|
|
|
|
include( effects/thumbnailaside/CMakeLists.txt )
|
|
|
|
include( effects/windowgeometry/CMakeLists.txt )
|
|
|
|
include( effects/zoom/CMakeLists.txt )
|
|
|
|
include( effects/logout/CMakeLists.txt )
|
|
|
|
include( effects/magnifier/CMakeLists.txt )
|
|
|
|
include( effects/mousemark/CMakeLists.txt )
|
|
|
|
include( effects/snaphelper/CMakeLists.txt )
|
|
|
|
include( effects/trackmouse/CMakeLists.txt )
|
2019-06-27 21:56:49 +00:00
|
|
|
include( effects/startupfeedback/CMakeLists.txt )
|
2016-09-08 00:51:09 +00:00
|
|
|
|
2023-06-11 23:21:43 +03:00
|
|
|
set_source_files_properties(
|
|
|
|
${kwin4_effect_builtins_config_sources}
|
|
|
|
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
|
|
|
|
)
|
|
|
|
|
2016-09-08 00:51:09 +00:00
|
|
|
kde4_add_plugin(kcm_kwin4_effect_builtins ${kwin4_effect_builtins_config_sources})
|
2023-06-17 23:26:56 +03:00
|
|
|
target_link_libraries(kcm_kwin4_effect_builtins kwineffects KDE4::kio KDE4::kdeui)
|
2020-02-08 19:29:32 +00:00
|
|
|
install(TARGETS kcm_kwin4_effect_builtins DESTINATION ${KDE4_PLUGIN_INSTALL_DIR})
|
2016-09-08 00:51:09 +00:00
|
|
|
|
2014-11-13 19:30:51 +02:00
|
|
|
########### next target ###############
|
|
|
|
|
2015-05-09 16:39:54 +00:00
|
|
|
set(kwin_SRCS
|
2014-11-13 19:30:51 +02:00
|
|
|
workspace.cpp
|
|
|
|
dbusinterface.cpp
|
|
|
|
client.cpp
|
|
|
|
client_machine.cpp
|
|
|
|
cursor.cpp
|
|
|
|
tabgroup.cpp
|
|
|
|
focuschain.cpp
|
|
|
|
netinfo.cpp
|
|
|
|
placement.cpp
|
|
|
|
atoms.cpp
|
|
|
|
utils.cpp
|
|
|
|
layers.cpp
|
|
|
|
main.cpp
|
|
|
|
options.cpp
|
|
|
|
decorations.cpp
|
|
|
|
events.cpp
|
|
|
|
killwindow.cpp
|
|
|
|
geometrytip.cpp
|
|
|
|
screens.cpp
|
|
|
|
shadow.cpp
|
|
|
|
sm.cpp
|
|
|
|
group.cpp
|
|
|
|
bridge.cpp
|
|
|
|
manage.cpp
|
|
|
|
overlaywindow.cpp
|
|
|
|
activation.cpp
|
|
|
|
useractions.cpp
|
|
|
|
geometry.cpp
|
|
|
|
rules.cpp
|
|
|
|
composite.cpp
|
|
|
|
toplevel.cpp
|
|
|
|
unmanaged.cpp
|
|
|
|
scene.cpp
|
|
|
|
scene_xrender.cpp
|
|
|
|
thumbnailitem.cpp
|
|
|
|
deleted.cpp
|
|
|
|
effects.cpp
|
|
|
|
compositingprefs.cpp
|
|
|
|
paintredirector.cpp
|
|
|
|
virtualdesktops.cpp
|
|
|
|
xcbutils.cpp
|
2016-04-14 09:08:42 +00:00
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
if(KWIN_BUILD_TABBOX)
|
2016-04-14 09:08:42 +00:00
|
|
|
set(kwin_SRCS
|
|
|
|
${kwin_SRCS}
|
2014-11-13 19:30:51 +02:00
|
|
|
tabbox/tabbox.cpp
|
|
|
|
tabbox/clientmodel.cpp
|
|
|
|
tabbox/declarative.cpp
|
|
|
|
tabbox/desktopchain.cpp
|
|
|
|
tabbox/desktopmodel.cpp
|
|
|
|
tabbox/tabboxconfig.cpp
|
|
|
|
tabbox/tabboxhandler.cpp
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(KWIN_BUILD_SCREENEDGES)
|
2016-04-14 09:08:42 +00:00
|
|
|
set(kwin_SRCS
|
|
|
|
${kwin_SRCS}
|
2014-11-13 19:30:51 +02:00
|
|
|
screenedge.cpp
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2015-05-09 16:39:54 +00:00
|
|
|
kde4_add_kcfg_files(kwin_SRCS settings.kcfgc)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2016-09-01 04:09:09 +00:00
|
|
|
qt4_add_dbus_adaptor(kwin_SRCS org.kde.KWin.xml dbusinterface.h KWin::DBusInterface)
|
|
|
|
qt4_add_dbus_adaptor(kwin_SRCS org.kde.kwin.Compositing.xml composite.h KWin::Compositor)
|
|
|
|
qt4_add_dbus_adaptor(kwin_SRCS org.kde.kwin.Effects.xml effects.h KWin::EffectsHandlerImpl)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2016-09-01 04:09:09 +00:00
|
|
|
qt4_add_dbus_interface(kwin_SRCS
|
2016-09-06 21:33:32 +00:00
|
|
|
${CMAKE_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml
|
|
|
|
ksmserver_interface
|
2016-09-01 04:09:09 +00:00
|
|
|
)
|
|
|
|
qt4_add_dbus_interface(kwin_SRCS
|
2022-04-12 22:07:48 +03:00
|
|
|
${CMAKE_SOURCE_DIR}/kscreensaver/org.freedesktop.ScreenSaver.xml
|
2016-09-06 21:33:32 +00:00
|
|
|
screenlocker_interface
|
2016-09-01 04:09:09 +00:00
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
########### target link libraries ###############
|
|
|
|
|
2016-09-06 21:33:32 +00:00
|
|
|
if (NOT X11_xf86vmode_FOUND)
|
|
|
|
add_definitions(-DKWIN_NO_XF86VM)
|
|
|
|
endif()
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2016-09-08 00:51:09 +00:00
|
|
|
add_executable(kwin ${kwin_SRCS} ${kwin4_effect_builtins_sources})
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2016-09-06 21:33:32 +00:00
|
|
|
target_link_libraries(kwin
|
2023-06-17 23:26:56 +03:00
|
|
|
KDE4::kdeui
|
|
|
|
KDE4::kdeclarative
|
2014-11-13 19:30:51 +02:00
|
|
|
${X11_X11_LIB}
|
|
|
|
${X11_Xext_LIB}
|
|
|
|
${X11_ICE_LIB}
|
|
|
|
${X11_SM_LIB}
|
|
|
|
${X11_Xcursor_LIB}
|
|
|
|
${X11_Xrandr_LIB}
|
|
|
|
${X11_Xdamage_LIB}
|
|
|
|
${X11_Xrender_LIB}
|
|
|
|
${X11_Xfixes_LIB}
|
|
|
|
${X11_XCB_LIBRARIES}
|
2016-09-06 21:33:32 +00:00
|
|
|
${XCB_XCB_LIBRARIES}
|
2014-11-13 19:30:51 +02:00
|
|
|
${XCB_XFIXES_LIBRARIES}
|
|
|
|
${XCB_DAMAGE_LIBRARIES}
|
|
|
|
${XCB_COMPOSITE_LIBRARIES}
|
|
|
|
${XCB_SHAPE_LIBRARIES}
|
|
|
|
${XCB_SYNC_LIBRARIES}
|
|
|
|
${XCB_RENDER_LIBRARIES}
|
|
|
|
${XCB_RANDR_LIBRARIES}
|
|
|
|
${XCB_KEYSYMS_LIBRARIES}
|
2016-09-06 21:33:32 +00:00
|
|
|
kdecorations
|
|
|
|
kwineffects
|
2014-11-13 19:30:51 +02:00
|
|
|
)
|
|
|
|
|
2016-09-06 21:33:32 +00:00
|
|
|
if(X11_xf86vmode_FOUND)
|
|
|
|
target_link_libraries(kwin ${X11_Xxf86vm_LIB})
|
2014-11-13 19:30:51 +02:00
|
|
|
endif()
|
|
|
|
|
2023-06-17 18:38:55 +03:00
|
|
|
install(
|
|
|
|
TARGETS kwin
|
|
|
|
DESTINATION ${KDE4_BIN_INSTALL_DIR}
|
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
|
|
|
########### install files ###############
|
|
|
|
|
2023-06-17 18:38:55 +03:00
|
|
|
install(
|
|
|
|
FILES kwin.notifyrc
|
|
|
|
DESTINATION ${KDE4_DATA_INSTALL_DIR}/kwin
|
|
|
|
)
|
2023-07-09 05:50:12 +03:00
|
|
|
|
2023-06-17 18:38:55 +03:00
|
|
|
install(
|
|
|
|
FILES org.kde.KWin.xml
|
|
|
|
DESTINATION ${KDE4_DBUS_INTERFACES_INSTALL_DIR}
|
|
|
|
)
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2020-02-08 19:29:32 +00:00
|
|
|
kde4_install_icons(${KDE4_ICON_INSTALL_DIR})
|
2014-11-13 19:30:51 +02:00
|
|
|
|
2015-09-01 04:37:19 +03:00
|
|
|
if(ENABLE_TESTING)
|
|
|
|
add_subdirectory(tests)
|
|
|
|
endif()
|