From 7e21c519ba746931c1056fcf62065057ecb1860a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 21 Mar 2015 12:32:38 -0500 Subject: [PATCH] add cmake-3.2.1 Earlier versions of CMake have a bug in their OpenSSL version detection code. --- .../tools/build-managers/cmake/3.2.nix | 67 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 + 2 files changed, 70 insertions(+) create mode 100644 pkgs/development/tools/build-managers/cmake/3.2.nix diff --git a/pkgs/development/tools/build-managers/cmake/3.2.nix b/pkgs/development/tools/build-managers/cmake/3.2.nix new file mode 100644 index 000000000000..dd16b649cd13 --- /dev/null +++ b/pkgs/development/tools/build-managers/cmake/3.2.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchurl +, bzip2, curl, expat, jsoncpp, libarchive, xz, zlib +, useNcurses ? false, ncurses, useQt4 ? false, qt4 +}: + +with stdenv.lib; + +let + os = stdenv.lib.optionalString; + majorVersion = "3.2"; + minorVersion = "1"; + version = "${majorVersion}.${minorVersion}"; +in + +stdenv.mkDerivation rec { + name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}"; + + inherit majorVersion; + + src = fetchurl { + url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz"; + sha256 = "0b2hy4p0aa9zshlxyw9nmlh5q8q1lmnwmb594rvh6sx2n7v1r7vm"; + }; + + enableParallelBuilding = true; + + patches = + # Don't search in non-Nix locations such as /usr, but do search in + # Nixpkgs' Glibc. + optional (stdenv ? glibc) ./search-path-3.0.patch ++ + optional (stdenv ? cross) (fetchurl { + name = "fix-darwin-cross-compile.patch"; + url = "http://public.kitware.com/Bug/file_download.php?" + + "file_id=4981&type=bug"; + sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv"; + }); + + buildInputs = + [ bzip2 curl expat jsoncpp libarchive xz zlib ] + ++ optional useNcurses ncurses + ++ optional useQt4 qt4; + + CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs; + + configureFlags = + "--docdir=/share/doc/${name} --mandir=/share/man --system-libs" + + stdenv.lib.optionalString useQt4 " --qt-gui"; + + setupHook = ./setup-hook.sh; + + dontUseCmakeConfigure = true; + + preConfigure = optionalString (stdenv ? glibc) + '' + source $setupHook + fixCmakeFiles . + substituteInPlace Modules/Platform/UnixPaths.cmake \ + --subst-var-by glibc ${stdenv.glibc} + ''; + + meta = { + homepage = http://www.cmake.org/; + description = "Cross-Platform Makefile Generator"; + platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.all; + maintainers = with stdenv.lib.maintainers; [ urkud mornfall ttuegel ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e9dcac1c1339..41c172476c07 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4913,6 +4913,9 @@ let ps = if stdenv.isDarwin then darwin.ps else null; }; + cmake-3_2 = callPackage ../development/tools/build-managers/cmake/3.2.nix { + jsoncpp = jsoncpp-1_6; + }; cmake-3_0 = callPackage ../development/tools/build-managers/cmake/3.0.nix { }; cmake264 = callPackage ../development/tools/build-managers/cmake/264.nix { };