summaryrefslogtreecommitdiff
path: root/gui-wm/hyprland/files/hyprland-0.56.0-hyprpm-set-lua.patch
blob: d5bb7897baa3b592f59d2b60b1745e513e10b5bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp
index 6621a49f..3d260e82 100644
--- a/hyprpm/src/core/PluginManager.cpp
+++ b/hyprpm/src/core/PluginManager.cpp
@@ -559,10 +572,42 @@ bool CPluginManager::updateHeaders(bool force) {
     if (m_bVerbose)
         progress.printMessageAbove(verboseString("setting PREFIX for cmake to {}", DataState::getHeadersPath()));
 
+#if defined(HYPRPM_GENTOO_LUA_PCFILE)
+    const auto wrapperDir =
+        DataState::getHeadersPath() + "/gentoo-lua/pkgconfig";
+
+    auto wrapper_cmd = "mkdir -p " + wrapperDir;
+
+    if (m_bVerbose)
+        std::println("\n{} will run as sudo.", wrapper_cmd);
+
+    ret = NSys::root::runAsSuperuserUnsafe(wrapper_cmd);
+
+    if (m_bVerbose)
+        std::println("\n{}", ret);
+
+    const std::string target = HYPRPM_GENTOO_LUA_PCFILE;
+
+    wrapper_cmd = std::format("ln -svf {} {}/lua.pc", target, wrapperDir);
+
+    if (m_bVerbose)
+        std::println("\n{} will run as sudo.", wrapper_cmd);
+
+    ret = NSys::root::runAsSuperuserUnsafe(wrapper_cmd);
+
+    if (m_bVerbose)
+        std::println("\n{}", ret);
+
+    const auto CONFIGURE_CMD =
+        nixDevelopIfNeeded(std::format("cd {} && PKG_CONFIG_PATH=\"{}:$PKG_CONFIG_PATH\" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:STRING=\"{}\" -S . -B ./build", WORKINGDIR, wrapperDir,
+                                       DataState::getHeadersPath()),
+                           HLVER);
+#else
     const auto CONFIGURE_CMD =
         nixDevelopIfNeeded(std::format("cd {} && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:STRING=\"{}\" -S . -B ./build", WORKINGDIR,
                                        DataState::getHeadersPath()),
                            HLVER);
+#endif
 
     if (!CONFIGURE_CMD) {
         std::println(stderr, "\n{}", failureString("Could not configure hyprland: {}", CONFIGURE_CMD.error()));
@@ -1036,7 +1092,15 @@ bool CPluginManager::hasDeps() {
 }
 
 const std::string& CPluginManager::getPkgConfigPath() {
+#if defined(HYPRPM_GENTOO_LUA_PCFILE)
+    static const auto str = std::format(
+        "{}/gentoo-lua/pkgconfig:{}/share/pkgconfig:$PKG_CONFIG_PATH",
+        DataState::getHeadersPath(),
+        DataState::getHeadersPath()
+    );
+#else
     static const auto str = std::format("{}/share/pkgconfig:$PKG_CONFIG_PATH", DataState::getHeadersPath());
+#endif
     return str;
 }