Skip to content

Commit 756fa6b

Browse files
SushiTeeTheAssassin
authored andcommitted
added waylandcompositor plugin deployer
1 parent 52d9a4c commit 756fa6b

4 files changed

+61
-0
lines changed

src/deployers/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ set(CLASSES
2121
PrintSupportPluginsDeployer
2222
TextToSpeechPluginsDeployer
2323
TlsBackendsDeployer
24+
WaylandcompositorPluginsDeployer
2425
)
2526

2627
# TODO: CMake <= 3.7 (at least!) doesn't allow for using OBJECT libraries with target_link_libraries

src/deployers/PluginsDeployerFactory.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "WebEnginePluginsDeployer.h"
1818
#include "XcbglIntegrationPluginsDeployer.h"
1919
#include "TlsBackendsDeployer.h"
20+
#include "WaylandcompositorPluginsDeployer.h"
2021

2122
using namespace linuxdeploy::plugin::qt;
2223
using namespace linuxdeploy::core::appdir;
@@ -103,6 +104,10 @@ std::vector<std::shared_ptr<PluginsDeployer>> PluginsDeployerFactory::getDeploye
103104
return {getInstance<TextToSpeechPluginsDeployer>(moduleName)};
104105
}
105106

107+
if (moduleName == "waylandcompositor") {
108+
return {getInstance<WaylandcompositorPluginsDeployer>(moduleName)};
109+
}
110+
106111
// fallback
107112
return {getInstance<BasicPluginsDeployer>(moduleName)};
108113
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// system headers
2+
#include <filesystem>
3+
4+
// library headers
5+
#include <linuxdeploy/core/log.h>
6+
7+
// local headers
8+
#include "WaylandcompositorPluginsDeployer.h"
9+
10+
using namespace linuxdeploy::plugin::qt;
11+
using namespace linuxdeploy::core::log;
12+
13+
namespace fs = std::filesystem;
14+
15+
bool WaylandcompositorPluginsDeployer::deploy() {
16+
// calling the default code is optional, but it won't hurt for now
17+
if (!BasicPluginsDeployer::deploy())
18+
return false;
19+
20+
ldLog() << "Deploying waylandcompositor plugin" << std::endl;
21+
22+
for (fs::directory_iterator i(qtPluginsPath / "wayland-decoration-client"); i != fs::directory_iterator(); ++i) {
23+
if (!appDir.deployLibrary(*i, appDir.path() / "usr/plugins/wayland-decoration-client/"))
24+
return false;
25+
}
26+
27+
for (fs::directory_iterator i(qtPluginsPath / "wayland-graphics-integration-client"); i != fs::directory_iterator(); ++i) {
28+
if (!appDir.deployLibrary(*i, appDir.path() / "usr/plugins/wayland-graphics-integration-client/"))
29+
return false;
30+
}
31+
32+
for (fs::directory_iterator i(qtPluginsPath / "wayland-shell-integration"); i != fs::directory_iterator(); ++i) {
33+
if (!appDir.deployLibrary(*i, appDir.path() / "usr/plugins/wayland-shell-integration/"))
34+
return false;
35+
}
36+
37+
return true;
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#pragma once
2+
3+
#include "BasicPluginsDeployer.h"
4+
5+
namespace linuxdeploy {
6+
namespace plugin {
7+
namespace qt {
8+
class WaylandcompositorPluginsDeployer : public BasicPluginsDeployer {
9+
public:
10+
// we can just use the base class's constructor
11+
using BasicPluginsDeployer::BasicPluginsDeployer;
12+
13+
bool deploy() override;
14+
};
15+
}
16+
}
17+
}

0 commit comments

Comments
 (0)