tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
_86Box: reformat according to RFC166
John Chadwick
2 years ago
dc701446
5f865840
+50
-32
1 changed file
expand all
collapse all
unified
split
pkgs
applications
emulators
86box
default.nix
+50
-32
pkgs/applications/emulators/86box/default.nix
···
1
-
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, makeWrapper, freetype, SDL2
2
-
, glib, pcre2, openal, rtmidi, fluidsynth, jack2, alsa-lib, qt5, libvncserver
3
-
, discord-gamesdk, libpcap, libslirp
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
-
, enableDynarec ? with stdenv.hostPlatform; isx86 || isAarch
6
-
, enableNewDynarec ? enableDynarec && stdenv.hostPlatform.isAarch
7
-
, enableVncRenderer ? false
8
-
, unfreeEnableDiscord ? false
9
-
, unfreeEnableRoms ? false
10
}:
11
12
stdenv.mkDerivation (finalAttrs: {
···
40
libslirp
41
qt5.qtbase
42
qt5.qttools
43
-
] ++ lib.optional stdenv.isLinux alsa-lib
44
-
++ lib.optional enableVncRenderer libvncserver;
45
46
-
cmakeFlags = lib.optional stdenv.isDarwin "-DCMAKE_MACOSX_BUNDLE=OFF"
0
47
++ lib.optional enableNewDynarec "-DNEW_DYNAREC=ON"
48
++ lib.optional enableVncRenderer "-DVNC=ON"
49
++ lib.optional (!enableDynarec) "-DDYNAREC=OFF"
50
++ lib.optional (!unfreeEnableDiscord) "-DDISCORD=OFF";
51
52
-
postInstall = lib.optionalString stdenv.isLinux ''
53
-
install -Dm644 -t $out/share/applications $src/src/unix/assets/net.86box.86Box.desktop
0
54
55
-
for size in 48 64 72 96 128 192 256 512; do
56
-
install -Dm644 -t $out/share/icons/hicolor/"$size"x"$size"/apps \
57
-
$src/src/unix/assets/"$size"x"$size"/net.86box.86Box.png
58
-
done;
59
-
''
60
-
+ lib.optionalString unfreeEnableRoms ''
61
-
mkdir -p $out/share/86Box
62
-
ln -s ${finalAttrs.passthru.roms} $out/share/86Box/roms
63
-
'';
64
65
passthru = {
66
roms = fetchFromGitHub {
···
73
74
# Some libraries are loaded dynamically, but QLibrary doesn't seem to search
75
# the runpath, so use a wrapper instead.
76
-
preFixup = let
77
-
libPath = lib.makeLibraryPath ([
78
-
libpcap
79
-
] ++ lib.optional unfreeEnableDiscord discord-gamesdk);
80
-
libPathVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
81
-
in ''
82
-
makeWrapperArgs+=(--prefix ${libPathVar} : "${libPath}")
83
-
'';
84
85
meta = with lib; {
86
description = "Emulator of x86-based machines based on PCem.";
87
mainProgram = "86Box";
88
homepage = "https://86box.net/";
89
-
license = with licenses; [ gpl2Only ]
90
-
++ optional (unfreeEnableDiscord || unfreeEnableRoms) unfree;
91
maintainers = [ maintainers.jchw ];
92
platforms = platforms.linux;
93
};
···
1
+
{
2
+
stdenv,
3
+
lib,
4
+
fetchFromGitHub,
5
+
cmake,
6
+
pkg-config,
7
+
makeWrapper,
8
+
freetype,
9
+
SDL2,
10
+
glib,
11
+
pcre2,
12
+
openal,
13
+
rtmidi,
14
+
fluidsynth,
15
+
jack2,
16
+
alsa-lib,
17
+
qt5,
18
+
libvncserver,
19
+
discord-gamesdk,
20
+
libpcap,
21
+
libslirp,
22
23
+
enableDynarec ? with stdenv.hostPlatform; isx86 || isAarch,
24
+
enableNewDynarec ? enableDynarec && stdenv.hostPlatform.isAarch,
25
+
enableVncRenderer ? false,
26
+
unfreeEnableDiscord ? false,
27
+
unfreeEnableRoms ? false,
28
}:
29
30
stdenv.mkDerivation (finalAttrs: {
···
58
libslirp
59
qt5.qtbase
60
qt5.qttools
61
+
] ++ lib.optional stdenv.isLinux alsa-lib ++ lib.optional enableVncRenderer libvncserver;
0
62
63
+
cmakeFlags =
64
+
lib.optional stdenv.isDarwin "-DCMAKE_MACOSX_BUNDLE=OFF"
65
++ lib.optional enableNewDynarec "-DNEW_DYNAREC=ON"
66
++ lib.optional enableVncRenderer "-DVNC=ON"
67
++ lib.optional (!enableDynarec) "-DDYNAREC=OFF"
68
++ lib.optional (!unfreeEnableDiscord) "-DDISCORD=OFF";
69
70
+
postInstall =
71
+
lib.optionalString stdenv.isLinux ''
72
+
install -Dm644 -t $out/share/applications $src/src/unix/assets/net.86box.86Box.desktop
73
74
+
for size in 48 64 72 96 128 192 256 512; do
75
+
install -Dm644 -t $out/share/icons/hicolor/"$size"x"$size"/apps \
76
+
$src/src/unix/assets/"$size"x"$size"/net.86box.86Box.png
77
+
done;
78
+
''
79
+
+ lib.optionalString unfreeEnableRoms ''
80
+
mkdir -p $out/share/86Box
81
+
ln -s ${finalAttrs.passthru.roms} $out/share/86Box/roms
82
+
'';
83
84
passthru = {
85
roms = fetchFromGitHub {
···
92
93
# Some libraries are loaded dynamically, but QLibrary doesn't seem to search
94
# the runpath, so use a wrapper instead.
95
+
preFixup =
96
+
let
97
+
libPath = lib.makeLibraryPath ([ libpcap ] ++ lib.optional unfreeEnableDiscord discord-gamesdk);
98
+
libPathVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
99
+
in
100
+
''
101
+
makeWrapperArgs+=(--prefix ${libPathVar} : "${libPath}")
102
+
'';
103
104
meta = with lib; {
105
description = "Emulator of x86-based machines based on PCem.";
106
mainProgram = "86Box";
107
homepage = "https://86box.net/";
108
+
license = with licenses; [ gpl2Only ] ++ optional (unfreeEnableDiscord || unfreeEnableRoms) unfree;
0
109
maintainers = [ maintainers.jchw ];
110
platforms = platforms.linux;
111
};