Skip to content

Commit

Permalink
opencolorio: refactor to use system lcms2 and tinyxml
Browse files Browse the repository at this point in the history
The version of LCMS bundled with opencolorio is too old to build on
aarch64, simply because its config files date from before aarch64
was announced. However, it can use the system lcms2 if it is found.

Also de-vendor tinyxml.

In addition, the version had been bumped to 1.1.0, but 1.0.9 was still
hard-coded in the fetch uri. Some changes were necessary for 1.1.0 to build.

As the sources are fetched from github, use fetchFromGitHub instead of
fetchurl.
  • Loading branch information
Thra11 committed Aug 30, 2018
1 parent c2c1315 commit 43110d8
Showing 1 changed file with 24 additions and 7 deletions.
31 changes: 24 additions & 7 deletions pkgs/development/libraries/opencolorio/default.nix
Original file line number Diff line number Diff line change
@@ -1,22 +1,39 @@
{ stdenv, lib, fetchurl, cmake, unzip, boost }:
{ stdenv, lib, fetchFromGitHub, cmake, boost, pkgconfig, lcms2, tinyxml, git }:

with lib;

stdenv.mkDerivation rec {
name = "opencolorio-${version}";
version = "1.1.0";

src = fetchurl {
url = "https://github.com/imageworks/OpenColorIO/archive/v1.0.9.zip";
sha256 = "1vi5pcgj7gv8fp6cdnhszwfh7lh38rl2rk4c5yzsvmgcb7xf48bx";
src = fetchFromGitHub {
owner = "imageworks";
repo = "OpenColorIO";
rev = "v${version}";
sha256 = "0cjsyn681xsg89lirlll5pqlsqg2vnk1278iiicmzjy2a2v8x7zq";
};

outputs = [ "bin" "out" "dev" ];

buildInputs = [ cmake unzip ] ++ lib.optional stdenv.isDarwin boost;
# TODO: Investigate whether git can be dropped: It's only used to apply patches
nativeBuildInputs = [ cmake pkgconfig git ];

buildInputs = [ lcms2 tinyxml ] ++ optional stdenv.isDarwin boost;

postPatch = ''
substituteInPlace src/core/CMakeLists.txt --replace "-Werror" ""
substituteInPlace src/pyglue/CMakeLists.txt --replace "-Werror" ""
'';

cmakeFlags = lib.optional stdenv.isDarwin "-DOCIO_USE_BOOST_PTR=ON";
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"
] ++ optional stdenv.isDarwin "-DOCIO_USE_BOOST_PTR=ON"
++ optional (!stdenv.hostPlatform.isi686 && !stdenv.hostPlatform.isx86_64) "-DOCIO_USE_SSE=OFF";

postInstall = ''
rm $out/lib/*.a
mkdir -p $bin/bin; mv $out/bin $bin/
'';

Expand Down

0 comments on commit 43110d8

Please sign in to comment.