python313Packages.traits: fix build (#373698)
[NixPkgs.git] / pkgs / development / libraries / opencolorio / 1.x.nix
blob4ac41482037fbce258d3874a8e38d7e61fcdae80
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   cmake,
6   boost,
7   pkg-config,
8   lcms2,
9   tinyxml,
10   git,
13 stdenv.mkDerivation rec {
14   pname = "opencolorio";
15   version = "1.1.1";
17   src = fetchFromGitHub {
18     owner = "imageworks";
19     repo = "OpenColorIO";
20     rev = "v${version}";
21     sha256 = "12srvxca51czpfjl0gabpidj9n84mw78ivxy5w75qhq2mmc798sb";
22   };
24   outputs = [
25     "bin"
26     "out"
27     "dev"
28   ];
30   # TODO: Investigate whether git can be dropped: It's only used to apply patches
31   nativeBuildInputs = [
32     cmake
33     pkg-config
34     git
35   ];
37   buildInputs = [
38     lcms2
39     tinyxml
40   ] ++ lib.optional stdenv.hostPlatform.isDarwin boost;
42   postPatch = ''
43     substituteInPlace src/core/CMakeLists.txt --replace "-Werror" ""
44     substituteInPlace src/pyglue/CMakeLists.txt --replace "-Werror" ""
45   '';
47   cmakeFlags =
48     [
49       "-DUSE_EXTERNAL_LCMS=ON"
50       "-DUSE_EXTERNAL_TINYXML=ON"
51       # External yaml-cpp 0.6.* not compatible: https://github.com/imageworks/OpenColorIO/issues/517
52       "-DUSE_EXTERNAL_YAML=OFF"
53     ]
54     ++ lib.optional stdenv.hostPlatform.isDarwin "-DOCIO_USE_BOOST_PTR=ON"
55     ++ lib.optional (!stdenv.hostPlatform.isx86) "-DOCIO_USE_SSE=OFF"
56     ++ lib.optional (
57       stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64
58     ) "-DCMAKE_OSX_ARCHITECTURES=arm64";
60   postInstall = ''
61     moveToOutput bin "$bin"
62     moveToOutput cmake "$dev"
63     mv $out/OpenColorIOConfig.cmake $dev/cmake/
65     substituteInPlace "$dev/cmake/OpenColorIO-release.cmake" \
66       --replace "$out/bin" "$bin/bin"
67   '';
69   meta = with lib; {
70     homepage = "https://opencolorio.org";
71     description = "Color management framework for visual effects and animation";
72     license = licenses.bsd3;
73     maintainers = [ ];
74     platforms = platforms.unix;
75   };