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.
This commit is contained in:
Marius Bakke 2020-01-17 19:18:04 +01:00
parent 26edcd9b8d
commit ff5733d186
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
3 changed files with 32 additions and 4 deletions

View File

@ -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)

View File

@ -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")

View File

@ -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