gnu: Use 'search-input-directory' when looking for C/C++ library headers.

* gnu/packages/arcan.scm (arcan)[arguments]: Use
'search-input-directory' for "include/libdrm" and "include/apr-1".
* gnu/packages/bioinformatics.scm (sailfish): Likewise for jellyfish.
* gnu/packages/boost.scm (boost-for-irods): Likewise for libcxx headers.
* gnu/packages/cedille.scm (cedille): Likewise for IAL headers.
* gnu/packages/compression.scm (snappy-with-clang6): Likewise for libcxx
headers.
* gnu/packages/cups.scm (hplip): Likewise for libusb headers.
* gnu/packages/emulators.scm (pcsxr): Likewise for libcdio headers.
* gnu/packages/game-development.scm (python2-renpy): Likewise for
fribidi headers.
* gnu/packages/games.scm (pokerth): Likewise for libircclient.
* gnu/packages/guile-xyz.scm (guile-persist): Likewise for Guile.
* gnu/packages/hurd.scm (hurd): Likewise for libtirpc.
* gnu/packages/irods.scm (irods, irods-client-icommands): Likewise for
libcxx, catch2, and nlohmann-json-cpp.
* gnu/packages/julia.scm (julia): Use 'search-input-file' for libuv's
errno.h.
* gnu/packages/kde-pim.scm (kdepim-runtime): Use
'search-input-directory' for "include/KF5".
(kmessagelib): Likewise.
* gnu/packages/kde.scm (kdeconnect): Likewise.
* gnu/packages/llvm.scm (clang-runtime-3.5): Likewise for libtirpc.
* gnu/packages/mpi.scm (openmpi): Likewise for "include/infiniband".
* gnu/packages/pumpio.scm (pumpa): Use 'search-input-file' for "tidy.h"
and "aspell.h".
* gnu/packages/radio.scm (dream): Use 'search-input-file' and
'search-input-directory' for pulseaudio, sndfile, etc.
* gnu/packages/selinux.scm (policycoreutils): Likewise for PAM and
libaudit.
* gnu/packages/serialization.scm (avro-cpp-1.9-for-irods): Likewise for
libcxx.
* gnu/packages/sync.scm (nextcloud-client): Likewise for "include/KF5".
* gnu/packages/video.scm (mkvtoolnix): Likewise for "include/gtest".
(libopenshot): Likewise for "include/UnitTest++".
* gnu/packages/virtualization.scm (criu): Likewise for libnl3 and for
protobuf file.
This commit is contained in:
Ludovic Courtès 2021-07-16 16:01:49 +02:00
parent d76b2f82af
commit 425ccde6ae
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
25 changed files with 73 additions and 105 deletions

View file

@ -75,12 +75,10 @@ (define-public arcan
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/platform/cmake/modules/FindGBMKMS.cmake"
(("/usr/local/include/libdrm")
(string-append (assoc-ref inputs "libdrm")
"/include/libdrm")))
(search-input-directory inputs "include/libdrm")))
(substitute* "src/platform/cmake/modules/FindAPR.cmake"
(("/usr/local/apr/include/apr-1")
(string-append (assoc-ref inputs "apr")
"/include/apr-1")))
(search-input-directory inputs "include/apr-1")))
#t))
;; Normally, it tries to fetch patched openal with git
;; but copying files manually in the right place seems to work too.

View file

@ -9477,8 +9477,9 @@ (define-public sailfish
(("#include \"jellyfish/config.h\"") ""))
(substitute* "src/CMakeLists.txt"
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
(string-append (assoc-ref inputs "jellyfish")
"/include/jellyfish-" ,(package-version jellyfish)))
(search-input-directory
inputs
(string-append "/include/jellyfish-" ,(package-version jellyfish))))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
(string-append (assoc-ref inputs "jellyfish")
"/lib/libjellyfish-2.0.a"))

View file

@ -238,8 +238,7 @@ (define-public boost-for-irods
(let ((gcc (assoc-ref (or native-inputs inputs) "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons (string-append (assoc-ref inputs "libcxx")
"/include/c++/v1")
(cons (search-input-directory inputs "/include/c++/v1")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")

View file

@ -89,8 +89,7 @@ (define-public cedille
(add-after 'unpack 'copy-ial
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively
(string-append (assoc-ref inputs "agda-ial")
"/include/agda/ial")
(search-input-directory inputs "/include/agda/ial")
"ial")
;; Ambiguous module if main is included from ial
(delete-file "ial/main.agda")

View file

@ -1277,8 +1277,8 @@ (define-public snappy-with-clang6
(let ((gcc (assoc-ref (or native-inputs inputs) "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
"/include/c++/v1")
(cons* (search-input-directory inputs
"/include/c++/v1")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
@ -600,8 +600,7 @@ (define-public hplip
;; FIXME Use beginning-of-word in regexp.
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
(("/usr/include/libusb-1.0")
(string-append (assoc-ref inputs "libusb")
"/include/libusb-1.0"))
(search-input-directory inputs "/include/libusb-1.0"))
(("hplip_statedir =.*$")
;; Don't bail out while trying to create
;; /var/lib/hplip. We can safely change its value

View file

@ -2053,8 +2053,7 @@ (define-public pcsxr
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "cmake/FindCdio.cmake"
(("/usr/include/cdio")
(string-append (assoc-ref inputs "libcdio") "/include/cdio")))
#t))
(search-input-directory inputs "/include/cdio")))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")

View file

@ -1199,9 +1199,7 @@ (define-public python2-renpy
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "module/setup.py"
(("/usr/include/fribidi")
(string-append (assoc-ref inputs "fribidi")
"/include/fribidi")))
#t))
(search-input-directory inputs "include/fribidi")))))
(add-after 'set-paths 'set-build-vars
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(setenv "RENPY_CYTHON"

View file

@ -12256,8 +12256,7 @@ (define-public pokerth
(("/opt/gsasl")
(assoc-ref inputs "gsasl"))
(("\\$\\$\\{PREFIX\\}/include/libircclient")
(string-append (assoc-ref inputs "libircclient")
"/include/libircclient"))
(search-input-directory inputs "/include/libircclient"))
(("LIB_DIRS =")
(string-append "LIB_DIRS = "
(assoc-ref inputs "boost") "/lib")))

View file

@ -2912,7 +2912,7 @@ (define-public guile-persist
(("/usr/local/lib/guile")
(string-append (assoc-ref outputs "out") "/lib/guile"))
(("/usr/local/include/guile")
(string-append (assoc-ref inputs "guile") "/include/guile"))
(search-input-directory inputs "/include/guile"))
(("-L/usr/local/lib")
(string-append "-L" (assoc-ref inputs "guile") "/lib")))
#t))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -374,9 +374,10 @@ (define-public hurd
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (var)
(setenv var
(string-append (assoc-ref inputs "libtirpc")
"/include/tirpc:"
(or (getenv var) ""))))
(string-append
(search-input-directory inputs
"include/tirpc")
":" (or (getenv var) ""))))
'("CROSS_C_INCLUDE_PATH" "C_INCLUDE_PATH"
"CROSS_CPATH" "CPATH"))
#t))

View file

@ -126,12 +126,9 @@ (define-public irods
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
"/include/c++/v1")
(string-append (assoc-ref inputs "catch2")
"/include/catch2")
(string-append (assoc-ref inputs "json")
"/include/nlohmann")
(cons* (search-input-directory inputs "/include/c++/v1")
(search-input-directory inputs "/include/catch2")
(search-input-directory inputs "/include/nlohmann")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")
@ -231,10 +228,10 @@ (define-public irods-client-icommands
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
"/include/c++/v1")
(string-append (assoc-ref inputs "json")
"/include/nlohmann")
(cons* (search-input-directory inputs
"include/c++/v1")
(search-input-directory inputs
"include/nlohmann")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")

View file

@ -312,9 +312,7 @@ (define-public julia
(substitute* "base/Makefile"
(("\\$\\(build_includedir\\)/uv/errno.h")
(string-append (assoc-ref inputs "libuv")
"/include/uv/errno.h")))
#t))
(search-input-file inputs "/include/uv/errno.h")))))
(add-before 'build 'replace-default-shell
(lambda _
(substitute* "base/client.jl"

View file

@ -757,10 +757,9 @@ (define-public kdepim-runtime
;; found during one of the compilation steps without
;; this hack.
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "akonadi-mime")
"/include/KF5:"
(or (getenv "CPLUS_INCLUDE_PATH") "")))
#t)))))
(string-append
(search-input-directory inputs "include/KF5")
":" (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
(home-page "https://invent.kde.org/pim/kdepim-runtime")
(synopsis "Runtime components for Akonadi KDE")
(description "This package contains Akonadi agents written using KDE
@ -1369,10 +1368,9 @@ (define-public kmessagelib
;; FIXME: One of the compilation steps fail to find
;; <Libkdepim/MultiplyingLine> without this hack.
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "libkdepim")
"/include/KF5:"
(or (getenv "CPLUS_INCLUDE_PATH") "")))
#t)))))
(string-append
(search-input-directory inputs "include/KF5")
":" (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
(home-page "https://invent.kde.org/pim/messagelib")
(synopsis "KDE PIM messaging libraries")
(description "This package provides several libraries for messages,

View file

@ -7,7 +7,7 @@
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
@ -721,11 +721,9 @@ (define-public kdeconnect
;; FIXME: <kcmutils_version.h> is not found during one
;; of the compilation steps without this hack.
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "kcmutils")
"/include/KF5:"
(or (getenv "CPLUS_INCLUDE_PATH")
"")))
#t)))
(string-append
(search-input-directory inputs "include/KF5")
":" (or (getenv "CPLUS_INCLUDE_PATH") ""))))))
#:tests? #f)) ; tests fail hard in our build environment
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)

View file

@ -855,14 +855,13 @@ (define-public clang-runtime-3.5
(add-after 'unpack 'find-rpc-includes
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append (assoc-ref inputs "libtirpc")
"/include/tirpc/:"
(or (getenv "CPATH") "")))
(string-append
(search-input-directory inputs "/include/tirpc")
":" (or (getenv "CPATH") "")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "libtirpc")
"/include/tirpc/:"
(or (getenv "CPLUS_INCLUDE_PATH") "")))
#t))))))
(string-append
(search-input-directory inputs "/include/tirpc")
":" (or (getenv "CPLUS_INCLUDE_PATH") "")))))))))
(inputs
`(("libtirpc" ,libtirpc)
("llvm" ,llvm-3.5))))))

View file

@ -263,12 +263,11 @@ (define-public openmpi
(add-after 'unpack 'find-opensm-headers
(lambda* (#:key inputs #:allow-other-keys)
(setenv "C_INCLUDE_PATH"
(string-append (assoc-ref inputs "opensm")
"/include/infiniband"))
(search-input-directory inputs
"/include/infiniband"))
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "opensm")
"/include/infiniband"))
#t))
(search-input-directory inputs
"/include/infiniband"))))
(add-before 'build 'remove-absolute
(lambda _
;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE

View file

@ -2,7 +2,7 @@
;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
@ -217,8 +217,7 @@ (define-public fmt-for-irods
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons (string-append (assoc-ref inputs "libcxx")
"/include/c++/v1")
(cons (search-input-directory inputs "/include/c++/v1")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")

View file

@ -50,11 +50,9 @@ (define-public pumpa
;; Fix dependency tests.
(substitute* "pumpa.pro"
(("/usr/include/tidy\\.h")
(string-append (assoc-ref inputs "tidy")
"/include/tidy.h"))
(search-input-file inputs "/include/tidy.h"))
(("/usr/include/aspell.h")
(string-append (assoc-ref inputs "aspell")
"/include/aspell.h")))
(search-input-file inputs "/include/aspell.h")))
;; Run qmake with proper installation prefix.
(let ((prefix (string-append "PREFIX="
(assoc-ref outputs "out"))))

View file

@ -1786,23 +1786,17 @@ (define-public dream
(assoc-ref outputs "out")
"/share/man/man1"))
(("/usr/include/pulse/")
(string-append (assoc-ref inputs "pulseaudio")
"/include/pulse/"))
(search-input-directory inputs "include/pulse"))
(("/usr/include/sndfile\\.h")
(string-append (assoc-ref inputs "libsndfile")
"/include/sndfile.h"))
(search-input-file inputs "/include/sndfile.h"))
(("/usr/include/opus/")
(string-append (assoc-ref inputs "opus")
"/include/opus/"))
(search-input-directory inputs "include/opus"))
(("/usr/include/speex/")
(string-append (assoc-ref inputs "speexdsp")
"/include/speex/"))
(search-input-directory inputs "include/speex"))
(("/usr/include/qwt/")
(string-append (assoc-ref inputs "qwt")
"/include/qwt/"))
(search-input-directory inputs "include/qwt"))
(("\\$\\$OUT_PWD/include/neaacdec\\.h")
(string-append (assoc-ref inputs "faad2")
"/include/neaacdec.h")))))
(search-input-file inputs "/include/neaacdec.h")))))
(replace 'configure
(lambda _
(invoke "qmake"))))))

View file

@ -397,9 +397,9 @@ (define-public policycoreutils
"setfiles/Makefile"
"run_init/Makefile")
(("/usr(/include/security/pam_appl.h)" _ file)
(string-append (assoc-ref inputs "pam") file))
(search-input-file inputs file))
(("/usr(/include/libaudit.h)" _ file)
(string-append (assoc-ref inputs "audit") file))))))))
(search-input-file inputs file))))))))
(inputs
`(("audit" ,audit)
("pam" ,linux-pam)

View file

@ -107,8 +107,7 @@ (define-public avro-cpp-1.9-for-irods
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
"/include/c++/v1")
(cons* (search-input-directory inputs "include/c++/v1")
;; Hide GCC's C++ headers so that they do not interfere with
;; the Clang headers.
(delete (string-append gcc "/include/c++")

View file

@ -156,9 +156,8 @@ (define-public nextcloud-client
(("ON CACHE") "OFF CACHE"))
(substitute* "src/gui/CMakeLists.txt"
(("@kwidgetsaddons@")
(string-append (assoc-ref inputs "kwidgetsaddons")
"/include/KF5/KWidgetsAddons/")))
#t))
(search-input-directory inputs
"/include/KF5/KWidgetsAddons/")))))
(add-before 'check 'pre-check
(lambda _
;; Tests write to $HOME.

View file

@ -977,10 +977,8 @@ (define-public mkvtoolnix
#t)))
(add-before 'configure 'add-googletest
(lambda* (#:key inputs #:allow-other-keys)
(symlink
(string-append (assoc-ref inputs "googletest")
"/include/gtest") "lib/gtest")
#t))
(symlink (search-input-file inputs "/include/gtest")
"lib/gtest")))
(replace 'build
(lambda _
(let ((-j (list "-j" (number->string (parallel-job-count)))))
@ -4597,9 +4595,8 @@ (define-public libopenshot
(setenv "ZMQDIR"
(assoc-ref inputs "zeromq"))
(setenv "UNITTEST_DIR"
(string-append (assoc-ref inputs "unittest++")
"/include/UnitTest++"))
#t)))))
(search-input-directory inputs
"include/UnitTest++")))))))
(home-page "https://openshot.org")
(synopsis "Video-editing, animation, and playback library")
(description "OpenShot Library (libopenshot) is a powerful C++ video

View file

@ -1347,10 +1347,9 @@ (define-public criu
(lambda* (#:key inputs #:allow-other-keys)
;; The includes for libnl are located in a sub-directory.
(setenv "C_INCLUDE_PATH"
(string-append (assoc-ref inputs "libnl")
"/include/libnl3:"
(or (getenv "C_INCLUDE_PATH") "")))
#t))
(string-append
(search-input-directory inputs "/include/libnl3")
":" (or (getenv "C_INCLUDE_PATH") "")))))
(add-after 'configure 'fix-documentation
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "Documentation/Makefile"
@ -1381,8 +1380,9 @@ (define-public criu
;; /usr/include/..., which obviously does not exist.
(let* ((file "google/protobuf/descriptor.proto")
(target (string-append "images/" file))
(source (string-append (assoc-ref inputs "protobuf")
"/include/" file)))
(source (search-input-file
inputs
(string-append "include/" file))))
(delete-file target)
(symlink source target)
#t)))