summaryrefslogtreecommitdiffstats
path: root/Source/QtDialog/CMakeSetup.cxx
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2010-11-01 15:40:25 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2010-11-01 15:40:25 (GMT)
commit0476715b87e27c8234bc6c3ac9020cb09ac8be1b (patch)
tree395e33d1ba564cdc99bd40c77273abf66bfcc83f /Source/QtDialog/CMakeSetup.cxx
parent57c04db124f71f608522a8631feb4b9fcb67e81f (diff)
downloadCMake-0476715b87e27c8234bc6c3ac9020cb09ac8be1b.zip
CMake-0476715b87e27c8234bc6c3ac9020cb09ac8be1b.tar.gz
CMake-0476715b87e27c8234bc6c3ac9020cb09ac8be1b.tar.bz2
Fix regression to allow specifying a CMakeCache.txt file on the command line.
Diffstat (limited to 'Source/QtDialog/CMakeSetup.cxx')
-rw-r--r--Source/QtDialog/CMakeSetup.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx
index 28f4697..7ba7f51 100644
--- a/Source/QtDialog/CMakeSetup.cxx
+++ b/Source/QtDialog/CMakeSetup.cxx
@@ -165,13 +165,25 @@ int main(int argc, char** argv)
if(args.count() == 2)
{
cmsys_stl::string filePath = cmSystemTools::CollapseFullPath(args[1].toAscii().data());
+
+ // check if argument is a directory containing CMakeCache.txt
cmsys_stl::string buildFilePath =
cmSystemTools::CollapseFullPath("CMakeCache.txt", filePath.c_str());
+
+ // check if argument is a CMakeCache.txt file
+ if(cmSystemTools::GetFilenameName(filePath) == "CMakeCache.txt" &&
+ cmSystemTools::FileExists(filePath.c_str()))
+ {
+ buildFilePath = filePath;
+ }
+
+ // check if argument is a directory containing CMakeLists.txt
cmsys_stl::string srcFilePath =
cmSystemTools::CollapseFullPath("CMakeLists.txt", filePath.c_str());
+
if(cmSystemTools::FileExists(buildFilePath.c_str()))
{
- dialog.setBinaryDirectory(filePath.c_str());
+ dialog.setBinaryDirectory(cmSystemTools::GetFilenamePath(buildFilePath).c_str());
}
else if(cmSystemTools::FileExists(srcFilePath.c_str()))
{