diff options
author | Clinton Stimpson <clinton@elemtech.com> | 2010-11-01 15:40:25 (GMT) |
---|---|---|
committer | Clinton Stimpson <clinton@elemtech.com> | 2010-11-01 15:40:25 (GMT) |
commit | 0476715b87e27c8234bc6c3ac9020cb09ac8be1b (patch) | |
tree | 395e33d1ba564cdc99bd40c77273abf66bfcc83f /Source/QtDialog/CMakeSetup.cxx | |
parent | 57c04db124f71f608522a8631feb4b9fcb67e81f (diff) | |
download | CMake-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.cxx | 14 |
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())) { |