nixpkgs-immich/pkgs/by-name/os/ossia-score/package.nix
2024-09-17 10:23:40 -06:00

159 lines
2.7 KiB
Nix
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ lib
, fetchFromGitHub
, cmake
, ninja
, clangStdenv
, pkg-config
, alsa-lib
, avahi
, avahi-compat
, bluez
, boost185
, fmt
, ffmpeg
, fftw
, flac
, git
, gnutls
, lame
, libcoap
, libjack2
, libopus
, libsamplerate
, libsndfile
, libvorbis
, lilv
, lv2
, mpg123
, pipewire
, portaudio
, qt6
, rapidfuzz-cpp
, re2
, rubberband
, snappy
, SDL2
, spdlog
, suil
, udev
}:
# TODO: figure out LLVM jit
# assert lib.versionAtLeast llvm.version "15";
clangStdenv.mkDerivation (finalAttrs: {
pname = "ossia-score";
version = "3.2.4";
src = fetchFromGitHub {
owner = "ossia";
repo = "score";
rev = "v${finalAttrs.version}";
hash = "sha256-O9v7hhBHVi4OuuCebG3bvjp/MOYu1iPv+lji/wS4O7o=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake ninja git pkg-config qt6.qttools qt6.wrapQtAppsHook ];
buildInputs = [
alsa-lib
boost185
avahi
avahi-compat
bluez
ffmpeg
fftw
flac
fmt
gnutls
lame
libcoap
libjack2
libopus
libsamplerate
libsndfile
libvorbis
lilv
lv2
mpg123
pipewire
portaudio
qt6.qtbase
qt6.qtdeclarative
qt6.qtserialport
qt6.qtscxml
qt6.qtshadertools
qt6.qtsvg
qt6.qtwayland
qt6.qtwebsockets
rapidfuzz-cpp
re2
rubberband
snappy
SDL2
spdlog
suil
udev
];
cmakeFlags = [
"-Wno-dev"
"-DSCORE_DEPLOYMENT_BUILD=1"
"-DSCORE_STATIC_PLUGINS=1"
"-DSCORE_FHS_BUILD=1"
"-DCMAKE_UNITY_BUILD=1"
"-DCMAKE_SKIP_RPATH=ON"
"-DOSSIA_USE_SYSTEM_LIBRARIES=1"
"-DSCORE_USE_SYSTEM_LIBRARIES=1"
"-DLilv_INCLUDE_DIR=${lilv.dev}/include/lilv-0"
"-DSuil_INCLUDE_DIR=${suil}/include/suil-0"
];
# Needed for libraries that get dlopen'd
env.NIX_LDFLAGS = toString [
"-lasound"
"-llilv-0"
"-lsuil-0"
"-lsndfile"
"-lpipewire-0.3"
"-lfftw3"
"-lfftw3_threads"
"-ludev"
];
runtimeDependencies = [
alsa-lib
avahi
avahi-compat
bluez
fftw
lilv
suil
pipewire
udev
];
installPhase = ''
runHook preInstall
cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCOMPONENT=OssiaScore -P cmake_install.cmake
runHook postInstall
'';
meta = with lib; {
homepage = "https://ossia.io/score/about.html";
description = "Sequencer for audio-visual artists";
longDescription = ''
ossia score is a sequencer for audio-visual artists, designed to enable
the creation of interactive shows, museum installations, intermedia
digital artworks, interactive music and more in an intuitive user interface.
'';
platforms = platforms.linux;
license = licenses.gpl3Only;
maintainers = with maintainers; [ jcelerier minijackson ];
};
})