ieda: init at 0-unstable-2024-10-11 (#338769)
[NixPkgs.git] / pkgs / by-name / ga / gargoyle / package.nix
blobf4bc572b513dbb21989e074b2dec3f528df3c242
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   substituteAll,
6   jam,
7   cctools,
8   pkg-config,
9   SDL,
10   SDL_mixer,
11   SDL_sound,
12   gtk2,
13   libvorbis,
14   smpeg,
17 let
19   jamenv =
20     ''
21       unset AR
22     ''
23     + (
24       if stdenv.hostPlatform.isDarwin then
25         ''
26           export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${lib.getDev SDL}/include/SDL"
27           export GARGLKINI="$out/Applications/Gargoyle.app/Contents/Resources/garglk.ini"
28         ''
29       else
30         ''
31           export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/libexec/gargoyle"
32           export DESTDIR="$out"
33           export _BINDIR=libexec/gargoyle
34           export _APPDIR=libexec/gargoyle
35           export _LIBDIR=libexec/gargoyle
36           export GARGLKINI="$out/etc/garglk.ini"
37         ''
38     );
42 stdenv.mkDerivation rec {
43   pname = "gargoyle";
44   version = "2019.1.1";
46   src = fetchFromGitHub {
47     owner = "garglk";
48     repo = "garglk";
49     rev = version;
50     sha256 = "0w54avmbp4i4zps2rb4acmpa641s6wvwbrln4vbdhcz97fx48nzz";
51   };
53   nativeBuildInputs = [
54     jam
55     pkg-config
56   ] ++ lib.optional stdenv.hostPlatform.isDarwin cctools;
58   buildInputs =
59     [
60       SDL
61       SDL_mixer
62       SDL_sound
63       gtk2
64     ]
65     ++ lib.optionals stdenv.hostPlatform.isDarwin [
66       smpeg
67       libvorbis
68     ];
70   # Workaround build failure on -fno-common toolchains:
71   #   ld: build/linux.release/alan3/Location.o:(.bss+0x0): multiple definition of
72   #     `logFile'; build/linux.release/alan3/act.o:(.bss+0x0): first defined here
73   # TODO: drop once updated to 2022.1 or later.
74   env.NIX_CFLAGS_COMPILE = "-fcommon";
76   buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
78   installPhase =
79     if stdenv.hostPlatform.isDarwin then
80       (substituteAll {
81         inherit (stdenv) shell;
82         isExecutable = true;
83         src = ./darwin.sh;
84       })
85     else
86       jamenv
87       + ''
88         jam -j$NIX_BUILD_CORES install
89         mkdir -p "$out/bin"
90         ln -s ../libexec/gargoyle/gargoyle "$out/bin"
91         mkdir -p "$out/etc"
92         cp garglk/garglk.ini "$out/etc"
93         mkdir -p "$out/share/applications"
94         cp garglk/gargoyle.desktop "$out/share/applications"
95         mkdir -p "$out/share/icons/hicolor/32x32/apps"
96         cp garglk/gargoyle-house.png "$out/share/icons/hicolor/32x32/apps"
97       '';
99   enableParallelBuilding = true;
101   meta = with lib; {
102     broken = stdenv.hostPlatform.isDarwin;
103     homepage = "http://ccxvii.net/gargoyle/";
104     license = licenses.gpl2Plus;
105     description = "Interactive fiction interpreter GUI";
106     mainProgram = "gargoyle";
107     platforms = platforms.unix;
108     maintainers = with maintainers; [ orivej ];
109   };