Unverified Commit 90c3191d authored by Pol Dellaiera's avatar Pol Dellaiera Committed by GitHub
Browse files

Merge pull request #312069 from atorres1985-contrib/xemu

xemu: use upstream xemu.desktop
parents 1448245f 2ffadf76
Loading
Loading
Loading
Loading
+83 −74
Original line number Diff line number Diff line
{ 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,15 +37,17 @@ stdenv.mkDerivation (finalAttrs: {
    hash = "sha256-VcztVzG/IN9N0SVKj6BipyqnhxXC2nTTuMjKMtFKzGw=";
  };

  nativeBuildInputs = [
    copyDesktopItems
  nativeBuildInputs =
    [
      SDL2
      meson
      ninja
      perl
      pkg-config
      which
      wrapGAppsHook3
  ] ++ (with python3Packages; [
    ]
    ++ (with python3Packages; [
      python
      pyyaml
    ]);
@@ -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,9 +92,11 @@ stdenv.mkDerivation (finalAttrs: {
      --replace 'date -u' "date -d @$SOURCE_DATE_EPOCH '+%Y-%m-%d %H:%M:%S'"
  '';

  preConfigure = ''
  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)
      ''
@@ -112,19 +108,31 @@ stdenv.mkDerivation (finalAttrs: {
    substituteInPlace ./build.ninja --replace /usr/bin/env $(which env)
  '';

  installPhase = let
  installPhase =
    let
      installIcon = resolution: ''
        install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
          $out/share/icons/hicolor/${resolution}/apps/xemu.png
      '';
  in ''
    in
    ''
      runHook preInstall

      install -Dm755 -T qemu-system-i386 $out/bin/xemu
  '' +
  (lib.concatMapStringsSep "\n" installIcon
    [ "16x16" "24x24" "32x32" "48x48" "128x128" "256x256" "512x512" ]) + "\n" +
    ''
    + (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
    '';

@@ -143,3 +151,4 @@ stdenv.mkDerivation (finalAttrs: {
    platforms = lib.platforms.linux;
  };
})
# TODO: investigate failure when using __structuredAttrs