about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/opencolorio
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/opencolorio')
-rw-r--r--nixpkgs/pkgs/development/libraries/opencolorio/1.x.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/opencolorio/default.nix49
2 files changed, 94 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/opencolorio/1.x.nix b/nixpkgs/pkgs/development/libraries/opencolorio/1.x.nix
new file mode 100644
index 000000000000..041ddf8e8371
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencolorio/1.x.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, cmake, boost, pkg-config, lcms2, tinyxml, git }:
+
+stdenv.mkDerivation rec {
+  pname = "opencolorio";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "imageworks";
+    repo = "OpenColorIO";
+    rev = "v${version}";
+    sha256 = "12srvxca51czpfjl0gabpidj9n84mw78ivxy5w75qhq2mmc798sb";
+  };
+
+  outputs = [ "bin" "out" "dev" ];
+
+  # TODO: Investigate whether git can be dropped: It's only used to apply patches
+  nativeBuildInputs = [ cmake pkg-config git ];
+
+  buildInputs = [ lcms2 tinyxml ] ++ lib.optional stdenv.isDarwin boost;
+
+  postPatch = ''
+    substituteInPlace src/core/CMakeLists.txt --replace "-Werror" ""
+    substituteInPlace src/pyglue/CMakeLists.txt --replace "-Werror" ""
+  '';
+
+  cmakeFlags = [
+    "-DUSE_EXTERNAL_LCMS=ON"
+    "-DUSE_EXTERNAL_TINYXML=ON"
+    # External libyamlcpp 0.6.* not compatible: https://github.com/imageworks/OpenColorIO/issues/517
+    "-DUSE_EXTERNAL_YAML=OFF"
+  ] ++ lib.optional stdenv.isDarwin "-DOCIO_USE_BOOST_PTR=ON"
+    ++ lib.optional (!stdenv.hostPlatform.isi686 && !stdenv.hostPlatform.isx86_64) "-DOCIO_USE_SSE=OFF";
+
+  postInstall = ''
+    mkdir -p $bin/bin; mv $out/bin $bin/
+  '';
+
+  meta = with lib; {
+    homepage = "https://opencolorio.org";
+    description = "A color management framework for visual effects and animation";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/opencolorio/default.nix b/nixpkgs/pkgs/development/libraries/opencolorio/default.nix
new file mode 100644
index 000000000000..b93e517def66
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencolorio/default.nix
@@ -0,0 +1,49 @@
+{
+  stdenv, lib, fetchFromGitHub, symlinkJoin,
+  cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
+
+  glew, freeglut, # Only required on Linux
+  Carbon, GLUT, Cocoa, # Only required on Darwin
+
+  pythonBindings ? true, # Python bindings
+  python3Packages,
+
+  buildApps ? true, # Utility applications
+  lcms2, openimageio2, openexr,
+}:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  pname = "opencolorio";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "AcademySoftwareFoundation";
+    repo = "OpenColorIO";
+    rev = "v${version}";
+    sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
+  };
+
+  nativeBuildInputs = [ cmake (symlinkJoin { name = "expat"; paths = [ expat.out expat.dev ]; }) ];
+  buildInputs = [ expat.out libyamlcpp ilmbase pystring ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
+    ++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]
+    ++ lib.optionals buildApps [ lcms2 openimageio2 openexr ];
+
+    cmakeFlags = [ "-DOCIO_INSTALL_EXT_PACKAGES=NONE" ]
+    ++ lib.optional (!pythonBindings) "-DOCIO_BUILD_PYTHON=OFF"
+    ++ lib.optional (!buildApps) "-DOCIO_BUILD_APPS=OFF";
+
+  # TODO Investigate this: Python and GPU tests fail to load libOpenColorIO.so.2.0
+  # doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://opencolorio.org";
+    description = "A color management framework for visual effects and animation";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.rytone ];
+    platforms = platforms.unix;
+  };
+}