diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-01-17 19:18:04 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-01-22 22:12:33 +0100 |
commit | ff5733d186839f32d1558a9e1f049d218613fa1a (patch) | |
tree | 98e2f53fa29c3454a48396ab2161217571f4e3fc /gnu | |
parent | 26edcd9b8db553bed324149bc039c306a804a2a3 (diff) | |
download | guix-ff5733d186839f32d1558a9e1f049d218613fa1a.tar guix-ff5733d186839f32d1558a9e1f049d218613fa1a.tar.gz |
gnu: libjpeg-turbo: Build with a minimal variant of CMake.
This is necessary to avoid a circular dependency in the next commit.
* gnu/packages/curl.scm (curl-minimal): New public variable.
* gnu/packages/cmake.scm (cmake-minimal-bootstrap): New public variable.
* gnu/packages/image.scm (libjpeg-turbo)[arguments]: Add #:cmake.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/cmake.scm | 14 | ||||
-rw-r--r-- | gnu/packages/curl.scm | 12 | ||||
-rw-r--r-- | gnu/packages/image.scm | 10 |
3 files changed, 32 insertions, 4 deletions
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 21f11ac4f0..cf542f12e4 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> @@ -232,6 +232,18 @@ and workspaces that can be used in the compiler environment of your choice.") (search-paths (package-native-search-paths cmake-minimal)))) +;; The purpose of this package is to solve a circular dependency between +;; packages that use cmake-build-system and CMakes own dependencies. +(define-public cmake-minimal-bootstrap + (package + (inherit cmake-minimal) + (name "cmake-minimal-bootstrap") + (native-inputs + `(;; cURL depends on ghostscript (via groff and OpenLDAP), which depends on + ;; 'cmake-build-system' through libtiff and ultimately libjpeg-turbo. + ("curl" ,curl-minimal) + ,@(alist-delete "curl" (package-native-inputs cmake-minimal)))))) + (define-public emacs-cmake-mode (package (inherit cmake) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index b06d01c7d7..9289e2ffd3 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -46,7 +46,8 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages tls) - #:use-module (gnu packages web)) + #:use-module (gnu packages web) + #:use-module (srfi srfi-1)) (define-public curl (package @@ -159,6 +160,15 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) +;; This package exists mainly to bootstrap CMake. It must not depend on +;; anything that uses cmake-build-system. +(define-public curl-minimal + (hidden-package + (package/inherit + curl + (name "curl-minimal") + (inputs (alist-delete "openldap" (package-inputs curl)))))) + (define-public kurly (package (name "kurly") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 709599fb98..4fef6fe21e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -46,6 +46,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages curl) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) @@ -1504,8 +1505,13 @@ is hereby granted.")))) (native-inputs `(("nasm" ,nasm))) (arguments - '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib" - "-DENABLE_STATIC=0"))) + `(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib" + "-DENABLE_STATIC=0") + ,@(if (%current-target-system) + '() + ;; Use a special "bootstrap" CMake for the native build to work + ;; around a circular dependency between CMake and this package. + `(#:cmake ,cmake-minimal-bootstrap)))) (home-page "https://libjpeg-turbo.org/") (synopsis "SIMD-accelerated JPEG image handling library") (description "libjpeg-turbo is a JPEG image codec that accelerates baseline |