gnu: qtdeclarative-5: Fix linking on riscv64-linux.
authorEfraim Flashner <efraim@flashner.co.il>
Fri, 2 Sep 2022 05:28:17 +0000 (08:28 +0300)
committerEfraim Flashner <efraim@flashner.co.il>
Fri, 2 Sep 2022 05:28:17 +0000 (08:28 +0300)
* gnu/packages/qt.scm (qtdeclarative-5)[arguments]: Add phase when
building for riscv64-linux to adjust the linker flags.

gnu/packages/qt.scm

index 4937add..9359a9f 100644 (file)
@@ -1045,7 +1045,17 @@ xmlpatternsvalidator.")))
                  ;; is provided by qtdeclarative-5.
                  (substitute*
                      "lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
-                   (("\\$\\{_qt5Core_install_prefix\\}") out)))))))))
+                   (("\\$\\{_qt5Core_install_prefix\\}") out)))))
+           ;; TODO: Add phase unconditionally.
+           ,@(if (target-riscv64?)
+               '((add-after 'unpack 'fix-linking-riscv64
+                   (lambda _
+                     (substitute* "src/qml/qml.pro"
+                       (("DEFINES \\+= QT_NO_FOREACH")
+                        (string-append
+                          "isEqual(QT_ARCH, \"riscv64\"): QMAKE_LIBS += -latomic\n\n"
+                          "DEFINES += QT_NO_FOREACH"))))))
+               '())))))
     (native-inputs
      (list perl
            pkg-config