101 lines
2.5 KiB
Nix
101 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;
|
|
};
|
|
}
|