nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
Artturin e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03:00

76 lines
2.6 KiB
Nix

{ lib, stdenv
, fetchFromGitHub
, unstableGitUpdater
, SDL
, jack2
, Foundation
}:
stdenv.mkDerivation {
pname = "littlegptracker";
version = "0-unstable-2020-11-26";
src = fetchFromGitHub {
owner = "Mdashdotdashn";
repo = "littlegptracker";
rev = "4aca8cd765e1ad586da62decd019e66cb64b45b8";
sha256 = "0f2ip8z5wxk8fvlw47mczsbcrzh4nh1hgw1fwf5gjrqnzm8v111x";
};
buildInputs = [
SDL
]
++ lib.optional stdenv.hostPlatform.isDarwin Foundation
++ lib.optional stdenv.hostPlatform.isLinux jack2;
patches = [
# Remove outdated (pre-64bit) checks that would fail on modern platforms
# (see description in patch file)
./0001-Remove-coherency-checks.patch
];
preBuild = "cd projects";
makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ]
++ lib.optionals stdenv.hostPlatform.isLinux [ "PLATFORM=DEB" ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ "PLATFORM=OSX" ];
env.NIX_CFLAGS_COMPILE = toString ([ "-fpermissive" ] ++
lib.optional stdenv.hostPlatform.isAarch64 "-Wno-error=narrowing");
NIX_LDFLAGS = lib.optional stdenv.hostPlatform.isDarwin "-framework Foundation";
installPhase = let extension = if stdenv.hostPlatform.isDarwin then "app" else "deb-exe";
in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
passthru.updateScript = unstableGitUpdater {
url = "https://github.com/Mdashdotdashn/littlegptracker.git";
};
meta = with lib; {
description = "Music tracker similar to lsdj optimised to run on portable game consoles";
longDescription = ''
LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
to run on portable game consoles. It is currently running on Game Park's
GP2x & Caanoo, PSP, Dingoo, Windows, Mac OSX (intel/ppc) & Linux (Debian).
It implements the user interface of littlesounddj, a very famous tracker
for the Gameboy platform that has been tried and tested by many users over
the years, leading to a little complex but yet extremely efficent way of
working.
Piggy currently supports 8 monophonic 16Bit/44.1Khz stereo sample playback
channels. Additionally, the program can drive MIDI instruments (with the
gp32 and gp2x a custom MIDI interface is required).
'';
homepage = "https://www.littlegptracker.com/";
downloadPage = "https://www.littlegptracker.com/download.php";
license = licenses.bsd3;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
# https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
broken = stdenv.hostPlatform.isDarwin;
mainProgram = "lgpt";
};
}