From a8813a3db06c665fa5712979d5de20708e1ee629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 18 Apr 2015 22:30:26 +0200 Subject: [PATCH] cmake: fix with multiple outputs, split help, refactor The removed configureFlags seemed to have no effect. --- .../tools/build-managers/cmake/default.nix | 41 ++++++++++--------- .../cmake/search-path-3.2.patch | 8 ++-- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 2804bad2595..0aa64ba4cbf 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -25,8 +25,6 @@ stdenv.mkDerivation rec { sha256 = "0b2hy4p0aa9zshlxyw9nmlh5q8q1lmnwmb594rvh6sx2n7v1r7vm"; }; - enableParallelBuilding = true; - patches = # Don't search in non-Nix locations such as /usr, but do search in # Nixpkgs' Glibc. @@ -38,41 +36,46 @@ stdenv.mkDerivation rec { sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv"; }); + outputs = [ "out" "doc" ]; + setOutputFlags = false; + + setupHook = ./setup-hook.sh; + buildInputs = - [ pkgconfig bzip2 curl expat libarchive xz zlib ] + [ setupHook pkgconfig bzip2 curl expat libarchive xz zlib ] ++ optional (jsoncpp != null) jsoncpp ++ optional useNcurses ncurses ++ optional useQt4 qt4; propagatedBuildInputs = optional wantPS ps; - CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs; - + preConfigure = with stdenv; optionalString (stdenv ? glibc) + '' + fixCmakeFiles . + substituteInPlace Modules/Platform/UnixPaths.cmake \ + --subst-var-by glibc_bin ${glibc.bin or glibc} \ + --subst-var-by glibc_dev ${glibc.dev or glibc} \ + --subst-var-by glibc_lib ${glibc.out or glibc} + ''; configureFlags = [ - "--docdir=/share/doc/${name}" - "--mandir=/share/man" "--system-libs" ] ++ optional (jsoncpp == null) "--no-system-jsoncpp" ++ optional 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} - ''; + enableParallelBuilding = true; - meta = { + preInstall = ''mkdir "$doc" ''; + + postInstall = ''_moveToOutput "share/cmake-*/Help" "$doc" ''; + + meta = with stdenv.lib; { 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 ]; + platforms = if useQt4 then qt4.meta.platforms else platforms.all; + maintainers = with maintainers; [ urkud mornfall ttuegel ]; }; } diff --git a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch b/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch index b0447e70607..0a2d4ad43ab 100644 --- a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch +++ b/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch @@ -53,21 +53,21 @@ index 20ee1d1..39834e6 100644 - -list(APPEND CMAKE_SYSTEM_PROGRAM_PATH - /usr/pkg/bin -+ "@glibc@" ++ "@glibc_bin@" ) list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES - /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ "@glibc@/lib" ++ "@glibc_lib@/lib" ) list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES - /usr/include -+ "@glibc@/include" ++ "@glibc_dev@/include" ) list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES - /usr/include -+ "@glibc@/include" ++ "@glibc_dev@/include" ) # Enable use of lib64 search path variants by default.