summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-01-20 15:10:28 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-01-20 15:10:28 +0000
commit28780d27d1074f0adac168679fcbd40aa767a03b (patch)
treee4076452a0d0bc3985f3202c73d15bbb2731ba85 /pkgs/development/tools/build-managers
parent14aab94aefcfe5b6fd5f36137572b99d8f792d6c (diff)
downloadnixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar.gz
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar.bz2
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar.lz
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar.xz
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.tar.zst
nixlib-28780d27d1074f0adac168679fcbd40aa767a03b.zip
* cmake: don't use replace-literal.
svn path=/nixpkgs/branches/stdenv-updates/; revision=31736
Diffstat (limited to 'pkgs/development/tools/build-managers')
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix9
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh32
2 files changed, 18 insertions, 23 deletions
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 53e27836d73a..7e5236541979 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -39,15 +39,12 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
-  postUnpack =
-    ''
-      dontUseCmakeConfigure=1
-      source $setupHook
-      fixCmakeFiles $sourceRoot
-    '';
+  dontUseCmakeConfigure = true;
 
   preConfigure = optionalString (stdenv ? glibc)
     ''
+      source $setupHook
+      fixCmakeFiles .
       substituteInPlace Modules/Platform/UnixPaths.cmake --subst-var-by glibc ${stdenv.glibc}
     '';
 
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index c523e849fc15..8fdf64417dd3 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -1,36 +1,34 @@
-addCMakeParams()
-{
+addCMakeParams() {
     addToSearchPath CMAKE_PREFIX_PATH $1
 }
 
-fixCmakeFiles()
-{
-    local replaceArgs
-    echo "fixing cmake files"
-    replaceArgs="-e -f -L -T /usr /var/empty -a /opt /var/empty"
-    find $1 -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt -print0 |
-        xargs -0 replace-literal ${replaceArgs}
+fixCmakeFiles() {
+    echo "fixing cmake files..."
+    find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print |
+        while read fn; do
+            sed -e 's|/usr|/var/empty|g' -e 's|/opt|/var/empty|g' < "$fn" > "$fn.tmp"
+            mv "$fn.tmp" "$fn"
+        done
 }
 
-cmakeConfigurePhase()
-{
+cmakeConfigurePhase() {
     eval "$preConfigure"
 
-    if test -z "$dontFixCmake"; then
+    if [ -z "$dontFixCmake" ]; then
         fixCmakeFiles .
     fi
 
-    if test -z "$dontUseCmakeBuildDir"; then
+    if [ -z "$dontUseCmakeBuildDir" ]; then
         mkdir -p build
         cd build
         cmakeDir=..
     fi
 
-    if test -z "$dontAddPrefix"; then
+    if [ -z "$dontAddPrefix" ]; then
         cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags"
     fi
 
-    if test -n "$crossConfig"; then
+    if [ -n "$crossConfig" ]; then
         # By now it supports linux builds only. We should set the proper
         # CMAKE_SYSTEM_NAME otherwise.
         # http://www.cmake.org/Wiki/CMake_Cross_Compiling
@@ -47,11 +45,11 @@ cmakeConfigurePhase()
     eval "$postConfigure"
 }
 
-if test -z "$dontUseCmakeConfigure"; then
+if [ -z "$dontUseCmakeConfigure" ]; then
     configurePhase=cmakeConfigurePhase
 fi
 
-if test -n "$crossConfig"; then
+if [ -n "$crossConfig" ]; then
     crossEnvHooks+=(addCMakeParams)
 else
     envHooks+=(addCMakeParams)