diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2010-09-21 14:04:04 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2010-09-21 14:04:04 (GMT) |
commit | 775697d5f5e8812dc642d1e21e7bc5405df943cd (patch) | |
tree | 6abc98a94cb5e6260420a6a21dbf05321b4d4f80 | |
parent | 4b682e13fb0e4810d6cb8b76602c715a6fd74247 (diff) | |
download | CMake-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.cxx | 18 |
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; } |