diff options
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r-- | gnu/packages/qt.scm | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 768c4e5d89..929144f30d 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018 John Soo <jsoo1@asu.edu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages databases) @@ -56,6 +59,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages nss) #:use-module (gnu packages pciutils) @@ -2290,3 +2294,173 @@ user-friendly than the default @code{QColorDialog} and several other color-related widgets.") ;; Includes a license exception for combining with GPL2 code. (license license:lgpl3+)))) + +(define-public python-shiboken-2 + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "4018787a3cc01d632fdca7891ac8aa9487110c26")) + (package + (name "python-shiboken-2") + (version (git-version "v5.11.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + ;; The latest versions of Shiboken live in the pyside repo. + ;; There is another standalone repo only for Shiboken + ;; but it is outdated + (url "https://code.qt.io/pyside/pyside-setup") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5")))) + (build-system cmake-build-system) + (inputs + `(("llvm-6" ,llvm-6) + ("clang-6" ,clang-6) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("python-wrapper" ,python-wrapper) + ("qtbase" ,qtbase) + ("qtxmlpatterns" ,qtxmlpatterns))) + (arguments + `(#:tests? #f + ;; FIXME: Building tests fails + #:configure-flags '("-DBUILD_TESTS=off") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-shiboken-dir-only + (lambda _ (chdir "sources/shiboken2") #t)) + (add-before 'configure 'set-build-env + (lambda* (#:key inputs #:allow-other-keys) + (let ((llvm (assoc-ref inputs "llvm-6"))) + (setenv "CLANG_INSTALL_DIR" llvm) + #t)))))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "Shiboken generates bindings for C++ libraries using CPython source code") + (description + "Shiboken generates bindings for C++ libraries using CPython source code") + (license + (list + ;; The main code is GPL3 or LGPL3. + ;; Examples are BSD-3. + license:gpl3 + license:lgpl3 + license:bsd-3))))) + +(define-public python-pyside-2 + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "4018787a3cc01d632fdca7891ac8aa9487110c26")) + (package + (name "python-pyside-2") + (version (git-version "v5.11.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://code.qt.io/pyside/pyside-setup") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5")))) + (build-system cmake-build-system) + (inputs + `(("libcxx" ,libcxx-6) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("llvm-6" ,llvm-6) + ("clang-6" ,clang-6) + ("qtbase" ,qtbase) + ("qtdatavis3d" ,qtdatavis3d) + ("qtlocation" ,qtlocation) + ("qtmultimedia" ,qtmultimedia) + ("qtquickcontrols" ,qtquickcontrols) + ("qtscript" ,qtscript) + ("qtscxml" ,qtscxml) + ("qtsensors" ,qtsensors) + ("qtspeech" ,qtspeech) + ("qtsvg" ,qtsvg) + ("qtwebchannel" ,qtwebchannel) + ("qtwebsockets" ,qtwebsockets) + ("qtx11extras" ,qtx11extras) + ("qtxmlpatterns" ,qtxmlpatterns))) + (native-inputs + `(("cmake" ,cmake) + ("python-shiboken-2" ,python-shiboken-2) + ("python-wrapper" ,python-wrapper) + ("qttools" ,qttools) + ("which" ,which))) + (arguments + `(#:tests? #f + ;; FIXME: Building tests fail. + #:configure-flags '("-DBUILD_TESTS=FALSE") + #:phases + (modify-phases + %standard-phases + (add-after 'unpack 'go-to-source-dir + (lambda _ (chdir "sources/pyside2") #t)) + (add-before 'configure 'set-clang-dir + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "clang-6")) + (libcxx (assoc-ref inputs "libcxx"))) + (setenv "CLANG_INSTALL_DIR" clang) + (substitute* "cmake/Macros/PySideModules.cmake" + (("--include-paths=") + (string-append "--include-paths=" libcxx "/include/c++/v1:"))) + #t)))))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "The Qt for Python product enables the use of Qt5 APIs in Python applications") + (description + "The Qt for Python product enables the use of Qt5 APIs in Python +applications. It lets Python developers utilize the full potential of Qt, +using the PySide2 module. The PySide2 module provides access to the +individual Qt modules such as QtCore, QtGui,and so on. Qt for Python also +comes with the Shiboken2 CPython binding code generator, which can be used to +generate Python bindings for your C or C++ code.") + (license (list + license:lgpl3 + ;;They state that: + ;; this file may be used under the terms of the GNU General + ;; Public License version 2.0 or (at your option) the GNU + ;; General Public license version 3 or any later version + ;; approved by the KDE Free Qt Foundation. + ;; Thus, it is currently v2 or v3, but no "+". + license:gpl3 + license:gpl2))))) + +(define-public python-pyside-2-tools + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "f1b775537e7fbd718516749583b2abf1cb6adbce")) + (package + (name "python-pyside-2-tools") + (version (git-version "v5.11.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://code.qt.io/pyside/pyside-tools") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w2g5afvww9r89wmdm9jx8sz67x4bzy9difkh72n4c73ya1n91ry")))) + (build-system cmake-build-system) + (inputs + `(("python-pyside-2" ,python-pyside-2) + ("python-shiboken-2" ,python-shiboken-2) + ("qtbase" ,qtbase))) + (arguments + `(#:tests? #f + #:configure-flags '("-DBUILD_TESTS=off"))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "Contains command line tools for PySide2") + (description + "Contains lupdate, rcc and uic tools for PySide2") + (license license:gpl2)))) |