Unverified Commit b2162e39 authored by Marcin Serwin's avatar Marcin Serwin Committed by GitHub
Browse files

pascube: 1.5.1 -> 1.7.0 (#481889)

parents dbd5b7af f0f242ec
Loading
Loading
Loading
Loading
+27 −40
Original line number Diff line number Diff line
{
  autoPatchelfHook,
  copyDesktopItems,
  clangStdenv,
  fetchFromGitHub,
  fpc,
  lazarus-qt6,
  lib,
  libGLU,
  makeDesktopItem,
  libx11,
  makeWrapper,
  nix-update-script,
  qt6Packages,
  stdenv,
  SDL2,
  vulkan-loader,
  zlib,
}:

stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
  pname = "pascube";
  version = "1.5.1";
  version = "1.7.0";

  src = fetchFromGitHub {
    owner = "benjamimgois";
    repo = "pascube";
    tag = "v${finalAttrs.version}";
    hash = "sha256-djkrMgX3RTTXSLISYpBfdyCIh3/WWODxd473M53iFKE=";
    tag = finalAttrs.version;
    hash = "sha256-qKjOA5/l2trQC238WheeOzqbpltjkwksqzMtcfw7ci0=";
  };

  nativeBuildInputs = [
    autoPatchelfHook
    copyDesktopItems
    fpc
    lazarus-qt6
    makeWrapper
    qt6Packages.wrapQtAppsHook
  ];

  buildInputs = [
    qt6Packages.libqtpas
    qt6Packages.qtbase
  ];

  runtimeDependencies = [
    libGLU
    SDL2
  ];

  buildPhase = ''
    runHook preBuild
    clang -c -O3 -D linux -fverbose-asm -fno-builtin \
      pasvulkan/src/lzma_c/LzmaDec.c -o pasvulkan/src/lzma_c/lzmadec_linux_x86_64.o
    HOME=$(mktemp -d) lazbuild \
      --lazarusdir=${lazarus-qt6}/share/lazarus \
      --widgetset=qt6 \
@@ -52,45 +51,33 @@ stdenv.mkDerivation (finalAttrs: {
  installPhase = ''
    runHook preInstall
    install -Dm755 pascube $out/bin/pascube
    wrapProgram $out/bin/pascube --prefix LD_LIBRARY_PATH : ${
      lib.makeLibraryPath [
        libx11
        SDL2
        vulkan-loader
        zlib
      ]
    }
    mkdir -p $out/share/pascube
    cp -a assets $out/share/pascube
    install -Dm644 data/pascube.desktop $out/share/applications/pascube.desktop
    for sz in 128x128 256x256 512x512; do
      install -Dm644 "data/icons/''${sz}/pascube.png" \
        "$out/share/icons/hicolor/''${sz}/apps/pascube.png"
    done
    install -Dm644 "data/skybox.png" "$out/share/pascube/skybox.png"
    runHook postInstall
  '';

  desktopItems = [
    (makeDesktopItem {
      name = "pascube";
      desktopName = "pasCube";
      comment = finalAttrs.meta.description;
      exec = finalAttrs.meta.mainProgram;
      icon = "pascube";
      terminal = false;
      categories = [
        "Graphics"
        "Education"
        "Qt"
      ];
    })
  ];

  preFixup = ''
    qtWrapperArgs+=(
      --set QT_QPA_PLATFORM xcb
    )
  '';

  passthru.updateScript = nix-update-script { };

  meta = {
    description = "Simple OpenGL spinning cube written in Pascal";
    homepage = "https://github.com/benjamimgois/pascube";
    changelog = "https://github.com/benjamimgois/pascube/releases/tag/v${finalAttrs.version}";
    changelog = "https://github.com/benjamimgois/pascube/releases/tag/${finalAttrs.version}";
    license = lib.licenses.gpl2Plus;
    maintainers = with lib.maintainers; [ RoGreat ];
    mainProgram = "pascube";
    platforms = lib.platforms.linux;
    platforms = [ "x86_64-linux" ];
  };
})