Merge pull request #312069 from atorres1985-contrib/xemu
xemu: use upstream xemu.desktop
This commit is contained in:
@@ -1,29 +1,28 @@
|
||||
{ lib
|
||||
, SDL2
|
||||
, SDL2_image
|
||||
, copyDesktopItems
|
||||
, fetchFromGitHub
|
||||
, gettext
|
||||
, glib
|
||||
, gtk3
|
||||
, libGLU
|
||||
, libdrm
|
||||
, libepoxy
|
||||
, libpcap
|
||||
, libsamplerate
|
||||
, libslirp
|
||||
, makeDesktopItem
|
||||
, mesa
|
||||
, meson
|
||||
, ninja
|
||||
, openssl
|
||||
, perl
|
||||
, pkg-config
|
||||
, python3Packages
|
||||
, stdenv
|
||||
, vte
|
||||
, which
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
lib,
|
||||
SDL2,
|
||||
SDL2_image,
|
||||
fetchFromGitHub,
|
||||
gettext,
|
||||
glib,
|
||||
gtk3,
|
||||
libGLU,
|
||||
libdrm,
|
||||
libepoxy,
|
||||
libpcap,
|
||||
libsamplerate,
|
||||
libslirp,
|
||||
mesa,
|
||||
meson,
|
||||
ninja,
|
||||
openssl,
|
||||
perl,
|
||||
pkg-config,
|
||||
python3Packages,
|
||||
stdenv,
|
||||
vte,
|
||||
which,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -38,18 +37,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-VcztVzG/IN9N0SVKj6BipyqnhxXC2nTTuMjKMtFKzGw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
meson
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
which
|
||||
wrapGAppsHook3
|
||||
] ++ (with python3Packages; [
|
||||
python
|
||||
pyyaml
|
||||
]);
|
||||
nativeBuildInputs =
|
||||
[
|
||||
SDL2
|
||||
meson
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
which
|
||||
wrapGAppsHook3
|
||||
]
|
||||
++ (with python3Packages; [
|
||||
python
|
||||
pyyaml
|
||||
]);
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
@@ -68,12 +69,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
vte
|
||||
];
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
dontUseMesonConfigure = true;
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
configureFlags = [
|
||||
"--disable-strip"
|
||||
"--meson=meson"
|
||||
@@ -83,14 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildFlags = [ "qemu-system-i386" ];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "xemu";
|
||||
desktopName = "xemu";
|
||||
exec = "xemu";
|
||||
icon = "xemu";
|
||||
})
|
||||
];
|
||||
separateDebugInfo = true;
|
||||
|
||||
dontUseMesonConfigure = true;
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
@@ -98,35 +92,49 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
--replace 'date -u' "date -d @$SOURCE_DATE_EPOCH '+%Y-%m-%d %H:%M:%S'"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
|
||||
'' +
|
||||
# When the data below can't be obtained through git, the build process tries
|
||||
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
|
||||
''
|
||||
echo '${finalAttrs.version}' > XEMU_VERSION
|
||||
'';
|
||||
preConfigure =
|
||||
''
|
||||
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
|
||||
''
|
||||
+
|
||||
# When the data below can't be obtained through git, the build process tries
|
||||
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
|
||||
''
|
||||
echo '${finalAttrs.version}' > XEMU_VERSION
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
cd build
|
||||
substituteInPlace ./build.ninja --replace /usr/bin/env $(which env)
|
||||
'';
|
||||
|
||||
installPhase = let
|
||||
installIcon = resolution: ''
|
||||
install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
|
||||
$out/share/icons/hicolor/${resolution}/apps/xemu.png
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
installPhase =
|
||||
let
|
||||
installIcon = resolution: ''
|
||||
install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
|
||||
$out/share/icons/hicolor/${resolution}/apps/xemu.png
|
||||
'';
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 -T qemu-system-i386 $out/bin/xemu
|
||||
'' +
|
||||
(lib.concatMapStringsSep "\n" installIcon
|
||||
[ "16x16" "24x24" "32x32" "48x48" "128x128" "256x256" "512x512" ]) + "\n" +
|
||||
''
|
||||
runHook postInstall
|
||||
'';
|
||||
install -Dm755 -T qemu-system-i386 $out/bin/xemu
|
||||
''
|
||||
+ (lib.concatMapStringsSep "\n" installIcon [
|
||||
"16x16"
|
||||
"24x24"
|
||||
"32x32"
|
||||
"48x48"
|
||||
"128x128"
|
||||
"256x256"
|
||||
"512x512"
|
||||
])
|
||||
+ "\n"
|
||||
+ ''
|
||||
install -Dm644 -T ../ui/xemu.desktop $out/share/applications/xemu.desktop
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://xemu.app/";
|
||||
@@ -143,3 +151,4 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
# TODO: investigate failure when using __structuredAttrs
|
||||
|
||||
Reference in New Issue
Block a user