summary refs log tree commit diff
path: root/gnu/packages/cmake.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/cmake.scm')
-rw-r--r--gnu/packages/cmake.scm105
1 files changed, 26 insertions, 79 deletions
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 65580c9ff7..8d6a091507 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -109,7 +109,6 @@ using the CMake build system.")
               "Source/cmGlobalXCodeGenerator.cxx"
               "Source/cmLocalUnixMakefileGenerator3.cxx"
               "Source/cmExecProgramCommand.cxx"
-              "Utilities/Release/release_cmake.cmake"
               "Tests/CMakeLists.txt"
               "Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
           (("/bin/sh") (which "sh")))
@@ -122,20 +121,26 @@ using the CMake build system.")
     ;; This test requires network access.
     "CTestTestUpload"
     ;; This test requires 'ldconfig' which is not available in Guix.
-    "RunCMake.install"))
+    "RunCMake.install"
+    ;; This test fails for unknown reason.
+    "RunCMake.file-GET_RUNTIME_DEPENDENCIES"
+    ;; This test requires the bundled libuv.
+    "BootstrapTest"))
 
 (define %preserved-third-party-files
   '(;; 'Source/cm_getdate.c' includes archive_getdate.c wholesale, so it must
     ;; be available along with the required headers.
     "Utilities/cmlibarchive/libarchive/archive_getdate.c"
-    "Utilities/cmlibarchive/libarchive/archive_getdate.h"))
+    "Utilities/cmlibarchive/libarchive/archive_getdate.h"
+    ;; CMake header wrappers.
+    "Utilities/cm3p"))
 
 ;;; The "bootstrap" CMake.  It is used to build 'cmake-minimal' below, as well
 ;;; as any dependencies that need cmake-build-system.
 (define-public cmake-bootstrap
   (package
     (name "cmake-bootstrap")
-    (version "3.16.5")
+    (version "3.19.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://cmake.org/files/v"
@@ -143,7 +148,7 @@ using the CMake build system.")
                                   "/cmake-" version ".tar.gz"))
               (sha256
                (base32
-                "1z4bb8z6b4dvq5hrvajrf1hyybqay3xybyimf71w1jgcp180nxjz"))
+                "1w67w0ak6vf37501dlz9yhnzlvvpw1w10n2nm3hi7yxp4cxzvq73"))
               (modules '((guix build utils)
                          (ice-9 ftw)))
               (snippet
@@ -241,14 +246,13 @@ using the CMake build system.")
              (apply invoke "./configure" configure-flags))))))
     (inputs
      `(("bzip2" ,bzip2)
-       ("curl" ,curl-minimal)
+       ("curl" ,curl)
        ("expat" ,expat)
        ("file" ,file)
        ("libarchive" ,libarchive)
        ,@(if (hurd-target?)
              '()
              `(("libuv" ,libuv)))       ;not supported on the Hurd
-       ("ncurses" ,ncurses)             ;required for ccmake
        ("rhash" ,rhash)
        ("zlib" ,zlib)))
     (native-search-paths
@@ -294,9 +298,8 @@ and workspaces that can be used in the compiler environment of your choice.")
                              (define preserved-files ',%preserved-third-party-files))
                           exp))))))
     (inputs
-     `(("curl" ,curl)
-       ("jsoncpp" ,jsoncpp)
-       ,@(alist-delete "curl" (package-inputs cmake-bootstrap))))
+     `(("jsoncpp" ,jsoncpp)
+       ,@(package-inputs cmake-bootstrap)))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -311,6 +314,15 @@ and workspaces that can be used in the compiler environment of your choice.")
        #:phases
        (modify-phases %standard-phases
          ,@%common-build-phases
+         (add-after 'install 'delete-help-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively
+               (string-append (assoc-ref outputs "out")
+                              "/share/cmake-"
+                              ,(version-major+minor
+                                 (package-version cmake-bootstrap))
+                              "/Help"))
+             #t))
          (replace 'check
            (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
              (let ((skipped-tests (list ,@%common-disabled-tests
@@ -334,39 +346,6 @@ and workspaces that can be used in the compiler environment of your choice.")
   (package
     (inherit cmake-minimal)
     (name "cmake")
-    (version "3.19.2")
-    ;; TODO: Move the following source field to the cmake-bootstrap package in
-    ;; the next rebuild cycle.
-    (source (origin
-              (inherit (package-source cmake-bootstrap))
-              (uri (string-append "https://cmake.org/files/v"
-                                  (version-major+minor version)
-                                  "/cmake-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1w67w0ak6vf37501dlz9yhnzlvvpw1w10n2nm3hi7yxp4cxzvq73"))
-              (snippet
-               (match (origin-snippet (package-source cmake-bootstrap))
-                 ((_ _ exp ...)
-                  ;; Now we can delete the remaining software bundles.
-                  (append `(begin
-                             (define preserved-files
-                               '(,@%preserved-third-party-files
-                                 ;; TODO: Move this file to the
-                                 ;; %preserved-third-party-files variable in
-                                 ;; the next rebuild cycle.
-                                 "Utilities/cm3p" ;CMake header wrappers
-                                 ;; Use the bundled JsonCpp during bootstrap
-                                 ;; to work around a circular dependency.
-                                 ;; TODO: JsonCpp can be built with Meson
-                                 ;; instead of CMake, but meson-build-system
-                                 ;; currently does not support
-                                 ;; cross-compilation.
-                                 "Utilities/cmjsoncpp"
-                                 ;; LibUV is required to bootstrap the initial
-                                 ;; build system.
-                                 "Utilities/cmlibuv")))
-                          exp))))))
     (arguments
      (substitute-keyword-arguments (package-arguments cmake-minimal)
        ;; Use cmake-minimal this time.
@@ -388,42 +367,7 @@ and workspaces that can be used in the compiler environment of your choice.")
                  ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
-           ;; TODO: Remove this override in the next rebuild cycle and adjust
-           ;; the %common-build-phases variable instead: the
-           ;; Utilities/Release/release_cmake.cmake file no longer exists in
-           ;; version 3.19.0.
-           (replace 'patch-bin-sh
-             (lambda _
-               ;; Replace "/bin/sh" by the right path in... a lot of
-               ;; files.
-               (substitute*
-                   '("Modules/CompilerId/Xcode-3.pbxproj.in"
-                     "Modules/Internal/CPack/CPack.RuntimeScript.in"
-                     "Source/cmGlobalXCodeGenerator.cxx"
-                     "Source/cmLocalUnixMakefileGenerator3.cxx"
-                     "Source/cmExecProgramCommand.cxx"
-                     "Tests/CMakeLists.txt"
-                     "Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
-                 (("/bin/sh") (which "sh")))
-               #t))
-           ;; TODO: Remove this override in the next rebuild cycle and adjust
-           ;; the %common-disabled-tests variable instead.
-           (replace 'check
-             (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
-               (let ((skipped-tests (list ,@%common-disabled-tests
-                                          ;; This test fails for unknown reason.
-                                          "RunCMake.file-GET_RUNTIME_DEPENDENCIES"
-                                          ;; This test requires the bundled libuv.
-                                          "BootstrapTest")))
-                 (if tests?
-                     (begin
-                       (invoke "ctest" "-j" (if parallel-tests?
-                                                (number->string (parallel-job-count))
-                                                "1")
-                               "--exclude-regex"
-                               (string-append "^(" (string-join skipped-tests "|") ")$")))
-                     (format #t "test suite not run~%"))
-                 #t)))
+           (delete 'delete-help-documentation)
            (add-after 'install 'move-html-doc
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((out (assoc-ref outputs "out"))
@@ -436,6 +380,9 @@ and workspaces that can be used in the compiler environment of your choice.")
                                    (string-append doc html))
                  (delete-file-recursively (string-append out html))
                  #t)))))))
+    (inputs
+     `(("ncurses" ,ncurses)             ;required for ccmake
+       ,@(package-inputs cmake-minimal)))
     ;; Extra inputs required to build the documentation.
     (native-inputs
      `(,@(package-native-inputs cmake-minimal)