Update cmake
Use system libraries, make curses optional, add optional qt4 gui etc. svn path=/nixpkgs/trunk/; revision=23810
This commit is contained in:
parent
10376e7ba1
commit
48c13f4096
@ -1,31 +1,37 @@
|
|||||||
{fetchurl, stdenv, replace, ncurses}:
|
{fetchurl, stdenv, replace, curl, expat, zlib
|
||||||
|
, useNcurses ? false, ncurses, useQt4 ? false, qt4}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cmake-2.8.1";
|
name = "cmake-${majorVersion}.1";
|
||||||
|
|
||||||
# We look for cmake modules in .../share/cmake-${majorVersion}/Modules.
|
|
||||||
majorVersion = "2.8";
|
majorVersion = "2.8";
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://www.cmake.org/;
|
|
||||||
description = "Cross-Platform Makefile Generator";
|
|
||||||
};
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.cmake.org/files/v${majorVersion}/${name}.tar.gz";
|
url = "http://www.cmake.org/files/v${majorVersion}/${name}.tar.gz";
|
||||||
sha256 = "0hi28blqxvir0dkhln90sgr0m3ri9n2i3hlmwdl4m5vkfsmp9bky";
|
sha256 = "0hi28blqxvir0dkhln90sgr0m3ri9n2i3hlmwdl4m5vkfsmp9bky";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buildInputs = [ curl expat zlib ]
|
||||||
|
++ stdenv.lib.optional useNcurses ncurses
|
||||||
|
++ stdenv.lib.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 = ''
|
postUnpack = ''
|
||||||
dontUseCmakeConfigure=1
|
dontUseCmakeConfigure=1
|
||||||
source $setupHook
|
source $setupHook
|
||||||
fixCmakeFiles $sourceRoot
|
fixCmakeFiles $sourceRoot
|
||||||
echo 'SET (CMAKE_SYSTEM_PREFIX_PATH "'${ncurses}'" CACHE FILEPATH "Root for libs for cmake" FORCE)' > $sourceRoot/cmakeInit.txt
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags= [ " --init=cmakeInit.txt " ];
|
meta = {
|
||||||
|
homepage = http://www.cmake.org/;
|
||||||
postInstall = "fixCmakeFiles $out/share";
|
description = "Cross-Platform Makefile Generator";
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.urkud ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
addCMakeParams()
|
addCMakeParams()
|
||||||
{
|
{
|
||||||
addToSearchPath CMAKE_PREFIX_PATH $1
|
addToSearchPath CMAKE_PREFIX_PATH $1
|
||||||
addToSearchPath CMAKE_MODULE_PATH $1/share/cmake-@majorVersion@/Modules
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fixCmakeFiles()
|
fixCmakeFiles()
|
||||||
{
|
{
|
||||||
local replaceArgs
|
local replaceArgs
|
||||||
echo "fixing cmake files"
|
echo "fixing cmake files"
|
||||||
replaceArgs="-e -f -L -T /usr /FOO"
|
replaceArgs="-e -f -L -T /usr /var/empty -a /opt /var/empty"
|
||||||
find $1 -type f -name "*.cmake" -print0 | xargs -0 replace-literal ${replaceArgs}
|
find $1 -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt -print0 |
|
||||||
|
xargs -0 replace-literal ${replaceArgs}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmakeConfigurePhase()
|
cmakeConfigurePhase()
|
||||||
|
@ -2284,6 +2284,10 @@ let
|
|||||||
|
|
||||||
cmake = callPackage ../development/tools/build-managers/cmake { };
|
cmake = callPackage ../development/tools/build-managers/cmake { };
|
||||||
|
|
||||||
|
cmakeCurses = cmake.override { useNcurses = true; };
|
||||||
|
|
||||||
|
cmakeWithGui = cmakeCurses.override { useQt4 = true; };
|
||||||
|
|
||||||
coccinelle = callPackage ../development/tools/misc/coccinelle { };
|
coccinelle = callPackage ../development/tools/misc/coccinelle { };
|
||||||
|
|
||||||
cppi = callPackage ../development/tools/misc/cppi { };
|
cppi = callPackage ../development/tools/misc/cppi { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user