98 lines
2.5 KiB
Nix
98 lines
2.5 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, fetchFromGitHub
|
||
|
, pkg-config
|
||
|
, cmake
|
||
|
, qtbase
|
||
|
, qttools
|
||
|
, spdlog
|
||
|
, ffmpeg
|
||
|
, taglib
|
||
|
, wrapQtAppsHook
|
||
|
, makeDesktopItem
|
||
|
, copyDesktopItems
|
||
|
}:
|
||
|
|
||
|
stdenv.mkDerivation rec {
|
||
|
pname = "easyaudiosync";
|
||
|
version = "1.1.2";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "complexlogic";
|
||
|
repo = "EasyAudioSync";
|
||
|
rev = "v${version}";
|
||
|
hash = "sha256-UCOL4DzynKjNDvS0HZ4/K+Wn5lOqHZ0bNop0zqJl5kc=";
|
||
|
};
|
||
|
|
||
|
patches = [
|
||
|
./0001-fix-project-name.patch
|
||
|
./0003-fix-darwin-app.patch
|
||
|
./0004-force-qt6.patch
|
||
|
];
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
cmake
|
||
|
pkg-config
|
||
|
wrapQtAppsHook
|
||
|
] ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems;
|
||
|
|
||
|
buildInputs = [
|
||
|
qtbase
|
||
|
qttools
|
||
|
ffmpeg
|
||
|
spdlog
|
||
|
taglib
|
||
|
];
|
||
|
|
||
|
installPhase =
|
||
|
''
|
||
|
runHook preInstall
|
||
|
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||
|
mkdir -p $out/Applications
|
||
|
mv "easyaudiosync.app" "Easy Audio Sync.app"
|
||
|
cp -r "Easy Audio Sync.app" $out/Applications
|
||
|
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
|
||
|
install -Dm755 easyaudiosync $out/bin/easyaudiosync
|
||
|
|
||
|
for RES in 48 64 128 256; do
|
||
|
install -Dm755 "$src/assets/icons/easyaudiosync''${RES}.png" "$out/share/icons/hicolor/''${RES}x''${RES}/apps/easyaudiosync.png"
|
||
|
done
|
||
|
|
||
|
install -Dm755 "$src/assets/icons/easyaudiosync.svg" "$out/share/icons/hicolor/scalable/apps/easyaudiosync.svg"
|
||
|
'' + ''
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
desktopItems = [
|
||
|
(makeDesktopItem {
|
||
|
name = "easyaudiosync";
|
||
|
exec = "easyaudiosync";
|
||
|
icon = "easyaudiosync";
|
||
|
desktopName = "Easy Audio Sync";
|
||
|
categories = [
|
||
|
"Qt"
|
||
|
"Audio"
|
||
|
"AudioVideo"
|
||
|
];
|
||
|
comment = "Audio library syncing and conversion utility";
|
||
|
})
|
||
|
];
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "Audio library syncing and conversion utility";
|
||
|
longDescription = ''
|
||
|
Easy Audio Sync is an audio library syncing and conversion utility.
|
||
|
The intended use is syncing an audio library with many lossless files to a mobile device
|
||
|
with limited storage.
|
||
|
|
||
|
The program's design is inspired by the rsync utility. It supports folder-based
|
||
|
source to destination syncing, with added audio transcoding capability, and is
|
||
|
GUI-based instead of CLI-based.
|
||
|
'';
|
||
|
homepage = "https://github.com/complexlogic/EasyAudioSync";
|
||
|
license = licenses.unlicense;
|
||
|
maintainers = with maintainers; [ matteopacini ];
|
||
|
platforms = platforms.linux ++ platforms.darwin;
|
||
|
};
|
||
|
}
|