summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2010-09-21 14:04:04 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2010-09-21 14:04:04 (GMT)
commit775697d5f5e8812dc642d1e21e7bc5405df943cd (patch)
tree6abc98a94cb5e6260420a6a21dbf05321b4d4f80
parent4b682e13fb0e4810d6cb8b76602c715a6fd74247 (diff)
downloadCMake-775697d5f5e8812dc642d1e21e7bc5405df943cd.zip
CMake-775697d5f5e8812dc642d1e21e7bc5405df943cd.tar.gz
CMake-775697d5f5e8812dc642d1e21e7bc5405df943cd.tar.bz2
Add a delay after untar on windows to make external project work on windows 7
OK, on windows 7 after we untar some files, sometimes we can not rename the directory after the untar is done. This breaks the external project untar and rename code. So, by default we will wait 1/10th of a second after the untar. If CMAKE_UNTAR_DELAY is set in the env, its value will be used instead of 100.
-rw-r--r--Source/cmake.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index e6c7bb0..1e3b018 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1574,6 +1574,24 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
cmSystemTools::Error("Problem extracting tar: ", outFile.c_str());
return 1;
}
+#ifdef WIN32
+ // OK, on windows 7 after we untar some files,
+ // sometimes we can not rename the directory after
+ // the untar is done. This breaks the external project
+ // untar and rename code. So, by default we will wait
+ // 1/10th of a second after the untar. If CMAKE_UNTAR_DELAY
+ // is set in the env, its value will be used instead of 100.
+ int delay = 100;
+ const char* delayVar = cmSystemTools::GetEnv("CMAKE_UNTAR_DELAY");
+ if(delayVar)
+ {
+ delay = atoi(delayVar);
+ }
+ if(delay)
+ {
+ cmSystemTools::Delay(delay);
+ }
+#endif
}
return 0;
}