1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 rustPlatform,
6
7 # build-system
8 meson,
9 setuptools,
10 setuptools-rust,
11
12 # buildInputs
13 SDL2,
14 alsa-lib,
15 glib,
16 libpcap,
17 soundtouch,
18 zlib,
19
20 # nativeBuildInputs
21 cargo,
22 ninja,
23 openal,
24 pkg-config,
25 rustc,
26
27 # dependencies
28 range-typed-integers,
29}:
30buildPythonPackage rec {
31 pname = "skytemple-ssb-emulator";
32 version = "1.8.2";
33 pyproject = true;
34
35 src = fetchFromGitHub {
36 owner = "SkyTemple";
37 repo = "skytemple-ssb-emulator";
38 tag = version;
39 hash = "sha256-zmLEvE96gkElTggcRG9fZDrJPLOXeNuSk49zXQAB69Y=";
40 };
41
42 cargoDeps = rustPlatform.fetchCargoVendor {
43 inherit src pname;
44 hash = "sha256-MSPqQmC70pq+sEM8zJrrFiz32dorOJxr2G/y2H4EUQI=";
45 };
46
47 build-system = [
48 meson
49 setuptools
50 setuptools-rust
51 ];
52
53 buildInputs = [
54 SDL2
55 alsa-lib
56 glib
57 libpcap
58 soundtouch
59 zlib
60 ];
61
62 nativeBuildInputs = [
63 cargo
64 ninja
65 openal
66 pkg-config
67 rustPlatform.cargoSetupHook
68 rustc
69 ];
70
71 dependencies = [ range-typed-integers ];
72
73 hardeningDisable = [ "format" ];
74
75 doCheck = false; # there are no tests
76 pythonImportsCheck = [ "skytemple_ssb_emulator" ];
77
78 meta = {
79 description = "SkyTemple Script Engine Debugger Emulator Backend";
80 homepage = "https://github.com/SkyTemple/skytemple-ssb-emulator";
81 license = lib.licenses.gpl3Plus;
82 maintainers = with lib.maintainers; [ marius851000 ];
83 };
84}