gnu: cmake: Use our curl, zlib, expat, bzip2, and libarchive.

* gnu/packages/cmake.scm (cmake)[arguments]: Move sh-patching to new
  'patch-bin-sh phase.  New 'set-paths phase.
  [inputs]: Add curl, zlib, expat, bzip2, and libarchive.
  [description]: Fix space after end-of-sentence.
This commit is contained in:
Eric Bavier 2014-10-08 11:55:40 -05:00
parent ae133b89cc
commit c824d34fae

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -18,12 +19,16 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cmake) (define-module (gnu packages cmake)
#:use-module (guix licenses) #:use-module ((guix licenses) #:select (bsd-3))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages backup)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages xml)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public cmake (define-public cmake
@ -43,13 +48,12 @@ (define-public cmake
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:phases (alist-replace #:phases (alist-cons-before
'configure 'configure 'patch-bin-sh
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) ;; Replace "/bin/sh" by the right path in... a lot of
;; Replace "/bin/sh" by the right path in... a lot of ;; files.
;; files. (substitute*
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in" '("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in" "Modules/CompilerId/Xcode-1.pbxproj.in"
"Modules/CompilerId/Xcode-2.pbxproj.in" "Modules/CompilerId/Xcode-2.pbxproj.in"
@ -62,29 +66,46 @@ (define-public cmake
"Utilities/Release/release_cmake.cmake" "Utilities/Release/release_cmake.cmake"
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Tests/CMakeLists.txt") "Tests/CMakeLists.txt")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh"))))
(zero? (system* (alist-cons-before
"./configure" 'configure 'set-paths
(string-append "--prefix=" out) (lambda _
;; By default, the man pages and other docs land ;; Help cmake's bootstrap process to find system libraries
;; in PREFIX/man and PREFIX/doc, but we want them (begin
;; in share/{man,doc}. Note that unlike (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
;; autoconf-generated configure scripts, cmake's (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))))
;; configure prepends "PREFIX/" to what we pass (alist-replace
;; to --mandir and --docdir. 'configure
"--mandir=share/man" (lambda* (#:key outputs #:allow-other-keys)
,(string-append (let ((out (assoc-ref outputs "out")))
"--docdir=share/doc/cmake-" (zero? (system*
(string-join (take (string-split version #\.) 2) "./configure"
".")))))) (string-append "--prefix=" out)
%standard-phases))) "--system-libs"
;; By default, the man pages and other docs land
;; in PREFIX/man and PREFIX/doc, but we want them
;; in share/{man,doc}. Note that unlike
;; autoconf-generated configure scripts, cmake's
;; configure prepends "PREFIX/" to what we pass
;; to --mandir and --docdir.
"--mandir=share/man"
,(string-append
"--docdir=share/doc/cmake-"
(string-join (take (string-split version #\.) 2)
"."))))))
%standard-phases)))))
(inputs (inputs
`(("file" ,file))) `(("file" ,file)
("curl" ,curl)
("zlib" ,zlib)
("expat" ,expat)
("bzip2" ,bzip2)
("libarchive" ,libarchive)))
(home-page "http://www.cmake.org/") (home-page "http://www.cmake.org/")
(synopsis "Cross-platform build system") (synopsis "Cross-platform build system")
(description (description
"CMake is a family of tools designed to build, test and package software. "CMake is a family of tools designed to build, test and package software.
CMake is used to control the software compilation process using simple platform CMake is used to control the software compilation process using simple platform
and compiler independent configuration files. CMake generates native makefiles and compiler independent configuration files. CMake generates native makefiles
and workspaces that can be used in the compiler environment of your choice.") and workspaces that can be used in the compiler environment of your choice.")
(license bsd-3))) (license bsd-3)))