Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / libplacebo / default.nix
blob60a3f8989578404c49cb25e5b1215ef2abd2802b
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , meson
5 , ninja
6 , pkg-config
7 , python3Packages
8 , vulkan-headers
9 , vulkan-loader
10 , shaderc
11 , lcms2
12 , libGL
13 , xorg
14 , libunwind
15 , libdovi
18 stdenv.mkDerivation rec {
19   pname = "libplacebo";
20   version = "5.264.1";
22   src = fetchFromGitLab {
23     domain = "code.videolan.org";
24     owner = "videolan";
25     repo = pname;
26     rev = "v${version}";
27     hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8=";
28   };
30   nativeBuildInputs = [
31     meson
32     ninja
33     pkg-config
34     vulkan-headers
35     python3Packages.jinja2
36     python3Packages.glad2
37   ];
39   buildInputs = [
40     vulkan-loader
41     shaderc
42     lcms2
43     libGL
44     xorg.libX11
45     libunwind
46     libdovi
47   ];
49   mesonFlags = [
50     "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
51     "-Ddemos=false" # Don't build and install the demo programs
52     "-Dd3d11=disabled" # Disable the Direct3D 11 based renderer
53     "-Dglslang=disabled" # rely on shaderc for GLSL compilation instead
54   ] ++ lib.optionals stdenv.isDarwin [
55     "-Dunwind=disabled" # libplacebo doesn’t build with `darwin.libunwind`
56   ];
58   postPatch = ''
59     substituteInPlace meson.build \
60       --replace 'python_env.append' '#'
61   '';
63   meta = with lib; {
64     description = "Reusable library for GPU-accelerated video/image rendering primitives";
65     longDescription = ''
66       Reusable library for GPU-accelerated image/view processing primitives and
67       shaders, as well a batteries-included, extensible, high-quality rendering
68       pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL and Metal (via
69       MoltenVK).
70     '';
71     homepage = "https://code.videolan.org/videolan/libplacebo";
72     changelog = "https://code.videolan.org/videolan/libplacebo/-/tags/v${version}";
73     license = licenses.lgpl21Plus;
74     maintainers = with maintainers; [ primeos tadeokondrak ];
75     platforms = platforms.all;
76   };