Merge pull request #132309 from blitz/djv
djv: init at 2.0.8-unstable-2021-07-31
This commit is contained in:
commit
0529fe7a38
152
pkgs/applications/graphics/djv/default.nix
Normal file
152
pkgs/applications/graphics/djv/default.nix
Normal file
@ -0,0 +1,152 @@
|
||||
{ stdenv
|
||||
, cmake
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, alsa-lib
|
||||
, libGL
|
||||
, libX11
|
||||
, libXinerama
|
||||
, libXi
|
||||
, zlib
|
||||
, rtaudio
|
||||
, rapidjson
|
||||
, ilmbase
|
||||
, glm
|
||||
, glfw3
|
||||
, libpng
|
||||
, opencolorio_1
|
||||
, freetype
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
# The way third-party dependencies are packaged has changed
|
||||
# significantly from the 2.0.8 release. This means any packaging
|
||||
# effort for the 2.0.8 release would have to be redone for the next
|
||||
# release. Hence we package the git version for now and can easily
|
||||
# jump onto the next release once it's available.
|
||||
djvVersion = "2.0.8-unstable-2021-07-31";
|
||||
|
||||
djvSrc = fetchFromGitHub {
|
||||
owner = "darbyjohnston";
|
||||
repo = "djv";
|
||||
rev = "ae31712c4f2802a874217ac194bde26287993934";
|
||||
sha256 = "1qgia6vqb6fhyfj8w925xl6k6zidrp2gj5f32bpi94lwwhi6p9pd";
|
||||
};
|
||||
|
||||
# DJV's build system tries to automatically pull in FSeq, another
|
||||
# library by the DJV author.
|
||||
#
|
||||
# When updating, check the following file in the DJV source:
|
||||
# etc/SuperBuild/cmake/Modules/BuildFSeq.cmake
|
||||
#
|
||||
# If there is revision or tag specified, DJV wants to use the most
|
||||
# recent master version
|
||||
fseqSrc = fetchFromGitHub {
|
||||
owner = "darbyjohnston";
|
||||
repo = "fseq";
|
||||
rev = "545fac6018100f7fca474b8ee4f1efa7cbf6bf45";
|
||||
sha256 = "0qfhbrzji05hh5kwgd1wvq2lbf81ylbi7v7aqk28aws27f8d2hk0";
|
||||
};
|
||||
|
||||
djv-deps = stdenv.mkDerivation rec {
|
||||
pname = "djv-dependencies";
|
||||
version = djvVersion;
|
||||
|
||||
src = djvSrc;
|
||||
|
||||
sourceRoot = "source/etc/SuperBuild";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
libGL
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod -R +w .
|
||||
|
||||
sed -i 's,GIT_REPOSITORY https://github.com/darbyjohnston/FSeq.git,SOURCE_DIR ${fseqSrc},' \
|
||||
cmake/Modules/BuildFSeq.cmake
|
||||
|
||||
# We pull these projects in as normal Nix dependencies. No need
|
||||
# to build them again here.
|
||||
|
||||
sed -i CMakeLists.txt \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS RapidJSON)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS RtAudio)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS IlmBase)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS GLM)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS GLFW)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS ZLIB)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS PNG)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS FreeType)/d' \
|
||||
-e '/list(APPEND DJV_THIRD_PARTY_DEPS OCIO)/d'
|
||||
|
||||
# The "SuperBuild" wants to build DJV right here. This is
|
||||
# inconvenient, because then the `make install` target is not generated
|
||||
# by CMake. We build DJV in its own derivation below. This also makes
|
||||
# the build a bit more modular.
|
||||
|
||||
sed -i '/include(BuildDJV)/d' \
|
||||
CMakeLists.txt
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DDJV_THIRD_PARTY_OpenEXR:BOOL=False"
|
||||
"-DDJV_THIRD_PARTY_JPEG:BOOL=False"
|
||||
"-DDJV_THIRD_PARTY_TIFF:BOOL=False"
|
||||
];
|
||||
|
||||
dontInstall = true;
|
||||
doCheck = true;
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "djv";
|
||||
version = djvVersion;
|
||||
|
||||
src = djvSrc;
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
libGL
|
||||
libX11
|
||||
libXinerama
|
||||
libXi
|
||||
rapidjson
|
||||
rtaudio
|
||||
ilmbase
|
||||
glm
|
||||
glfw3
|
||||
zlib.dev
|
||||
libpng
|
||||
freetype
|
||||
opencolorio_1
|
||||
djv-deps
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod -R +w .
|
||||
|
||||
# When linking opencolorio statically this results in failing to
|
||||
# pull in opencolorio's dependencies (tixml and yaml libraries). Avoid
|
||||
# this by linking it statically instead.
|
||||
|
||||
sed -i cmake/Modules/FindOCIO.cmake \
|
||||
-e 's/PATH_SUFFIXES static//' \
|
||||
-e '/OpenColorIO_STATIC/d'
|
||||
'';
|
||||
|
||||
# GLFW requires a working X11 session.
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A professional review software for VFX, animation, and film production";
|
||||
homepage = "https://darbyjohnston.github.io/DJV/";
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.blitz ];
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
@ -2548,6 +2548,8 @@ in
|
||||
|
||||
dino = callPackage ../applications/networking/instant-messengers/dino { };
|
||||
|
||||
djv = callPackage ../applications/graphics/djv { };
|
||||
|
||||
dlx = callPackage ../misc/emulators/dlx { };
|
||||
|
||||
dgen-sdl = callPackage ../misc/emulators/dgen-sdl { };
|
||||
|
Loading…
Reference in New Issue
Block a user