From 01fe019166fe8a925b3bf3b489792b52b1b6ca7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Apr 2017 00:44:45 +0200 Subject: [PATCH] gnu: openexr: Add IlmBase include sub-directory to 'OpenEXR.pc'. * gnu/packages/graphics.scm (openexr)[arguments]: Add 'set-ilmbase-directory-in-pc-file' phase. --- gnu/packages/graphics.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index a502f246ff..79c7772af9 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Ricardo Wurmus @@ -256,6 +256,20 @@ exception-handling library.") (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'set-ilmbase-directory-in-pc-file + (lambda* (#:key inputs #:allow-other-keys) + ;; Add '-I ILMBASE/include/OpenEXR' to 'OpenEXR.pc' since some of + ;; the headers of OpenEXR expect IlmBase headers to live in the + ;; same directory. Unfortunately this doesn't help much because + ;; 'FindOpenEXR.cmake' doesn't read 'OpenEXR.pc'... + (let ((ilmbase (assoc-ref inputs "ilmbase"))) + (substitute* "OpenEXR.pc.in" + (("^Cflags: (.*)$" _ cflags) + (string-append "Cflags: " + " -I" ilmbase "/include" + " -I" ilmbase "/include/OpenEXR " + cflags "\n"))) + #t))) (add-after 'unpack 'disable-broken-test ;; This test fails on i686. Upstream developers suggest that ;; this test is broken on i686 and can be safely disabled: