118 lines
2.5 KiB
Nix
118 lines
2.5 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
pkg-config,
|
|
cython,
|
|
docutils,
|
|
setuptools,
|
|
kivy-garden,
|
|
libGL,
|
|
libX11,
|
|
mtdev,
|
|
SDL2,
|
|
SDL2_image,
|
|
SDL2_ttf,
|
|
SDL2_mixer,
|
|
withGstreamer ? true,
|
|
gst_all_1,
|
|
pygments,
|
|
requests,
|
|
filetype,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "kivy";
|
|
version = "2.3.1";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "kivy";
|
|
repo = "kivy";
|
|
tag = version;
|
|
hash = "sha256-q8BoF/pUTW2GMKBhNsqWDBto5+nASanWifS9AcNRc8Q=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace pyproject.toml \
|
|
--replace-fail "setuptools~=69.2.0" "setuptools" \
|
|
--replace-fail "wheel~=0.44.0" "wheel" \
|
|
--replace-fail "cython>=0.29.1,<=3.0.11" "cython" \
|
|
--replace-fail "packaging~=24.0" packaging
|
|
''
|
|
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
|
substituteInPlace kivy/lib/mtdev.py \
|
|
--replace-fail "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')"
|
|
'';
|
|
|
|
build-system = [
|
|
setuptools
|
|
cython
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
SDL2
|
|
SDL2_image
|
|
SDL2_ttf
|
|
SDL2_mixer
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isLinux [
|
|
libGL
|
|
libX11
|
|
mtdev
|
|
]
|
|
++ 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
|
|
]
|
|
);
|
|
|
|
dependencies = [
|
|
kivy-garden
|
|
docutils
|
|
pygments
|
|
requests
|
|
filetype
|
|
];
|
|
|
|
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 = toString (
|
|
lib.optionals stdenv.cc.isGNU [
|
|
"-Wno-error=incompatible-pointer-types"
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
|
"-I${lib.getInclude stdenv.cc.libcxx}/include/c++/v1"
|
|
]
|
|
);
|
|
|
|
/*
|
|
We cannot run tests as Kivy tries to import itself before being fully
|
|
installed.
|
|
*/
|
|
doCheck = false;
|
|
pythonImportsCheck = [ "kivy" ];
|
|
|
|
meta = with lib; {
|
|
changelog = "https://github.com/kivy/kivy/releases/tag/${src.tag}";
|
|
description = "Library for rapid development of hardware-accelerated multitouch applications";
|
|
homepage = "https://github.com/kivy/kivy";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ risson ];
|
|
};
|
|
}
|