1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 alsa-lib,
6 cmake,
7 cppzmq,
8 doxygen,
9 ffmpeg,
10 imagemagick,
11 jsoncpp,
12 libopenshot-audio,
13 llvmPackages,
14 pkg-config,
15 python3,
16 qtbase,
17 qtmultimedia,
18 swig,
19 zeromq,
20}:
21
22stdenv.mkDerivation (finalAttrs: {
23 pname = "libopenshot";
24 version = "0.4.0";
25
26 src = fetchFromGitHub {
27 owner = "OpenShot";
28 repo = "libopenshot";
29 rev = "v${finalAttrs.version}";
30 hash = "sha256-zroTnJRYIIglhha6jQvaVNTgnIV6kUWcu7s5zEvgH6Q=";
31 };
32
33 patches = lib.optionals stdenv.hostPlatform.isDarwin [
34 # Darwin requires both Magick++ and MagickCore for a successful linkage
35 ./0001-link-magickcore.diff
36 ];
37
38 nativeBuildInputs = [
39 cmake
40 doxygen
41 pkg-config
42 swig
43 ];
44
45 buildInputs = [
46 cppzmq
47 ffmpeg
48 imagemagick
49 jsoncpp
50 libopenshot-audio
51 python3
52 qtbase
53 qtmultimedia
54 zeromq
55 ]
56 ++ lib.optionals stdenv.hostPlatform.isLinux [
57 alsa-lib
58 ]
59 ++ lib.optionals stdenv.hostPlatform.isDarwin [
60 llvmPackages.openmp
61 ];
62
63 strictDeps = true;
64
65 dontWrapQtApps = true;
66
67 doCheck = true;
68
69 cmakeFlags = [
70 (lib.cmakeBool "ENABLE_RUBY" false)
71 (lib.cmakeBool "ENABLE_PYTHON" true)
72 (lib.cmakeOptionType "filepath" "PYTHON_EXECUTABLE" (lib.getExe python3))
73 (lib.cmakeOptionType "filepath" "PYTHON_MODULE_PATH" python3.sitePackages)
74 ];
75
76 passthru = {
77 inherit libopenshot-audio;
78 };
79
80 meta = {
81 homepage = "http://openshot.org/";
82 description = "Free, open-source video editor library";
83 longDescription = ''
84 OpenShot Library (libopenshot) is an open-source project dedicated to
85 delivering high quality video editing, animation, and playback solutions
86 to the world. API currently supports C++, Python, and Ruby.
87 '';
88 license = with lib.licenses; [ gpl3Plus ];
89 maintainers = with lib.maintainers; [ ];
90 platforms = lib.platforms.unix;
91 };
92})