summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2011-07-21 18:21:38 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2011-07-21 18:21:38 +0000
commit489d1be9186d1954bf16c6efd9290e6057cf2159 (patch)
tree08b9f7dfd0201ab581aaad65f5b7b5d7f3e9d3b2 /pkgs/development/tools
parent9253901104b6c3a9ebe73586d6f7af34deed222c (diff)
downloadnixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar.gz
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar.bz2
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar.lz
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar.xz
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.tar.zst
nixlib-489d1be9186d1954bf16c6efd9290e6057cf2159.zip
* Cmake updated to 2.8.5. Also added a patch that prevents Cmake from
  looking in /usr and similar locations.  However, it *will* now look
  in the Nixpkgs Glibc lib and include directories.  This ensures that
  find_library can find libraries in Glibc.

svn path=/nixpkgs/branches/kde-4.7/; revision=27884
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix34
-rw-r--r--pkgs/development/tools/build-managers/cmake/search-path.patch95
2 files changed, 119 insertions, 10 deletions
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index bc6677496255..081313972df4 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,14 +1,16 @@
-{fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
+{ fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
 , useNcurses ? false, ncurses, useQt4 ? false, qt4
-, darwinInstallNameToolUtility}:
+, darwinInstallNameToolUtility }:
+
+with stdenv.lib;
 
 let
   os = stdenv.lib.optionalString;
-  inherit (stdenv.lib) optional;
   majorVersion = "2.8";
-  minorVersion = "4";
+  minorVersion = "5";
   version = "${majorVersion}.${minorVersion}";
 in
+
 stdenv.mkDerivation rec {
   name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
 
@@ -16,26 +18,38 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
-    sha256 = "1k2kjaj3vfifb329ff7fr4hcbpbaqb66l97pshq70h7m0zwajznr";
+    sha256 = "148bxnn5msl1zg366cdgxy2inzjj0n4jlhakymj6qr81bzvvy62y";
   };
 
+  patches =
+    # Don't search in non-Nix locations such as /usr, but do search in
+    # Nixpkgs' Glibc.
+    optional (stdenv ? glibc) ./search-path.patch;
+
   buildInputs = [ curl expat zlib bzip2 libarchive ]
     ++ optional stdenv.isDarwin darwinInstallNameToolUtility
     ++ 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;
 
-  postUnpack = ''
-    dontUseCmakeConfigure=1
-    source $setupHook
-    fixCmakeFiles $sourceRoot
-  '';
+  postUnpack =
+    ''
+      dontUseCmakeConfigure=1
+      source $setupHook
+      fixCmakeFiles $sourceRoot
+    '';
+
+  preConfigure = optionalString (stdenv ? glibc)
+    ''
+      substituteInPlace Modules/Platform/UnixPaths.cmake --subst-var-by glibc ${stdenv.glibc}
+    '';
 
   meta = {
     homepage = http://www.cmake.org/;
diff --git a/pkgs/development/tools/build-managers/cmake/search-path.patch b/pkgs/development/tools/build-managers/cmake/search-path.patch
new file mode 100644
index 000000000000..ef8a9eef7c18
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -0,0 +1,95 @@
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/Linux.cmake cmake-2.8.5/Modules/Platform/Linux.cmake
+--- cmake-2.8.5-orig/Modules/Platform/Linux.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/Linux.cmake	2011-07-21 19:45:00.000000000 +0200
+@@ -36,13 +36,13 @@
+   # checking the platform every time.  This option is advanced enough
+   # that only package maintainers should need to adjust it.  They are
+   # capable of providing a setting on the command line.
+-  IF(EXISTS "/etc/debian_version")
+-    SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
+-      "Install .so files without execute permission.")
+-  ELSE(EXISTS "/etc/debian_version")
++  #IF(EXISTS "/etc/debian_version")
++  #  SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
++  #    "Install .so files without execute permission.")
++  #ELSE(EXISTS "/etc/debian_version")
+     SET(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+       "Install .so files without execute permission.")
+-  ENDIF(EXISTS "/etc/debian_version")
++  #ENDIF(EXISTS "/etc/debian_version")
+ ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ 
+ # Match multiarch library directory names.
+@@ -52,6 +52,6 @@
+ 
+ # Debian has lib64 paths only for compatibility so they should not be
+ # searched.
+-IF(EXISTS "/etc/debian_version")
+-  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+-ENDIF(EXISTS "/etc/debian_version")
++#IF(EXISTS "/etc/debian_version")
++#  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
++#ENDIF(EXISTS "/etc/debian_version")
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake cmake-2.8.5/Modules/Platform/UnixPaths.cmake
+--- cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/UnixPaths.cmake	2011-07-21 19:50:52.000000000 +0200
+@@ -33,55 +33,18 @@
+ # search types.
+ LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
+   # Standard
+-  /usr/local /usr /
+-
+-  # CMake install location
+-  "${_CMAKE_INSTALL_DIR}"
+-
+-  # Project install destination.
+-  "${CMAKE_INSTALL_PREFIX}"
+-  )
+-
+-# List common include file locations not under the common prefixes.
+-LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+-  # Windows API on Cygwin
+-  /usr/include/w32api
+-
+-  # X11
+-  /usr/X11R6/include /usr/include/X11
+-
+-  # Other
+-  /usr/pkg/include
+-  /opt/csw/include /opt/include  
+-  /usr/openwin/include
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+-  # Windows API on Cygwin
+-  /usr/lib/w32api
+-
+-  # X11
+-  /usr/X11R6/lib /usr/lib/X11
+-
+-  # Other
+-  /usr/pkg/lib
+-  /opt/csw/lib /opt/lib 
+-  /usr/openwin/lib
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+-  /usr/pkg/bin
++  "@glibc@"
+   )
+ 
+ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+-  /lib /usr/lib /usr/lib32 /usr/lib64
++  "@glibc@/lib"
+   )
+ 
+ LIST(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ LIST(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ 
+ # Enable use of lib64 search path variants by default.