Unverified Commit 46bbcb7e authored by Leah Amelia Chen's avatar Leah Amelia Chen
Browse files

vgmtrans: init at 1.2

parent 9e1b88a4
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  fetchpatch2,
  cmake,
  ninja,
  qt6,
  spdlog,
  zlib-ng,
  minizip-ng,
  libbass,
  libbassmidi,
}:
stdenv.mkDerivation (finalAttrs: {
  pname = "vgmtrans";
  version = "1.2";

  src = fetchFromGitHub {
    owner = "vgmtrans";
    repo = "vgmtrans";
    rev = "refs/tags/v${finalAttrs.version}";
    hash = "sha256-HVC45B1DFThZRkPVrroiay+9ufkOrTMUZoNIuC1CjjM=";
  };

  patches = [
    # https://github.com/vgmtrans/vgmtrans/pull/567
    (fetchpatch2 {
      name = "fix-version-string.patch";
      url = "https://github.com/vgmtrans/vgmtrans/commit/5ad8a60a19476d2ae9a7c409b83ab6d5e1ff827f.patch?full_index=1";
      hash = "sha256-I5ykYzj3tUBQ2e3TAnCm5Ry1Hmmi2IVneFQCe5/JV/A=";
    })
  ];

  nativeBuildInputs = [
    cmake
    ninja
    qt6.wrapQtAppsHook
  ];

  buildInputs = [
    qt6.qtbase
    qt6.qtsvg
    libbass
    libbassmidi
  ];

  preConfigure = ''
    rm -r lib/{spdlog,zlib-ng,minizip-ng}
    ln -s ${spdlog.src} lib/spdlog
    ln -s ${zlib-ng.src} lib/zlib-ng
    ln -s ${minizip-ng.src} lib/minizip-ng
  '';

  meta = {
    description = "Tool to convert proprietary, sequenced videogame music to industry-standard formats";
    homepage = "https://github.com/vgmtrans/vgmtrans";
    license = with lib.licenses; [
      zlib
      libpng
      bsd3 # oki_adpcm_state
    ];
    # See CMakePresets.json
    platforms = [
      "x86_64-linux"
      "x86_64-darwin"
      "aarch64-darwin"
      "x86_64-windows"
      "aarch64-windows"
    ];
    maintainers = with lib.maintainers; [ pluiedev ];
    mainProgram = "vgmtrans";
  };
})