djv: 2.0.8-unstable-2021-07-31 -> 3.1.1 (#455551)
This commit is contained in:
@@ -1,187 +1,94 @@
|
|||||||
{
|
{
|
||||||
stdenv,
|
|
||||||
cmake,
|
|
||||||
fetchFromGitHub,
|
|
||||||
fetchpatch,
|
|
||||||
lib,
|
lib,
|
||||||
alsa-lib,
|
stdenv,
|
||||||
libGL,
|
fetchFromGitHub,
|
||||||
libX11,
|
cmake,
|
||||||
libXinerama,
|
pkg-config,
|
||||||
libXi,
|
bzip2,
|
||||||
zlib,
|
feather-tk,
|
||||||
rtaudio,
|
ffmpeg,
|
||||||
rapidjson,
|
|
||||||
ilmbase,
|
|
||||||
glm,
|
|
||||||
glfw3,
|
|
||||||
libpng,
|
|
||||||
opencolorio_1,
|
|
||||||
freetype,
|
freetype,
|
||||||
|
glfw,
|
||||||
|
imath,
|
||||||
|
libGL,
|
||||||
|
libjpeg,
|
||||||
|
libtiff,
|
||||||
|
libpng,
|
||||||
|
lunasvg,
|
||||||
|
minizip-ng,
|
||||||
|
nativefiledialog-extended,
|
||||||
|
nlohmann_json,
|
||||||
|
opencolorio,
|
||||||
openexr,
|
openexr,
|
||||||
|
openssl,
|
||||||
|
opentimelineio,
|
||||||
|
plutovg,
|
||||||
|
SDL2,
|
||||||
|
tlrender,
|
||||||
|
xz,
|
||||||
|
zlib,
|
||||||
|
zstd,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "djv";
|
||||||
|
version = "3.1.1";
|
||||||
|
|
||||||
# The way third-party dependencies are packaged has changed
|
src = fetchFromGitHub {
|
||||||
# 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";
|
owner = "darbyjohnston";
|
||||||
repo = "djv";
|
repo = "djv";
|
||||||
rev = "ae31712c4f2802a874217ac194bde26287993934";
|
tag = finalAttrs.version;
|
||||||
sha256 = "1qgia6vqb6fhyfj8w925xl6k6zidrp2gj5f32bpi94lwwhi6p9pd";
|
hash = "sha256-/SakJ23mi/dz8eUt2UtcgfLtFZiCHy1ME+jWdNS8+Fw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# 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 = "${src.name}/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 {
|
|
||||||
pname = "djv";
|
|
||||||
version = djvVersion;
|
|
||||||
|
|
||||||
src = djvSrc;
|
|
||||||
patches = [
|
|
||||||
# Pull fix ending upstream inclusion for gcc-12+ support:
|
|
||||||
# https://github.com/darbyjohnston/DJV/pull/477
|
|
||||||
(fetchpatch {
|
|
||||||
name = "gcc-13-cstdint-include.patch";
|
|
||||||
url = "https://github.com/darbyjohnston/DJV/commit/be0dd90c256f30c0305ff7b180fd932a311e66e5.patch";
|
|
||||||
hash = "sha256-x8GAfakhgjBiCKHbfgCukT5iFNad+zqURDJkQr092uk=";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "gcc-11-limits.patch";
|
|
||||||
url = "https://github.com/darbyjohnston/DJV/commit/0544ffa1a263a6b8e8518b47277de7601b21b4f4.patch";
|
|
||||||
hash = "sha256-x6ye0xMwTlKyNW4cVFb64RvAayvo71kuOooPj3ROn0g=";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "gcc-11-IO.patch";
|
|
||||||
url = "https://github.com/darbyjohnston/DJV/commit/ce79f2d2cb35d03322648323858834bff942c792.patch";
|
|
||||||
hash = "sha256-oPbXOnN5Y5QL+bs/bL5eJALu45YHnyTBLQcC8XcJi0c=";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "gcc-11-sleep_for.patch";
|
|
||||||
url = "https://github.com/darbyjohnston/DJV/commit/6989f43db27f66a7691f6048a2eb3299ef43a92e.patch";
|
|
||||||
hash = "sha256-1kiF3VrZiO+FSoR7NHCbduQ8tMq/Uuu6Z+sQII4xBAw=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
|
||||||
buildInputs = [
|
|
||||||
alsa-lib
|
|
||||||
libGL
|
|
||||||
libX11
|
|
||||||
libXinerama
|
|
||||||
libXi
|
|
||||||
rapidjson
|
|
||||||
rtaudio
|
|
||||||
ilmbase
|
|
||||||
glm
|
|
||||||
glfw3
|
|
||||||
zlib
|
|
||||||
libpng
|
|
||||||
freetype
|
|
||||||
opencolorio_1
|
|
||||||
djv-deps
|
|
||||||
openexr
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
chmod -R +w .
|
substituteInPlace cmake/Modules/djvPackage.cmake \
|
||||||
|
--replace-fail \
|
||||||
# When linking opencolorio statically this results in failing to
|
' ''${CMAKE_INSTALL_PREFIX}/etc/tlRender/LICENSE_' \
|
||||||
# pull in opencolorio's dependencies (tixml and yaml libraries). Avoid
|
" ${tlrender}/etc/tlRender/LICENSE_"
|
||||||
# this by linking it statically instead.
|
|
||||||
|
|
||||||
sed -i cmake/Modules/FindOCIO.cmake \
|
|
||||||
-e 's/PATH_SUFFIXES static//' \
|
|
||||||
-e '/OpenColorIO_STATIC/d'
|
|
||||||
|
|
||||||
# When searching for OpenEXR this looks for Iex.h, which exists in ilmbase,
|
|
||||||
# since it's a secondary inport, to find the correct OpenEXR lib, we search
|
|
||||||
# for something specifically in OpenEXR.
|
|
||||||
|
|
||||||
sed -i cmake/Modules/FindOpenEXR.cmake \
|
|
||||||
-e 's/find_path(OpenEXR_INCLUDE_DIR NAMES Iex.h PATH_SUFFIXES OpenEXR)/find_path(OpenEXR_INCLUDE_DIR NAMES ImfImage.h PATH_SUFFIXES OpenEXR)/'
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
bzip2
|
||||||
|
feather-tk
|
||||||
|
ffmpeg
|
||||||
|
freetype
|
||||||
|
glfw
|
||||||
|
imath
|
||||||
|
tlrender
|
||||||
|
libjpeg
|
||||||
|
libGL
|
||||||
|
libpng
|
||||||
|
libtiff
|
||||||
|
lunasvg
|
||||||
|
minizip-ng
|
||||||
|
nativefiledialog-extended
|
||||||
|
nlohmann_json
|
||||||
|
opencolorio
|
||||||
|
openexr
|
||||||
|
openssl
|
||||||
|
opentimelineio
|
||||||
|
plutovg
|
||||||
|
SDL2
|
||||||
|
xz
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
|
];
|
||||||
|
|
||||||
# GLFW requires a working X11 session.
|
# GLFW requires a working X11 session.
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "Professional review software for VFX, animation, and film production";
|
description = "Professional review software for VFX, animation, and film production";
|
||||||
homepage = "https://darbyjohnston.github.io/DJV/";
|
homepage = "https://darbyjohnston.github.io/DJV/";
|
||||||
platforms = platforms.linux;
|
platforms = with lib.platforms; linux ++ darwin;
|
||||||
maintainers = [ maintainers.blitz ];
|
maintainers = with lib.maintainers; [ blitz ];
|
||||||
license = licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
|
mainProgram = "djv";
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|||||||
@@ -11,16 +11,17 @@
|
|||||||
libGL,
|
libGL,
|
||||||
libpng,
|
libpng,
|
||||||
lunasvg,
|
lunasvg,
|
||||||
|
nativefiledialog-extended,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
plutovg,
|
plutovg,
|
||||||
xorg,
|
xorg,
|
||||||
zlib,
|
zlib,
|
||||||
nativeFileDialog ? null,
|
|
||||||
python3Packages ? null,
|
python3Packages ? null,
|
||||||
enableNFD ? false,
|
enableNFD ? true,
|
||||||
enablePython ? false,
|
enablePython ? false,
|
||||||
enableTests ? false,
|
enableTests ? false,
|
||||||
enableExamples ? false,
|
enableExamples ? false,
|
||||||
|
enableShared ? !stdenv.hostPlatform.isStatic,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
@@ -31,7 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
owner = "darbyjohnston";
|
owner = "darbyjohnston";
|
||||||
repo = "feather-tk";
|
repo = "feather-tk";
|
||||||
tag = finalAttrs.version;
|
tag = finalAttrs.version;
|
||||||
fetchSubmodules = true;
|
|
||||||
hash = "sha256-hcV99y14o3YFUtKDLEKaR7MxBB3pBdd3sferrYvtvYw=";
|
hash = "sha256-hcV99y14o3YFUtKDLEKaR7MxBB3pBdd3sferrYvtvYw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -51,8 +51,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
zlib
|
zlib
|
||||||
libGL
|
libGL
|
||||||
]
|
]
|
||||||
++ lib.optionals (enableNFD && nativeFileDialog != null) [
|
++ lib.optionals enableNFD [
|
||||||
nativeFileDialog
|
nativefiledialog-extended
|
||||||
]
|
]
|
||||||
++ lib.optionals (enableNFD && stdenv.isLinux) [
|
++ lib.optionals (enableNFD && stdenv.isLinux) [
|
||||||
gtk3
|
gtk3
|
||||||
@@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
(lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
|
(lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
|
||||||
|
(lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
|
||||||
(lib.cmakeBool "feather_tk_UI_LIB" true)
|
(lib.cmakeBool "feather_tk_UI_LIB" true)
|
||||||
(lib.cmakeFeature "feather_tk_API" "GL_4_1")
|
(lib.cmakeFeature "feather_tk_API" "GL_4_1")
|
||||||
(lib.cmakeBool "feather_tk_nfd" enableNFD)
|
(lib.cmakeBool "feather_tk_nfd" enableNFD)
|
||||||
@@ -93,5 +94,9 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
license = lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
maintainers = with lib.maintainers; [ liberodark ];
|
maintainers = with lib.maintainers; [ liberodark ];
|
||||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||||
|
badPlatforms = [
|
||||||
|
# Broken on darwin with latest SDK, see https://github.com/darbyjohnston/feather-tk/issues/1
|
||||||
|
lib.systems.inspect.patterns.isDarwin
|
||||||
|
];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|||||||
75
pkgs/by-name/na/nativefiledialog-extended/package.nix
Normal file
75
pkgs/by-name/na/nativefiledialog-extended/package.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
cmake,
|
||||||
|
pkg-config,
|
||||||
|
SDL2,
|
||||||
|
SDL2_ttf,
|
||||||
|
gtk3,
|
||||||
|
testers,
|
||||||
|
enableShared ? !stdenv.hostPlatform.isStatic,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "nativefiledialog-extended";
|
||||||
|
version = "1.2.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "btzy";
|
||||||
|
repo = "nativefiledialog-extended";
|
||||||
|
tag = "v${finalAttrs.version}";
|
||||||
|
hash = "sha256-GwT42lMZAAKSJpUJE6MYOpSLKUD5o9nSe9lcsoeXgJY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [
|
||||||
|
"out"
|
||||||
|
"dev"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
SDL2
|
||||||
|
SDL2_ttf
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||||
|
gtk3
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
(lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
|
||||||
|
(lib.cmakeBool "nfd_ROOT_PROJECT" true)
|
||||||
|
(lib.cmakeBool "NFD_BUILD_TESTS" true)
|
||||||
|
(lib.cmakeBool "NFD_BUILD_SDL2_TESTS" true)
|
||||||
|
(lib.cmakeBool "NFD_INSTALL" true)
|
||||||
|
];
|
||||||
|
|
||||||
|
# NOTE: Although the tests have been compiled, they still require GUI
|
||||||
|
# interactions. Let's disable running them for now.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
cmake-config = testers.hasCmakeConfigModules {
|
||||||
|
package = finalAttrs.finalPackage;
|
||||||
|
moduleNames = [ "nfd" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/btzy/nativefiledialog-extended";
|
||||||
|
description = "Cross platform native file dialog library with C and C++ bindings";
|
||||||
|
longDescription = ''
|
||||||
|
A small C library with that portably invokes native file open, folder
|
||||||
|
select and file save dialogs. Write dialog code once and have it pop up
|
||||||
|
native dialogs on all supported platforms. Avoid linking large
|
||||||
|
dependencies like wxWidgets and Qt.
|
||||||
|
'';
|
||||||
|
license = lib.licenses.zlib;
|
||||||
|
maintainers = with lib.maintainers; [ yzx9 ];
|
||||||
|
platforms = with lib.platforms; linux ++ darwin;
|
||||||
|
};
|
||||||
|
})
|
||||||
95
pkgs/by-name/tl/tlrender/minizip-ng-4.patch
Normal file
95
pkgs/by-name/tl/tlrender/minizip-ng-4.patch
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 95a03bbd..9ce32264 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -123,7 +123,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
find_package(Imath REQUIRED)
|
||||||
|
find_package(nlohmann_json REQUIRED)
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
-find_package(minizip REQUIRED)
|
||||||
|
+find_package(minizip-ng REQUIRED)
|
||||||
|
find_package(OpenTimelineIO REQUIRED)
|
||||||
|
|
||||||
|
# OpenColorIO dependencies
|
||||||
|
diff --git a/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt b/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt
|
||||||
|
index 513e7351..2db48491 100644
|
||||||
|
--- a/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt
|
||||||
|
+++ b/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt
|
||||||
|
@@ -1,10 +1,10 @@
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
-find_package(minizip REQUIRED)
|
||||||
|
+find_package(minizip-ng REQUIRED)
|
||||||
|
find_package(OpenColorIO REQUIRED)
|
||||||
|
|
||||||
|
set(source main.cpp)
|
||||||
|
|
||||||
|
add_executable(OpenColorIOTest ${header} ${source})
|
||||||
|
-target_link_libraries(OpenColorIOTest OpenColorIO::OpenColorIO MINIZIP::minizip ZLIB::ZLIB)
|
||||||
|
+target_link_libraries(OpenColorIOTest OpenColorIO::OpenColorIO MINIZIP::minizip-ng ZLIB::ZLIB)
|
||||||
|
|
||||||
|
add_test(OpenColorIOTest OpenColorIOTest)
|
||||||
|
diff --git a/lib/tlCore/CMakeLists.txt b/lib/tlCore/CMakeLists.txt
|
||||||
|
index d02fa96a..877c8462 100644
|
||||||
|
--- a/lib/tlCore/CMakeLists.txt
|
||||||
|
+++ b/lib/tlCore/CMakeLists.txt
|
||||||
|
@@ -40,7 +40,7 @@ else()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LIBRARIES tlResource feather-tk::feather-tk-core OTIO::opentimelineio Imath::Imath nlohmann_json::nlohmann_json)
|
||||||
|
-set(LIBRARIES_PRIVATE Freetype::Freetype MINIZIP::minizip ZLIB::ZLIB)
|
||||||
|
+set(LIBRARIES_PRIVATE Freetype::Freetype MINIZIP::minizip-ng ZLIB::ZLIB)
|
||||||
|
if(TLRENDER_OCIO)
|
||||||
|
list(APPEND LIBRARIES OpenColorIO::OpenColorIO)
|
||||||
|
endif()
|
||||||
|
diff --git a/lib/tlTimeline/CMakeLists.txt b/lib/tlTimeline/CMakeLists.txt
|
||||||
|
index ad384749..82a6aacb 100644
|
||||||
|
--- a/lib/tlTimeline/CMakeLists.txt
|
||||||
|
+++ b/lib/tlTimeline/CMakeLists.txt
|
||||||
|
@@ -49,7 +49,7 @@ set(SOURCE
|
||||||
|
Video.cpp)
|
||||||
|
|
||||||
|
add_library(tlTimeline ${HEADERS} ${PRIVATE_HEADERS} ${SOURCE})
|
||||||
|
-target_link_libraries(tlTimeline tlIO)
|
||||||
|
+target_link_libraries(tlTimeline tlIO MINIZIP::minizip-ng)
|
||||||
|
set_target_properties(tlTimeline PROPERTIES FOLDER lib)
|
||||||
|
set_target_properties(tlTimeline PROPERTIES PUBLIC_HEADER "${HEADERS}")
|
||||||
|
|
||||||
|
diff --git a/lib/tlTimeline/TimelineCreate.cpp b/lib/tlTimeline/TimelineCreate.cpp
|
||||||
|
index 9596ab21..c8884435 100644
|
||||||
|
--- a/lib/tlTimeline/TimelineCreate.cpp
|
||||||
|
+++ b/lib/tlTimeline/TimelineCreate.cpp
|
||||||
|
@@ -99,7 +99,7 @@ namespace tl
|
||||||
|
public:
|
||||||
|
ZipReader(const std::string& fileName)
|
||||||
|
{
|
||||||
|
- mz_zip_reader_create(&reader);
|
||||||
|
+ reader = mz_zip_reader_create();
|
||||||
|
if (!reader)
|
||||||
|
{
|
||||||
|
throw std::runtime_error(feather_tk::Format(
|
||||||
|
diff --git a/lib/tlTimeline/Util.cpp b/lib/tlTimeline/Util.cpp
|
||||||
|
index 611f02ad..338df840 100644
|
||||||
|
--- a/lib/tlTimeline/Util.cpp
|
||||||
|
+++ b/lib/tlTimeline/Util.cpp
|
||||||
|
@@ -662,7 +662,7 @@ namespace tl
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the output file.
|
||||||
|
- mz_zip_writer_create(&_writer);
|
||||||
|
+ _writer = mz_zip_writer_create();
|
||||||
|
if (!_writer)
|
||||||
|
{
|
||||||
|
throw std::runtime_error(feather_tk::Format("Cannot create writer: \"{0}\"").arg(fileName));
|
||||||
|
diff --git a/tlRenderConfig.cmake.in b/tlRenderConfig.cmake.in
|
||||||
|
index 11312d32..e6ec1184 100644
|
||||||
|
--- a/tlRenderConfig.cmake.in
|
||||||
|
+++ b/tlRenderConfig.cmake.in
|
||||||
|
@@ -9,7 +9,7 @@ include(CMakeFindDependencyMacro)
|
||||||
|
find_package(Imath REQUIRED)
|
||||||
|
find_package(nlohmann_json REQUIRED)
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
-find_package(minizip REQUIRED)
|
||||||
|
+find_package(minizip-ng REQUIRED)
|
||||||
|
find_package(OpenTimelineIO REQUIRED)
|
||||||
|
|
||||||
|
# OpenColorIO dependencies
|
||||||
155
pkgs/by-name/tl/tlrender/package.nix
Normal file
155
pkgs/by-name/tl/tlrender/package.nix
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
cmake,
|
||||||
|
fetchFromGitHub,
|
||||||
|
pkg-config,
|
||||||
|
|
||||||
|
bzip2,
|
||||||
|
feather-tk,
|
||||||
|
ffmpeg,
|
||||||
|
freetype,
|
||||||
|
glfw,
|
||||||
|
imath,
|
||||||
|
libGL,
|
||||||
|
libjpeg,
|
||||||
|
libtiff,
|
||||||
|
libpng,
|
||||||
|
lunasvg,
|
||||||
|
minizip-ng,
|
||||||
|
nasm,
|
||||||
|
nativefiledialog-extended,
|
||||||
|
nlohmann_json,
|
||||||
|
opencolorio,
|
||||||
|
openexr,
|
||||||
|
openssl,
|
||||||
|
opentimelineio,
|
||||||
|
openusd,
|
||||||
|
plutovg,
|
||||||
|
SDL2,
|
||||||
|
sdl3,
|
||||||
|
xz,
|
||||||
|
zlib,
|
||||||
|
zstd,
|
||||||
|
|
||||||
|
# optional dependencies
|
||||||
|
enableNet ? false,
|
||||||
|
enableOcio ? true,
|
||||||
|
enableSdl2 ? true,
|
||||||
|
enableSdl3 ? false,
|
||||||
|
enableJpeg ? true,
|
||||||
|
enableTiff ? true,
|
||||||
|
enableStb ? true,
|
||||||
|
enablePng ? true,
|
||||||
|
enableOpenexr ? true,
|
||||||
|
enableFfmpeg ? true,
|
||||||
|
enableUsd ? false,
|
||||||
|
|
||||||
|
# build options
|
||||||
|
enableShared ? !stdenv.hostPlatform.isStatic,
|
||||||
|
enableProgram ? true,
|
||||||
|
enableExamples ? false,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "tlrender";
|
||||||
|
version = "0.10.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "darbyjohnston";
|
||||||
|
repo = "tlRender";
|
||||||
|
tag = finalAttrs.version;
|
||||||
|
hash = "sha256-TxiDZtMvNmrV1FKXZnekCZHnr/eCWZlsP6VJRnaoWg4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Minizip-ng 4 support: https://github.com/darbyjohnston/tlRender/pull/145
|
||||||
|
./minizip-ng-4.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace CMakeLists.txt \
|
||||||
|
--replace-fail "include(Package)" ""
|
||||||
|
|
||||||
|
substituteInPlace lib/tlCore/CMakeLists.txt \
|
||||||
|
--replace-fail "SDL2::SDL2-static" "SDL2::SDL2" \
|
||||||
|
--replace-fail "SDL3::SDL3-static" "SDL3::SDL3" \
|
||||||
|
|
||||||
|
substituteInPlace lib/tlIO/CMakeLists.txt \
|
||||||
|
--replace-fail \
|
||||||
|
"list(APPEND LIBRARIES_PRIVATE libjpeg-turbo::turbojpeg-static)" \
|
||||||
|
"list(APPEND LIBRARIES_PRIVATE libjpeg-turbo::jpeg libjpeg-turbo::turbojpeg)"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
bzip2 # required by minizip-ng
|
||||||
|
feather-tk
|
||||||
|
freetype # required by feather-tk
|
||||||
|
glfw
|
||||||
|
libGL
|
||||||
|
lunasvg # required by feather-tk
|
||||||
|
imath
|
||||||
|
minizip-ng
|
||||||
|
nativefiledialog-extended
|
||||||
|
nlohmann_json
|
||||||
|
openssl # required by minizip-ng
|
||||||
|
opentimelineio
|
||||||
|
plutovg # required by feather-tk -> lunasvg
|
||||||
|
xz # libLZMA, required by minizip-ng
|
||||||
|
zlib # required by minizip-ng
|
||||||
|
zstd # required by minizip-ng
|
||||||
|
]
|
||||||
|
++ lib.optionals enableNet [ nasm ]
|
||||||
|
++ lib.optionals enableOcio [ opencolorio ]
|
||||||
|
++ lib.optionals enableSdl2 [ SDL2 ]
|
||||||
|
++ lib.optionals enableSdl3 [ sdl3 ]
|
||||||
|
++ lib.optionals enableJpeg [ libjpeg ]
|
||||||
|
++ lib.optionals enableTiff [ libtiff ]
|
||||||
|
++ lib.optionals enablePng [ libpng ]
|
||||||
|
++ lib.optionals enableOpenexr [ openexr ]
|
||||||
|
++ lib.optionals enableFfmpeg [ ffmpeg ]
|
||||||
|
++ lib.optionals enableUsd [ openusd ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
(lib.cmakeBool "TLRENDER_NET" enableNet)
|
||||||
|
(lib.cmakeBool "TLRENDER_OCIO" enableOcio)
|
||||||
|
(lib.cmakeBool "TLRENDER_SDL2" enableSdl2)
|
||||||
|
(lib.cmakeBool "TLRENDER_SDL3" enableSdl3)
|
||||||
|
(lib.cmakeBool "TLRENDER_JPEG" enableJpeg)
|
||||||
|
(lib.cmakeBool "TLRENDER_TIFF" enableTiff)
|
||||||
|
(lib.cmakeBool "TLRENDER_STB" enableStb)
|
||||||
|
(lib.cmakeBool "TLRENDER_PNG" enablePng)
|
||||||
|
(lib.cmakeBool "TLRENDER_EXR" enableOpenexr)
|
||||||
|
(lib.cmakeBool "TLRENDER_FFMPEG" enableFfmpeg)
|
||||||
|
(lib.cmakeBool "TLRENDER_USD" enableUsd)
|
||||||
|
|
||||||
|
(lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
|
||||||
|
(lib.cmakeBool "TLRENDER_PROGRAMS" enableProgram)
|
||||||
|
(lib.cmakeBool "TLRENDER_EXAMPLES" enableExamples)
|
||||||
|
(lib.cmakeBool "TLRENDER_TESTS" finalAttrs.finalPackage.doCheck)
|
||||||
|
];
|
||||||
|
|
||||||
|
# GLFW requires a working X11 session.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Open source library for building playback and review applications";
|
||||||
|
longDescription = ''
|
||||||
|
An open source library for building playback and review applications for
|
||||||
|
visual effects, film, and animation.
|
||||||
|
|
||||||
|
The library can render and playback timelines with multiple video clips,
|
||||||
|
image sequences, audio clips, and transitions. Examples are provided for
|
||||||
|
integrating the library with Qt and OpenGL applications.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/darbyjohnston/tlRender";
|
||||||
|
license = lib.licenses.bsd3;
|
||||||
|
maintainers = with lib.maintainers; [ yzx9 ];
|
||||||
|
platforms = with lib.platforms; linux ++ darwin;
|
||||||
|
};
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user