about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix54
1 files changed, 27 insertions, 27 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
index a29ac38eb136..33dbc25d9bf8 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
@@ -2,6 +2,7 @@
 , bzip2, curlMinimal, expat, libarchive, xz, zlib, libuv, rhash
 , buildPackages
 # darwin attributes
+, SystemConfiguration
 , ps
 , isBootstrap ? false
 , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
@@ -13,15 +14,14 @@
 
 stdenv.mkDerivation rec {
   pname = "cmake"
-          + lib.optionalString isBootstrap "-boot"
-          + lib.optionalString useNcurses "-cursesUI"
-          + lib.optionalString withQt5 "-qt5UI";
-  version = "3.19.7";
+    + lib.optionalString isBootstrap "-boot"
+    + lib.optionalString useNcurses "-cursesUI"
+    + lib.optionalString withQt5 "-qt5UI";
+  version = "3.21.2";
 
   src = fetchurl {
     url = "https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
-    # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
-    sha256 = "sha256-WKFfDVagr8zDzFNxI0/Oc/zGyPnb13XYmOUQuDF1WI4=";
+    sha256 = "sha256-lCdeC2HIS7QnEPUyCiPG3LLG7gMq59KmFvU/aLPSFlk=";
   };
 
   patches = [
@@ -34,7 +34,11 @@ stdenv.mkDerivation rec {
     # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
     ./libuv-application-services.patch
 
-  ] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch;
+  ] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch
+  # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51
+  ++ lib.optional (stdenv.isDarwin && isBootstrap) ./remove-systemconfiguration-dep.patch
+  # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG.
+  ++ lib.optional stdenv.isDarwin ./darwin-always-set-runtime-c-flag.patch;
 
   outputs = [ "out" ]
     ++ lib.optionals buildDocs [ "man" "info" ];
@@ -48,11 +52,11 @@ stdenv.mkDerivation rec {
     ++ lib.optionals buildDocs [ texinfo ]
     ++ lib.optionals withQt5 [ wrapQtAppsHook ];
 
-  buildInputs = []
-    ++ lib.optionals useSharedLibraries [ bzip2 curlMinimal expat libarchive xz zlib libuv rhash ]
+  buildInputs = lib.optionals useSharedLibraries [ bzip2 curlMinimal expat libarchive xz zlib libuv rhash ]
     ++ lib.optional useOpenSSL openssl
     ++ lib.optional useNcurses ncurses
-    ++ lib.optional withQt5 qtbase;
+    ++ lib.optional withQt5 qtbase
+    ++ lib.optional (stdenv.isDarwin && !isBootstrap) SystemConfiguration;
 
   propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
 
@@ -62,27 +66,24 @@ stdenv.mkDerivation rec {
       --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \
       --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \
       --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc}
-  ''
-  # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
-  + ''
+    # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
     configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags"
   '';
 
   configureFlags = [
     "--docdir=share/doc/${pname}${version}"
   ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
-    ++ lib.optional withQt5 "--qt-gui"
-    ++ lib.optionals buildDocs [
-      "--sphinx-build=${sphinx}/bin/sphinx-build"
-      "--sphinx-man"
-      "--sphinx-info"
-    ]
-    # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
-    ++ lib.optionals stdenv.hostPlatform.is32bit [
-      "CFLAGS=-D_FILE_OFFSET_BITS=64"
-      "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
-    ]
-    ++ [
+  ++ lib.optional withQt5 "--qt-gui"
+  ++ lib.optionals buildDocs [
+    "--sphinx-build=${sphinx}/bin/sphinx-build"
+    "--sphinx-man"
+    "--sphinx-info"
+  ]
+  # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
+  ++ lib.optionals stdenv.hostPlatform.is32bit [
+    "CFLAGS=-D_FILE_OFFSET_BITS=64"
+    "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
+  ] ++ [
     "--"
     # We should set the proper `CMAKE_SYSTEM_NAME`.
     # http://www.cmake.org/Wiki/CMake_Cross_Compiling
@@ -117,8 +118,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cmake.org/";
-    changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/"
-      + "release/${lib.versions.majorMinor version}.html";
+    changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/release/${lib.versions.majorMinor version}.html";
     description = "Cross-Platform Makefile Generator";
     longDescription = ''
       CMake is an open-source, cross-platform family of tools designed to