summaryrefslogtreecommitdiff
path: root/gnu/packages/qt.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r--gnu/packages/qt.scm174
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))))