aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhu Zihao <all_but_last@163.com>2022-08-25 12:42:54 +0800
committerMarius Bakke <marius@gnu.org>2022-09-07 22:02:42 +0200
commit7c9ac0468b671eb0162d9d45ad984414f8cd2c2e (patch)
tree2df4ef6f5480e93620b4be1cfcc4ffbb32b3c864
parent5c08546558f97e9ce665a83724b0e9d1751abac0 (diff)
downloadguix-7c9ac0468b671eb0162d9d45ad984414f8cd2c2e.tar
guix-7c9ac0468b671eb0162d9d45ad984414f8cd2c2e.tar.gz
gnu: Add python-pyside-6.
* gnu/packages/qt.scm (python-pyside-6): New variable. Signed-off-by: Marius Bakke <marius@gnu.org>
-rw-r--r--gnu/packages/qt.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 2ebfe42abe..e0b88cc4d8 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3950,6 +3950,78 @@ generate Python bindings for your C or C++ code.")
license:gpl3
license:gpl2))))
+(define-public python-pyside-6
+ (package
+ (inherit python-pyside-2)
+ (name "python-pyside-6")
+ (version (package-version python-shiboken-6))
+ (source (package-source python-shiboken-6))
+ ;; TODO: Add more Qt components if available.
+ (inputs
+ (list qtbase
+ qtdeclarative
+ qtmultimedia
+ qtnetworkauth
+ qtpositioning
+ qtsvg
+ qttools
+ qtwebchannel
+ qtwebengine
+ qtwebsockets))
+ (propagated-inputs
+ (list python-shiboken-6))
+ (native-inputs
+ (list python-wrapper))
+ (arguments
+ (list
+ #:tests? #f
+ #:configure-flags
+ #~(list "-DBUILD_TESTS=FALSE"
+ (string-append "-DPYTHON_EXECUTABLE="
+ (search-input-file %build-inputs
+ "/bin/python")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'go-to-source-dir
+ (lambda _ (chdir "sources/pyside6") #t))
+ (add-after 'go-to-source-dir 'fix-qt-module-detection
+ (lambda _
+ (substitute* "cmake/PySideHelpers.cmake"
+ (("\\(\"\\$\\{found_basepath\\}\" GREATER \"0\"\\)")
+ "true"))
+ (let ((dirs (map (lambda (path)
+ (string-append path "/include/qt6"))
+ (list
+ #$@(map (lambda (name)
+ (this-package-input name))
+ '("qtdeclarative"
+ "qtmultimedia"
+ "qtnetworkauth"
+ "qtpositioning"
+ "qtsvg"
+ "qttools"
+ "qtwebchannel"
+ "qtwebengine"
+ "qtwebsockets"))))))
+ (substitute* "cmake/Macros/PySideModules.cmake"
+ (("set\\(shiboken_include_dir_list " all)
+ (string-append all (string-join dirs ";") " ")))
+ (setenv "CXXFLAGS"
+ (string-join
+ (map (lambda (dir)
+ (string-append "-I" dir))
+ dirs)
+ " "))))))))
+ (synopsis
+ "The Qt for Python product enables the use of Qt6 APIs in Python applications")
+ (description
+ "The Qt for Python product enables the use of Qt6 APIs in Python
+applications. It lets Python developers utilize the full potential of Qt,
+using the PySide6 module. The PySide6 module provides access to the
+individual Qt modules such as QtCore, QtGui,and so on. Qt for Python also
+comes with the Shiboken6 CPython binding code generator, which can be used to
+generate Python bindings for your C or C++ code.")))
+
(define-public python-pyside-2-tools
(package
(name "python-pyside-2-tools")