Merge libkwineffects into libkwin
libkwineffects was introduced when kwin used to be an executable. It provided an api to implement effects and shielded from the technical quirks in kwin. Over the time, kwin internals had been split and abstractions were refactored so they can be consumed in scripts or plugins. Besides that, new ways to implement extensions have been introduced, which use kwin's internal abstractions. On the other hand, effects continue using libkwineffects specific apis. This has a few issues: qtquick effects use both apis and it bites us, duplicating same apis. The best solution so far is to merge libkwineffects with libkwin, and replace libkwineffects abstractions with libkwin abstractions, e.g. EffectScreen -> Output, etc. This change takes care of adjusting libs. Obviously, the main disadvantage of doing so is that binary effects have to be recompiled every time new libkwin is released. But it's already the case with libkwineffects too.master
parent
416c2c64b1
commit
d7b1661e08
@ -1,110 +0,0 @@
|
|||||||
ecm_setup_version(${PROJECT_VERSION}
|
|
||||||
VARIABLE_PREFIX KWINEFFECTS
|
|
||||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kwineffects_version.h"
|
|
||||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
|
|
||||||
SOVERSION 14
|
|
||||||
)
|
|
||||||
|
|
||||||
### effects lib ###
|
|
||||||
set(kwin_EFFECTSLIB_SRCS
|
|
||||||
anidata.cpp
|
|
||||||
kwinanimationeffect.cpp
|
|
||||||
kwineffects.cpp
|
|
||||||
kwinoffscreeneffect.cpp
|
|
||||||
kwinoffscreenquickview.cpp
|
|
||||||
kwinquickeffect.cpp
|
|
||||||
logging.cpp
|
|
||||||
rendertarget.cpp
|
|
||||||
renderviewport.cpp
|
|
||||||
effecttogglablestate.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
|
|
||||||
generate_export_header(kwineffects EXPORT_FILE_NAME kwineffects_export.h)
|
|
||||||
target_link_libraries(kwineffects
|
|
||||||
PUBLIC
|
|
||||||
KF6::ConfigCore
|
|
||||||
KF6::CoreAddons
|
|
||||||
KF6::WindowSystem
|
|
||||||
PRIVATE
|
|
||||||
XCB::XCB
|
|
||||||
Qt::GuiPrivate
|
|
||||||
Qt::Quick
|
|
||||||
KF6::I18n
|
|
||||||
kwinglutils
|
|
||||||
)
|
|
||||||
target_include_directories(kwineffects INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/kwin>")
|
|
||||||
set_target_properties(kwineffects PROPERTIES
|
|
||||||
VERSION ${KWINEFFECTS_VERSION}
|
|
||||||
SOVERSION ${KWINEFFECTS_SOVERSION}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS kwineffects EXPORT KWinEffectsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
||||||
|
|
||||||
# kwingl(es)utils library
|
|
||||||
set(kwin_GLUTILSLIB_SRCS
|
|
||||||
colorspace.cpp
|
|
||||||
glframebuffer.cpp
|
|
||||||
glplatform.cpp
|
|
||||||
glshader.cpp
|
|
||||||
glshadermanager.cpp
|
|
||||||
gltexture.cpp
|
|
||||||
glutils.cpp
|
|
||||||
glutils_funcs.cpp
|
|
||||||
glvertexbuffer.cpp
|
|
||||||
logging.cpp
|
|
||||||
openglcontext.cpp
|
|
||||||
rendertarget.cpp
|
|
||||||
renderviewport.cpp
|
|
||||||
version.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(kwinglutils SHARED ${kwin_GLUTILSLIB_SRCS})
|
|
||||||
generate_export_header(kwinglutils BASE_NAME kwinglutils EXPORT_FILE_NAME kwinglutils_export.h)
|
|
||||||
target_link_libraries(kwinglutils PUBLIC KF6::CoreAddons KF6::ConfigCore KF6::WindowSystem epoxy::epoxy PRIVATE XCB::XCB)
|
|
||||||
target_include_directories(kwinglutils INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/kwin>")
|
|
||||||
set_target_properties(kwinglutils PROPERTIES
|
|
||||||
VERSION ${KWINEFFECTS_VERSION}
|
|
||||||
SOVERSION ${KWINEFFECTS_SOVERSION}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS kwinglutils EXPORT KWinEffectsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
||||||
|
|
||||||
install(FILES
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/kwinconfig.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/kwineffects_export.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/kwinglutils_export.h
|
|
||||||
colorspace.h
|
|
||||||
glframebuffer.h
|
|
||||||
glplatform.h
|
|
||||||
glshader.h
|
|
||||||
glshadermanager.h
|
|
||||||
gltexture.h
|
|
||||||
glutils.h
|
|
||||||
glutils_funcs.h
|
|
||||||
glvertexbuffer.h
|
|
||||||
kwinanimationeffect.h
|
|
||||||
kwineffects.h
|
|
||||||
kwinglobals.h
|
|
||||||
kwinoffscreeneffect.h
|
|
||||||
kwinoffscreenquickview.h
|
|
||||||
kwinquickeffect.h
|
|
||||||
rendertarget.h
|
|
||||||
renderviewport.h
|
|
||||||
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin/libkwineffects COMPONENT Devel)
|
|
||||||
|
|
||||||
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWinEffects")
|
|
||||||
|
|
||||||
|
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfig.cmake"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
|
|
||||||
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
|
|
||||||
COMPONENT Devel )
|
|
||||||
|
|
||||||
configure_package_config_file(
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/KWinEffectsConfig.cmake.in"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfig.cmake"
|
|
||||||
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(EXPORT KWinEffectsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KWinEffectsTargets.cmake NAMESPACE KWinEffects:: )
|
|
@ -1,11 +0,0 @@
|
|||||||
@PACKAGE_INIT@
|
|
||||||
|
|
||||||
include(CMakeFindDependencyMacro)
|
|
||||||
find_dependency(Qt6Core "@QT_MIN_VERSION@")
|
|
||||||
find_dependency(Qt6Gui "@QT_MIN_VERSION@")
|
|
||||||
find_dependency(KF6Config "@KF6_MIN_VERSION@")
|
|
||||||
find_dependency(KF6CoreAddons "@KF6_MIN_VERSION@")
|
|
||||||
find_dependency(KF6WindowSystem "@KF6_MIN_VERSION@")
|
|
||||||
|
|
||||||
@PACKAGE_SETUP_KWINEFFECTS_AUTOMOC_VARIABLES@
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/KWinEffectsTargets.cmake")
|
|
@ -1,22 +0,0 @@
|
|||||||
/** @mainpage KWin Effects Library
|
|
||||||
|
|
||||||
<p>
|
|
||||||
@ref kwineffects is a library for implementing window transition effect
|
|
||||||
plugins for KWin.
|
|
||||||
|
|
||||||
@authors
|
|
||||||
Lubos Lunak \<l.lunak@kde.org\><br>
|
|
||||||
Rivo Laks \<rivolaks@hot.ee\><br>
|
|
||||||
Lucas Murray \<lmurray@undefinedfire.com\><br>
|
|
||||||
Fredrik Höglund \<fredrik@kde.org\><br>
|
|
||||||
Martin Gräßlin \<mgraesslin@kde.org\>
|
|
||||||
|
|
||||||
@maintainers
|
|
||||||
Martin Gräßlin \<mgraesslin@kde.org\>
|
|
||||||
|
|
||||||
@licences
|
|
||||||
libkwineffects: @gpl
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
// DOXYGEN_SET_PROJECT_NAME = KWin Effects Library
|
|
@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
This file includes config #define's for KWin's libraries
|
|
||||||
that are installed. Installed files and files using them
|
|
||||||
should be using these instead of their own.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef KWINCONFIG_H
|
|
||||||
#define KWINCONFIG_H
|
|
||||||
|
|
||||||
#define KWIN_PLUGIN_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
These should be primarily used to detect what kind of compositing
|
|
||||||
support is available.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#cmakedefine01 HAVE_GLX
|
|
||||||
|
|
||||||
#cmakedefine01 HAVE_DL_LIBRARY
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue