Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / kivy / default.nix
blob0a9e006844a8d665ac6d7d56f0e3f3c8825ed786
1 { lib, stdenv
2 , buildPythonPackage, fetchFromGitHub, fetchpatch
3 , pkg-config, cython_0, docutils
4 , kivy-garden
5 , mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
6 , Accelerate, ApplicationServices, AVFoundation, libcxx
7 , withGstreamer ? true
8 , gst_all_1
9 , packaging, pillow, pygments, requests
12 buildPythonPackage rec {
13   pname = "kivy";
14   version = "2.3.0";
16   src = fetchFromGitHub {
17     owner = "kivy";
18     repo = "kivy";
19     rev = version;
20     hash = "sha256-QJ490vjpEj/JSE9OzSvDpkCruaTFdlThUHIEAMm0BZ4=";
21   };
23   nativeBuildInputs = [
24     pkg-config
25     cython_0
26     docutils
27   ];
29   buildInputs = [
30     SDL2
31     SDL2_image
32     SDL2_ttf
33     SDL2_mixer
34   ] ++ lib.optionals stdenv.isLinux [
35     mesa
36     mtdev
37   ] ++ lib.optionals stdenv.isDarwin [
38     Accelerate
39     ApplicationServices
40     AVFoundation
41     libcxx
42   ] ++ lib.optionals withGstreamer (with gst_all_1; [
43     # NOTE: The degree to which gstreamer actually works is unclear
44     gstreamer
45     gst-plugins-base
46     gst-plugins-good
47     gst-plugins-bad
48   ]);
50   propagatedBuildInputs = [
51     kivy-garden
52     packaging
53     pillow
54     pygments
55     requests
56   ];
58   KIVY_NO_CONFIG = 1;
59   KIVY_NO_ARGS = 1;
60   KIVY_NO_FILELOG = 1;
61   # prefer pkg-config over hardcoded framework paths
62   USE_OSX_FRAMEWORKS = 0;
63   # work around python distutils compiling C++ with $CC (see issue #26709)
64   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
66   postPatch = lib.optionalString stdenv.isLinux ''
67     substituteInPlace kivy/lib/mtdev.py \
68       --replace "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')"
69   '';
71   /*
72     We cannot run tests as Kivy tries to import itself before being fully
73     installed.
74   */
75   doCheck = false;
76   pythonImportsCheck = [ "kivy" ];
78   meta = with lib; {
79     description = "Library for rapid development of hardware-accelerated multitouch applications.";
80     homepage = "https://pypi.python.org/pypi/kivy";
81     license = licenses.mit;
82     maintainers = with maintainers; [ risson ];
83   };