gnu: cmake: Use 'modify-phases'.

* gnu/packages/cmake.scm (cmake)[arguments]: Use 'modify-phases'.
master
Efraim Flashner 2016-06-21 21:49:11 +03:00
parent 28b49c0791
commit 6e261af1e7
No known key found for this signature in database
GPG Key ID: F4C1D3917EACEE93
1 changed files with 56 additions and 61 deletions

View File

@ -50,67 +50,62 @@
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:phases (alist-cons-before
'configure 'patch-bin-sh
(lambda _
;; Replace "/bin/sh" by the right path in... a lot of
;; files.
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in"
"Modules/CompilerId/Xcode-2.pbxproj.in"
"Modules/CPack.RuntimeScript.in"
"Source/cmakexbuild.cxx"
"Source/cmGlobalXCodeGenerator.cxx"
"Source/CTest/cmCTestBatchTestHandler.cxx"
"Source/cmLocalUnixMakefileGenerator3.cxx"
"Source/cmExecProgramCommand.cxx"
"Utilities/cmbzip2/Makefile-libbz2_so"
"Utilities/Release/release_cmake.cmake"
"Utilities/cmlibarchive/libarchive/\
archive_write_set_format_shar.c"
"Tests/CMakeLists.txt"
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
(("/bin/sh") (which "sh"))))
(alist-cons-before
'configure 'set-paths
(lambda _
;; Help cmake's bootstrap process to find system libraries
(begin
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
(setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
;; Get verbose output from failed tests
(setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE")))
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system*
"./configure"
(string-append "--prefix=" out)
"--system-libs"
"--no-system-jsoncpp" ; not packaged yet
;; 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-"
(version-major+minor version))))))
(alist-cons-after
'unpack 'remove-libarchive-version-test
; This test check has been failing consistantly over
; libarchive 3.2.x and cmake 3.4.x and 3.5.x so we
; disable it for now
(lambda _
(substitute*
"Tests/CMakeOnly/AllFindModules/CMakeLists.txt"
(("LibArchive") ""))
#t)
%standard-phases))))))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-bin-sh
(lambda _
;; Replace "/bin/sh" by the right path in... a lot of
;; files.
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in"
"Modules/CompilerId/Xcode-2.pbxproj.in"
"Modules/CPack.RuntimeScript.in"
"Source/cmakexbuild.cxx"
"Source/cmGlobalXCodeGenerator.cxx"
"Source/CTest/cmCTestBatchTestHandler.cxx"
"Source/cmLocalUnixMakefileGenerator3.cxx"
"Source/cmExecProgramCommand.cxx"
"Utilities/cmbzip2/Makefile-libbz2_so"
"Utilities/Release/release_cmake.cmake"
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Tests/CMakeLists.txt"
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
(("/bin/sh") (which "sh")))))
(add-before 'configure 'set-paths
(lambda _
;; Help cmake's bootstrap process to find system libraries
(begin
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
(setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
;; Get verbose output from failed tests
(setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE"))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system*
"./configure"
(string-append "--prefix=" out)
"--system-libs"
"--no-system-jsoncpp" ; not packaged yet
;; 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-"
(version-major+minor version)))))))
(add-after 'unpack 'remove-libarchive-version-test
; This test check has been failing consistantly over libarchive 3.2.x
; and cmake 3.4.x and 3.5.x so we disable it for now
(lambda _
(substitute*
"Tests/CMakeOnly/AllFindModules/CMakeLists.txt"
(("LibArchive") ""))
#t)))))
(inputs
`(("file" ,file)
("curl" ,curl)