kwin/libkwineffects/CMakeLists.txt
Nicolas Fella cc763e063c [libkwineffects] Clean up link targets
Some can be private, some are in the wrong place, some are not needed at all.
2020-10-14 00:04:28 +00:00

123 lines
3.8 KiB
CMake

########### next target ###############
include(ECMSetupVersion)
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 12
)
### xrenderutils lib ###
set(kwin_XRENDERUTILS_SRCS
kwinxrenderutils.cpp
logging.cpp
)
add_library(kwinxrenderutils SHARED ${kwin_XRENDERUTILS_SRCS})
generate_export_header(kwinxrenderutils EXPORT_FILE_NAME kwinxrenderutils_export.h)
target_link_libraries(kwinxrenderutils
PUBLIC
Qt5::Core
Qt5::Gui
XCB::RENDER
XCB::XCB
XCB::XFIXES
)
set_target_properties(kwinxrenderutils PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
set_target_properties(kwinxrenderutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}xrenderutils)
install(TARGETS kwinxrenderutils EXPORT KWinEffectsTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
### effects lib ###
set(kwin_EFFECTSLIB_SRCS
anidata.cpp
kwinanimationeffect.cpp
kwineffectquickview.cpp
kwineffects.cpp
logging.cpp
)
add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
generate_export_header(kwineffects EXPORT_FILE_NAME kwineffects_export.h)
target_link_libraries(kwineffects
PUBLIC
KF5::ConfigCore
KF5::CoreAddons
KF5::WindowSystem
XCB::XCB
Plasma::KWaylandServer
PRIVATE
Qt5::Quick
KF5::Declarative
kwinglutils
)
if (KWIN_HAVE_XRENDER_COMPOSITING)
target_link_libraries(kwineffects PRIVATE kwinxrenderutils XCB::XFIXES)
endif()
set_target_properties(kwineffects PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
set_target_properties(kwineffects PROPERTIES OUTPUT_NAME ${KWIN_NAME}effects)
install(TARGETS kwineffects EXPORT KWinEffectsTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
# kwingl(es)utils library
set(kwin_GLUTILSLIB_SRCS
kwinglplatform.cpp
kwingltexture.cpp
kwinglutils.cpp
kwinglutils_funcs.cpp
kwineglimagetexture.cpp
logging.cpp
)
add_library(kwinglutils SHARED ${kwin_GLUTILSLIB_SRCS})
generate_export_header(kwinglutils BASE_NAME kwinglutils EXPORT_FILE_NAME kwinglutils_export.h)
target_include_directories(kwinglutils PUBLIC ${epoxy_INCLUDE_DIR})
target_link_libraries(kwinglutils PUBLIC XCB::XCB KF5::CoreAddons KF5::ConfigCore KF5::WindowSystem ${epoxy_LIBRARY})
set_target_properties(kwinglutils PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
OUTPUT_NAME ${KWIN_NAME}glutils
)
install(TARGETS kwinglutils EXPORT KWinEffectsTargets ${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
${CMAKE_CURRENT_BINARY_DIR}/kwinxrenderutils_export.h
kwinanimationeffect.h
kwineffectquickview.h
kwineffects.h
kwinglobals.h
kwinglplatform.h
kwingltexture.h
kwinglutils.h
kwinglutils_funcs.h
kwinxrenderutils.h
DESTINATION ${INCLUDE_INSTALL_DIR} 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:: )