Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix LV2 wrapper #3089

Merged
merged 2 commits into from
Oct 13, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 25 additions & 4 deletions shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ let inherit (nixroot) stdenv pkgs lib
chromaprint fftw flac libid3tag libmad libopus libshout libsndfile lilv
libusb1 libvorbis libebur128 pkgconfig portaudio portmidi protobuf qt5 glib
rubberband sqlite taglib soundtouch vamp opusfile hidapi upower ccache git
libGLU x11 lame lv2 makeWrapper
libGLU x11 lame lv2 makeWrapper pcre utillinux libselinux libsepol
libsForQt5
clang-tools
cmake
fetchurl
Expand All @@ -16,7 +17,7 @@ let inherit (nixroot) stdenv pkgs lib
libmodplug
mp4v2
nix-gitignore
python3
python3 python37Packages
wavpack;

git-clang-format = stdenv.mkDerivation {
Expand Down Expand Up @@ -48,6 +49,12 @@ let inherit (nixroot) stdenv pkgs lib
mkdir -p cbuild
cd cbuild
cmake .. "$@"
cd ..
if [ ! -e venv/bin/pre-commit ]; then
virtualenv -p python3 venv
./venv/bin/pip install pre-commit
./venv/bin/pre-commit install
fi
'';

shell-build = nixroot.writeShellScriptBin "build" ''
Expand All @@ -57,6 +64,8 @@ let inherit (nixroot) stdenv pkgs lib
fi
cd cbuild
cmake --build . --parallel $NIX_BUILD_CORES "$@"
source ${pkgs.makeWrapper}/nix-support/setup-hook
wrapProgram mixxx --prefix LV2_PATH : ${lib.makeSearchPath "lib/lv2" allLv2Plugins}
'';

shell-run = nixroot.writeShellScriptBin "run" ''
Expand All @@ -74,7 +83,7 @@ let inherit (nixroot) stdenv pkgs lib
exit 1
fi
cd cbuild
gdb --args ./mixxx --resourcePath res/ "$@"
LV2_PATH=${lib.makeSearchPath "lib/lv2" allLv2Plugins} gdb --args ./.mixxx-wrapped --resourcePath res/ "$@"
'';

allLv2Plugins = lv2Plugins ++ (if defaultLv2Plugins then [
Expand All @@ -90,7 +99,10 @@ in stdenv.mkDerivation rec {
lib.strings.removePrefix "#define MIXXX_VERSION \"" (
builtins.readFile ./src/_version.h ));

# SOURCE_DATE_EPOCH helps with python and pre-commit hook
shellHook = ''
export PYTHONPATH=venv/lib/python3.7/site-packages/:$PYTHONPATH
export SOURCE_DATE_EPOCH=315532800
echo -e "Mixxx development shell. Available commands:\n"
echo " configure - configures cmake (only has to run once)"
echo " build - compiles Mixxx"
Expand All @@ -103,6 +115,7 @@ in stdenv.mkDerivation rec {
/.envrc
/result
/shell.nix
/venv
'' ./.) else null;

nativeBuildInputs = [
Expand All @@ -111,20 +124,28 @@ in stdenv.mkDerivation rec {
ccache
gdb
git-clang-format
clang-tools
# for pre-commit installation since nixpkg.pre-commit may be to old
python3 python37Packages.virtualenv python37Packages.pip python37Packages.setuptools
shell-configure shell-build shell-run shell-debug
] else []);

buildInputs = [
chromaprint fftw flac libid3tag libmad libopus libshout libsndfile
libusb1 libvorbis libebur128 pkgconfig portaudio portmidi protobuf qt5.full
rubberband sqlite taglib soundtouch vamp.vampSDK opusfile upower hidapi
git glib x11 libGLU lilv lame lv2 makeWrapper qt5.qtbase
git glib x11 libGLU lilv lame lv2 makeWrapper qt5.qtbase pcre utillinux libselinux
libsepol libsForQt5.qtkeychain
ffmpeg
libmodplug
mp4v2
wavpack
] ++ allLv2Plugins;

postInstall = (if releaseMode then ''
wrapProgram $out/bin/mixxx --prefix LV2_PATH : ${lib.makeSearchPath "lib/lv2" allLv2Plugins}
'' else "");

meta = with nixroot.stdenv.lib; {
homepage = https://mixxx.org;
description = "Digital DJ mixing software";
Expand Down