diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/kivy')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/kivy/default.nix | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/kivy/default.nix b/nixpkgs/pkgs/development/python-modules/kivy/default.nix new file mode 100644 index 000000000000..d9b8e23fe416 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/kivy/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv +, buildPythonPackage, fetchFromGitHub, fetchpatch +, pkg-config, cython, docutils +, kivy-garden +, mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer +, Accelerate, ApplicationServices, AVFoundation, libcxx +, withGstreamer ? true +, gst_all_1 +, pillow, requests, pygments +}: + +buildPythonPackage rec { + pname = "kivy"; + version = "2.1.0"; + + src = fetchFromGitHub { + owner = "kivy"; + repo = "kivy"; + rev = version; + hash = "sha256-k9LIiLtlHY6H1xfVylI/Xbm7R6pCpC5UHe8GWnCwEGA="; + }; + + patches = [ + # Fixes incompatible function pointer conversion errors with clang 16. + # https://github.com/kivy/kivy/pull/8415 + (fetchpatch { + url = "https://github.com/kivy/kivy/commit/a0ec8ff79fcbc1b82391132a89c8fc21ef1c5c55.patch"; + hash = "sha256-2Kpkx75uWPiEiEqkOxBKl3HENKUGVHbQV4haeI5Gl3A="; + }) + ]; + + nativeBuildInputs = [ + pkg-config + cython + docutils + ]; + + buildInputs = [ + SDL2 + SDL2_image + SDL2_ttf + SDL2_mixer + ] ++ lib.optionals stdenv.isLinux [ + mesa + mtdev + ] ++ lib.optionals stdenv.isDarwin [ + Accelerate + ApplicationServices + AVFoundation + libcxx + ] ++ lib.optionals withGstreamer (with gst_all_1; [ + # NOTE: The degree to which gstreamer actually works is unclear + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); + + propagatedBuildInputs = [ + kivy-garden + pillow + pygments + requests + ]; + + KIVY_NO_CONFIG = 1; + KIVY_NO_ARGS = 1; + KIVY_NO_FILELOG = 1; + # prefer pkg-config over hardcoded framework paths + USE_OSX_FRAMEWORKS = 0; + # work around python distutils compiling C++ with $CC (see issue #26709) + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1"; + + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace kivy/lib/mtdev.py \ + --replace "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')" + ''; + + /* + We cannot run tests as Kivy tries to import itself before being fully + installed. + */ + doCheck = false; + pythonImportsCheck = [ "kivy" ]; + + meta = with lib; { + description = "Library for rapid development of hardware-accelerated multitouch applications."; + homepage = "https://pypi.python.org/pypi/kivy"; + license = licenses.mit; + maintainers = with maintainers; [ risson ]; + }; +} |