diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix new file mode 100644 index 00000000000..afa48569e2a --- /dev/null +++ b/pkgs/development/python-modules/pyside2/default.nix @@ -0,0 +1,38 @@ +{ buildPythonPackage, python, fetchurl, stdenv, + cmake, ninja, qt5, shiboken2 }: + +stdenv.mkDerivation rec { + pname = "pyside2"; + version = "5.12.3"; + + src = fetchurl { + url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz"; + sha256 = "0hk89jm8pa0q6kifask5rrffa3bvx02dg2f97ibv7wds9dysnyjg"; + }; + + patches = [ + ./dont_ignore_optional_modules.patch + ]; + + postPatch = '' + cd sources/pyside2 + ''; + + cmakeFlags = [ + "-DBUILD_TESTS=OFF" + "-DPYTHON_EXECUTABLE=${python.interpreter}" + ]; + + nativeBuildInputs = [ cmake ninja qt5.qmake shiboken2 python ]; + buildInputs = with qt5; [ + qtbase qtxmlpatterns qtmultimedia qttools qtx11extras qtlocation qtscript + qtwebsockets qtwebengine qtwebchannel qtcharts qtsensors qtsvg + ]; + + meta = with stdenv.lib; { + description = "LGPL-licensed Python bindings for Qt"; + license = licenses.lgpl21; + homepage = "https://wiki.qt.io/Qt_for_Python"; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch new file mode 100644 index 00000000000..681e16a2bfd --- /dev/null +++ b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch @@ -0,0 +1,11 @@ +--- pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt~ 2019-06-15 19:07:48.368704430 +0200 ++++ pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt 2019-06-15 19:08:04.429489908 +0200 +@@ -219,7 +219,7 @@ + # If the module was found, and also the module path is the same as the + # Qt5Core base path, we will generate the list with the modules to be installed + set(looked_in_message ". Looked in: ${${_name_dir}}") +- if("${${_name_found}}" AND (("${found_basepath}" GREATER "0") OR ("${found_basepath}" EQUAL "0"))) ++ if("${${_name_found}}") + message(STATUS "${module_state} module ${name} found (${ARGN})${looked_in_message}") + # record the shortnames for the tests + list(APPEND all_module_shortnames ${shortname}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7a331ad7914..4ab6261c229 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -801,6 +801,10 @@ in { pysideTools = callPackage ../development/python-modules/pyside/tools.nix { }; + pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { + inherit (pkgs) cmake qt5 ninja; + }); + shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 { inherit (pkgs) cmake qt5 llvmPackages; });