From 6e261af1e7141f10267af8995bb6f06329612e8a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Jun 2016 21:49:11 +0300 Subject: gnu: cmake: Use 'modify-phases'. * gnu/packages/cmake.scm (cmake)[arguments]: Use 'modify-phases'. --- gnu/packages/cmake.scm | 117 +++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 61 deletions(-) (limited to 'gnu/packages/cmake.scm') diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 0d4520926a..7167eb6a9e 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -50,67 +50,62 @@ (define-public cmake (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) -- cgit v1.2.3