lol
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 nixosTests,
7 alsa-lib,
8 SDL2,
9}:
10
11stdenv.mkDerivation (finalAttrs: {
12 pname = "pt2-clone";
13 version = "1.78";
14
15 src = fetchFromGitHub {
16 owner = "8bitbubsy";
17 repo = "pt2-clone";
18 rev = "v${finalAttrs.version}";
19 sha256 = "sha256-qbzs+EaypbulB1jkKQHMbhXwJIQwoyqVCdSvx5vYk2A=";
20 };
21
22 nativeBuildInputs = [ cmake ];
23 buildInputs = [ SDL2 ] ++ lib.optional stdenv.hostPlatform.isLinux alsa-lib;
24
25 postInstall = ''
26 install -Dm444 "$src/release/other/Freedesktop.org Resources/ProTracker 2 clone.desktop" \
27 $out/share/applications/pt2-clone.desktop
28 install -Dm444 "$src/release/other/Freedesktop.org Resources/ProTracker 2 clone.png" \
29 $out/share/icons/hicolor/512x512/apps/pt2-clone.png
30 # gtk-update-icon-cache does not like whitespace. Note that removing this
31 # will not make the build fail, but it will make the NixOS test fail.
32 substituteInPlace $out/share/applications/pt2-clone.desktop \
33 --replace-fail "Icon=ProTracker 2 clone" Icon=pt2-clone
34 '';
35
36 passthru.tests = {
37 pt2-clone-opens = nixosTests.pt2-clone;
38 };
39
40 meta = with lib; {
41 description = "Highly accurate clone of the classic ProTracker 2.3D software for Amiga";
42 homepage = "https://16-bits.org/pt2.php";
43 license = licenses.bsd3;
44 maintainers = with maintainers; [ fgaz ];
45 # From HOW-TO-COMPILE.txt:
46 # > This code is NOT big-endian compatible
47 platforms = platforms.littleEndian;
48 mainProgram = "pt2-clone";
49 };
50})