diff options
Diffstat (limited to 'pkgs/development/tools/build-managers')
3 files changed, 74 insertions, 36 deletions
diff --git a/pkgs/development/tools/build-managers/cmake/2.6.3.nix b/pkgs/development/tools/build-managers/cmake/2.6.3.nix new file mode 100644 index 0000000000000..bb9c3b1485f95 --- /dev/null +++ b/pkgs/development/tools/build-managers/cmake/2.6.3.nix @@ -0,0 +1,31 @@ +{fetchurl, stdenv, replace, ncurses}: + +stdenv.mkDerivation rec { + name = "cmake-2.6.3-RC-15"; + + # We look for cmake modules in .../share/cmake-${majorVersion}/Modules. + majorVersion = "2.6"; + + setupHook = ./setup-hook.sh; + + meta = { + homepage = http://www.cmake.org/; + description = "Cross-Platform Makefile Generator"; + }; + + src = fetchurl { + url = "http://www.cmake.org/files/v2.6/${name}.tar.gz"; + sha256 = "476b6daca63c39bc46955f99f2566735d51159c43ccc716fa689ba2a2fa7e432"; + }; + + postUnpack = '' + dontUseCmakeConfigure=1 + source $setupHook + fixCmakeFiles $sourceRoot + echo 'SET (CMAKE_SYSTEM_PREFIX_PATH "'${ncurses}'" CACHE FILEPATH "Root for libs for cmake" FORCE)' > $sourceRoot/cmakeInit.txt + ''; + + configureFlags= [ " --init=cmakeInit.txt " ]; + + postInstall = "fixCmakeFiles $out/share"; +} diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 171a44d373329..f46ba5ce9aa58 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -2,20 +2,30 @@ stdenv.mkDerivation rec { name = "cmake-2.6.2"; + + # We look for cmake modules in .../share/cmake-${majorVersion}/Modules. + majorVersion = "2.6"; + setupHook = ./setup-hook.sh; + meta = { + homepage = http://www.cmake.org/; description = "Cross-Platform Makefile Generator"; }; + src = fetchurl { url = "http://www.cmake.org/files/v2.6/${name}.tar.gz"; sha256 = "b3f5a9dfa97fb82cb1b7d78a62d949f93c8d4317af36674f337d27066fa6b7e9"; }; - inherit ncurses; - propagatedBuildInputs = [replace]; - postUnpack = " - source \${setupHook}; fixCmakeFiles \${sourceRoot}; - echo 'SET (CMAKE_SYSTEM_PREFIX_PATH \"'\${ncurses}'\" CACHE FILEPATH \"Root for libs for cmake\" FORCE)' > \${sourceRoot}/cmakeInit.txt - "; + + postUnpack = '' + dontUseCmakeConfigure=1 + source $setupHook + fixCmakeFiles $sourceRoot + echo 'SET (CMAKE_SYSTEM_PREFIX_PATH "'${ncurses}'" CACHE FILEPATH "Root for libs for cmake" FORCE)' > $sourceRoot/cmakeInit.txt + ''; + configureFlags= [ " --init=cmakeInit.txt " ]; - postInstall="fixCmakeFiles \$out/share"; + + postInstall = "fixCmakeFiles $out/share"; } diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index 2ec77d8223e38..c289272d2a783 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -1,49 +1,46 @@ -addCMakeParamsInclude() +addCMakeParams() { addToSearchPath CMAKE_INCLUDE_PATH /include "" $1 -} - -addCMakeParamsLibs() -{ addToSearchPath CMAKE_LIBRARY_PATH /lib "" $1 -} - -addCMakeModulePath() -{ - addToSearchPath CMAKE_MODULE_PATH /share/cmake-2.4/Modules "" $1 + addToSearchPath CMAKE_MODULE_PATH /share/cmake-@majorVersion@/Modules "" $1 } fixCmakeFiles() { - local replaceArgs; - echo "Fixing cmake files" + local replaceArgs + echo "fixing cmake files" replaceArgs="-e -f -L -T /usr /FOO" - replaceArgs="${replaceArgs} -a NO_DEFAULT_PATH \"\" -a NO_SYSTEM_PATH \"\"" + replaceArgs="$replaceArgs -a NO_DEFAULT_PATH \"\" -a NO_SYSTEM_PATH \"\"" find $1 -type f -name "*.cmake" | xargs replace-literal ${replaceArgs} } -cmakePostUnpack() +cmakeConfigurePhase() { - sourceRoot=$sourceRoot/build - mkdir -v $sourceRoot - echo source root reset to $sourceRoot - - if [ -z "$dontFixCmake" ]; then + eval "$preConfigure" + + if test -z "$dontFixCmake"; then fixCmakeFiles . fi - if [ -z "$configureScript" ]; then - configureScript="cmake .." + if test -z "$dontUseCmakeBuildDir"; then + mkdir -p build + cd build + cmakeDir=.. fi - if [ -z "$dontAddPrefix" ]; then - dontAddPrefix=1 - configureFlags="-DCMAKE_INSTALL_PREFIX=$out $configureFlags" + + if test -z "$dontAddPrefix"; then + cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags" fi -} + echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}" + + cmake ${cmakeDir:-.} $cmakeFlags ${cmakeFlagsArray[@]} + + eval "$postConfigure" +} -if [ -z "$noCmakeTewaks" ]; then - postUnpack="cmakePostUnpack${postUnpack:+; }${postUnpack}" -fi; +if test -z "$dontUseCmakeConfigure"; then + configurePhase=cmakeConfigurePhase +fi -envHooks=(${envHooks[@]} addCMakeParamsInclude addCMakeParamsLibs addCMakeModulePath) +envHooks=(${envHooks[@]} addCMakeParams) |