862bf0f153
Summary: Now, when the scripting effects API has all required ingredients to port the Scale effect to JavaScript we finally can do it. The main rationale for porting this effect to JavaScript is that scripted effects API lets us focus more on what we want instead of "how". Visually, the ported version doesn't deviate from the C++ version. Test Plan: * Enable the Scale effect; * Open/close a window. Reviewers: #kwin, graesslin Reviewed By: #kwin, graesslin Subscribers: graesslin, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D16478
194 lines
5.5 KiB
CMake
194 lines
5.5 KiB
CMake
# KI18N Translation Domain for this library
|
|
add_definitions(-DTRANSLATION_DOMAIN=\"kwin_effects\" -DEFFECT_BUILTINS)
|
|
|
|
include_directories(${KWIN_SOURCE_DIR}) # for xcbutils.h
|
|
|
|
set(kwin_effect_OWN_LIBS
|
|
kwineffects
|
|
)
|
|
|
|
if( KWIN_HAVE_XRENDER_COMPOSITING )
|
|
set(kwin_effect_OWN_LIBS ${kwin_effect_OWN_LIBS} kwinxrenderutils)
|
|
endif()
|
|
|
|
set(kwin_effect_KDE_LIBS
|
|
KF5::ConfigGui
|
|
KF5::ConfigWidgets
|
|
KF5::GlobalAccel
|
|
KF5::I18n
|
|
KF5::WindowSystem
|
|
KF5::Plasma # screenedge effect
|
|
KF5::IconThemes
|
|
KF5::Service
|
|
KF5::Notifications # screenshot effect
|
|
)
|
|
|
|
set(kwin_effect_QT_LIBS
|
|
Qt5::Concurrent
|
|
Qt5::DBus
|
|
Qt5::Quick
|
|
Qt5::X11Extras
|
|
)
|
|
|
|
set(kwin_effect_XLIB_LIBS
|
|
${X11_X11_LIB}
|
|
)
|
|
|
|
set(kwin_effect_XCB_LIBS
|
|
XCB::XCB
|
|
XCB::IMAGE
|
|
XCB::XFIXES
|
|
)
|
|
|
|
if( KWIN_HAVE_XRENDER_COMPOSITING )
|
|
set(kwin_effect_XCB_LIBS ${kwin_effect_XCB_LIBS} XCB::RENDER)
|
|
endif()
|
|
|
|
set(kwin_effect_OWN_LIBS ${kwin_effect_OWN_LIBS} kwinglutils)
|
|
|
|
macro( KWIN4_ADD_EFFECT_BACKEND name )
|
|
add_library( ${name} SHARED ${ARGN} )
|
|
target_link_libraries( ${name} PRIVATE ${kwin_effect_OWN_LIBS} ${kwin_effect_KDE_LIBS} ${kwin_effect_QT_LIBS} ${kwin_effect_XLIB_LIBS} ${kwin_effect_XCB_LIBS})
|
|
endmacro()
|
|
|
|
# Adds effect plugin with given name. Sources are given after the name
|
|
macro( KWIN4_ADD_EFFECT name )
|
|
kwin4_add_effect_backend(kwin4_effect_${name} ${ARGN})
|
|
|
|
set_target_properties(kwin4_effect_${name} PROPERTIES VERSION 1.0.0 SOVERSION 1 )
|
|
set_target_properties(kwin4_effect_${name} PROPERTIES OUTPUT_NAME ${KWIN_NAME}4_effect_${name})
|
|
install(TARGETS kwin4_effect_${name} ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
|
|
|
endmacro()
|
|
|
|
# Install the KWin/Effect service type
|
|
install( FILES kwineffect.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
|
|
|
|
# Create initial variables
|
|
set( kwin4_effect_include_directories )
|
|
|
|
set( kwin4_effect_builtins_sources
|
|
logging.cpp
|
|
effect_builtins.cpp
|
|
blur/blur.cpp
|
|
blur/blurshader.cpp
|
|
colorpicker/colorpicker.cpp
|
|
cube/cube.cpp
|
|
cube/cube_proxy.cpp
|
|
cubeslide/cubeslide.cpp
|
|
coverswitch/coverswitch.cpp
|
|
desktopgrid/desktopgrid.cpp
|
|
diminactive/diminactive.cpp
|
|
flipswitch/flipswitch.cpp
|
|
glide/glide.cpp
|
|
invert/invert.cpp
|
|
lookingglass/lookingglass.cpp
|
|
magiclamp/magiclamp.cpp
|
|
magnifier/magnifier.cpp
|
|
mouseclick/mouseclick.cpp
|
|
mousemark/mousemark.cpp
|
|
presentwindows/presentwindows.cpp
|
|
presentwindows/presentwindows_proxy.cpp
|
|
resize/resize.cpp
|
|
showfps/showfps.cpp
|
|
showpaint/showpaint.cpp
|
|
slide/slide.cpp
|
|
thumbnailaside/thumbnailaside.cpp
|
|
touchpoints/touchpoints.cpp
|
|
trackmouse/trackmouse.cpp
|
|
windowgeometry/windowgeometry.cpp
|
|
wobblywindows/wobblywindows.cpp
|
|
zoom/zoom.cpp
|
|
)
|
|
|
|
qt5_add_resources( kwin4_effect_builtins_sources shaders.qrc )
|
|
|
|
kconfig_add_kcfg_files(kwin4_effect_builtins_sources
|
|
blur/blurconfig.kcfgc
|
|
cube/cubeconfig.kcfgc
|
|
cubeslide/cubeslideconfig.kcfgc
|
|
coverswitch/coverswitchconfig.kcfgc
|
|
desktopgrid/desktopgridconfig.kcfgc
|
|
diminactive/diminactiveconfig.kcfgc
|
|
fallapart/fallapartconfig.kcfgc
|
|
flipswitch/flipswitchconfig.kcfgc
|
|
glide/glideconfig.kcfgc
|
|
lookingglass/lookingglassconfig.kcfgc
|
|
magiclamp/magiclampconfig.kcfgc
|
|
magnifier/magnifierconfig.kcfgc
|
|
mouseclick/mouseclickconfig.kcfgc
|
|
mousemark/mousemarkconfig.kcfgc
|
|
presentwindows/presentwindowsconfig.kcfgc
|
|
resize/resizeconfig.kcfgc
|
|
showfps/showfpsconfig.kcfgc
|
|
slide/slideconfig.kcfgc
|
|
slidingpopups/slidingpopupsconfig.kcfgc
|
|
thumbnailaside/thumbnailasideconfig.kcfgc
|
|
trackmouse/trackmouseconfig.kcfgc
|
|
windowgeometry/windowgeometryconfig.kcfgc
|
|
wobblywindows/wobblywindowsconfig.kcfgc
|
|
zoom/zoomconfig.kcfgc
|
|
)
|
|
|
|
# scripted effects
|
|
add_subdirectory( dialogparent )
|
|
add_subdirectory( eyeonscreen )
|
|
add_subdirectory( fade )
|
|
add_subdirectory( fadedesktop )
|
|
add_subdirectory( frozenapp )
|
|
add_subdirectory( login )
|
|
add_subdirectory( logout )
|
|
add_subdirectory( maximize )
|
|
add_subdirectory( morphingpopups )
|
|
add_subdirectory( scale )
|
|
add_subdirectory( squash )
|
|
add_subdirectory( translucency )
|
|
add_subdirectory( windowaperture )
|
|
|
|
###############################################################################
|
|
# Built-in effects go here
|
|
|
|
# Common effects
|
|
add_subdirectory( desktopgrid )
|
|
add_subdirectory( diminactive )
|
|
include( dimscreen/CMakeLists.txt )
|
|
include( fallapart/CMakeLists.txt )
|
|
include( highlightwindow/CMakeLists.txt )
|
|
include( kscreen/CMakeLists.txt )
|
|
add_subdirectory( magiclamp )
|
|
add_subdirectory( presentwindows )
|
|
add_subdirectory( resize )
|
|
include( screenedge/CMakeLists.txt )
|
|
add_subdirectory( showfps )
|
|
add_subdirectory( showpaint )
|
|
add_subdirectory( slide )
|
|
include( slideback/CMakeLists.txt )
|
|
include( slidingpopups/CMakeLists.txt )
|
|
add_subdirectory( thumbnailaside )
|
|
add_subdirectory( windowgeometry )
|
|
add_subdirectory( zoom )
|
|
|
|
# OpenGL-specific effects
|
|
add_subdirectory( blur )
|
|
include( backgroundcontrast/CMakeLists.txt )
|
|
add_subdirectory( coverswitch )
|
|
add_subdirectory( cube )
|
|
add_subdirectory( cubeslide )
|
|
add_subdirectory( flipswitch )
|
|
add_subdirectory( glide )
|
|
add_subdirectory( invert )
|
|
add_subdirectory( lookingglass )
|
|
add_subdirectory( magnifier )
|
|
add_subdirectory( mouseclick )
|
|
add_subdirectory( mousemark )
|
|
include( screenshot/CMakeLists.txt )
|
|
include( sheet/CMakeLists.txt )
|
|
include( snaphelper/CMakeLists.txt )
|
|
include( startupfeedback/CMakeLists.txt )
|
|
add_subdirectory( trackmouse )
|
|
add_subdirectory( wobblywindows )
|
|
|
|
###############################################################################
|
|
|
|
# Add the builtins plugin
|
|
kwin4_add_effect( builtins ${kwin4_effect_builtins_sources} )
|