Build platform plugins in correct sub directory of build dir
Summary: This brings KWin a step closer to be run from build dir without having to install at all. The integration tests are adjusted so that the virtual platform is still found which makes the code be closer to what is used in normal kwin_wayland. Test Plan: ctest passes, manually verified correct plugin is loaded Reviewers: #kwin Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D17388
This commit is contained in:
parent
a0b482cbab
commit
c8ede9a5ff
9 changed files with 18 additions and 4 deletions
|
@ -60,7 +60,17 @@ WaylandTestApplication::WaylandTestApplication(OperationMode mode, int &argc, ch
|
|||
qunsetenv("XKB_DEFAULT_LAYOUT");
|
||||
qunsetenv("XKB_DEFAULT_VARIANT");
|
||||
qunsetenv("XKB_DEFAULT_OPTIONS");
|
||||
initPlatform(KPluginMetaData(QStringLiteral("KWinWaylandVirtualBackend.so")));
|
||||
|
||||
const auto ownPath = libraryPaths().last();
|
||||
removeLibraryPath(ownPath);
|
||||
addLibraryPath(ownPath);
|
||||
|
||||
const auto plugins = KPluginLoader::findPluginsById(QStringLiteral("org.kde.kwin.waylandbackends"), "KWinWaylandVirtualBackend");
|
||||
if (plugins.empty()) {
|
||||
quit();
|
||||
return;
|
||||
}
|
||||
initPlatform(plugins.first());
|
||||
WaylandServer::create(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -200,9 +200,6 @@ int main(int argc, char *argv[]) \
|
|||
DPI; \
|
||||
KWin::WaylandTestApplication app(OperationMode, argc, argv); \
|
||||
app.setAttribute(Qt::AA_Use96Dpi, true); \
|
||||
const auto ownPath = app.libraryPaths().last(); \
|
||||
app.removeLibraryPath(ownPath); \
|
||||
app.addLibraryPath(ownPath); \
|
||||
TestObject tc; \
|
||||
return QTest::qExec(&tc, argc, argv); \
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ endif()
|
|||
include_directories(${CMAKE_SOURCE_DIR}/platformsupport/scenes/opengl)
|
||||
|
||||
add_library(KWinWaylandDrmBackend MODULE ${DRM_SOURCES})
|
||||
set_target_properties(KWinWaylandDrmBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandDrmBackend kwin Libdrm::Libdrm SceneQPainterBackend SceneOpenGLBackend)
|
||||
|
||||
if(HAVE_GBM)
|
||||
|
|
|
@ -5,6 +5,7 @@ set(FBDEV_SOURCES
|
|||
)
|
||||
|
||||
add_library(KWinWaylandFbdevBackend MODULE ${FBDEV_SOURCES})
|
||||
set_target_properties(KWinWaylandFbdevBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandFbdevBackend kwin SceneQPainterBackend)
|
||||
|
||||
install(
|
||||
|
|
|
@ -7,6 +7,7 @@ set(HWCOMPOSER_SOURCES
|
|||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/platformsupport/scenes/opengl)
|
||||
add_library(KWinWaylandHwcomposerBackend MODULE ${HWCOMPOSER_SOURCES})
|
||||
set_target_properties(KWinWaylandHwcomposerBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandHwcomposerBackend
|
||||
kwin
|
||||
libhybris::libhardware
|
||||
|
|
|
@ -11,6 +11,7 @@ include(ECMQtDeclareLoggingCategory)
|
|||
ecm_qt_declare_logging_category(VIRTUAL_SOURCES HEADER logging.h IDENTIFIER KWIN_VIRTUAL CATEGORY_NAME kwin_platform_virtual DEFAULT_SEVERITY Critical)
|
||||
|
||||
add_library(KWinWaylandVirtualBackend MODULE ${VIRTUAL_SOURCES})
|
||||
set_target_properties(KWinWaylandVirtualBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandVirtualBackend kwin SceneQPainterBackend SceneOpenGLBackend)
|
||||
|
||||
if(HAVE_GBM)
|
||||
|
|
|
@ -10,6 +10,7 @@ endif()
|
|||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/platformsupport/scenes/opengl)
|
||||
add_library(KWinWaylandWaylandBackend MODULE ${WAYLAND_BACKEND_SOURCES})
|
||||
set_target_properties(KWinWaylandWaylandBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandWaylandBackend kwin KF5::WaylandClient SceneQPainterBackend)
|
||||
|
||||
if(HAVE_WAYLAND_EGL)
|
||||
|
|
|
@ -26,6 +26,7 @@ endif()
|
|||
include_directories(${CMAKE_SOURCE_DIR}/platformsupport/scenes/opengl)
|
||||
|
||||
add_library(KWinX11Platform MODULE ${X11PLATFORM_SOURCES})
|
||||
set_target_properties(KWinX11Platform PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.platforms/")
|
||||
target_link_libraries(KWinX11Platform eglx11common kwin kwinxrenderutils SceneOpenGLBackend Qt5::X11Extras XCB::CURSOR KF5::Crash)
|
||||
if(X11_Xinput_FOUND)
|
||||
target_link_libraries(KWinX11Platform ${X11_Xinput_LIB})
|
||||
|
|
|
@ -7,6 +7,7 @@ set(X11BACKEND_SOURCES
|
|||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/platformsupport/scenes/opengl)
|
||||
add_library(KWinWaylandX11Backend MODULE ${X11BACKEND_SOURCES})
|
||||
set_target_properties(KWinWaylandX11Backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.waylandbackends/")
|
||||
target_link_libraries(KWinWaylandX11Backend eglx11common kwin kwinxrenderutils X11::XCB SceneQPainterBackend SceneOpenGLBackend)
|
||||
|
||||
install(
|
||||
|
|
Loading…
Reference in a new issue