소스 검색

Fail early if no current working directory exists

Remove the old "nocwd" behavior that attempts to provide the "--help"
output when no working directory is available.  The long help output
scrolls the real error message out of typical terminal sizes.  Also
execute as little code as possible when no working directory exists.
Brad King 13 년 전
부모
커밋
a943b5c4f3
3개의 변경된 파일7개의 추가작업 그리고 11개의 파일을 삭제
  1. 2 3
      Source/CPack/cpack.cxx
  2. 3 5
      Source/cmakemain.cxx
  3. 2 3
      Source/ctest.cxx

+ 2 - 3
Source/CPack/cpack.cxx

@@ -180,7 +180,6 @@ int main (int argc, char *argv[])
 {
   cmSystemTools::FindExecutableDirectory(argv[0]);
   cmCPackLog log;
-  int nocwd = 0;
 
   log.SetErrorPrefix("CPack Error: ");
   log.SetWarningPrefix("CPack Warning: ");
@@ -193,7 +192,7 @@ int main (int argc, char *argv[])
     {
     cmCPack_Log(&log, cmCPackLog::LOG_ERROR,
       "Current working directory cannot be established." << std::endl);
-    nocwd = 1;
+    return 1;
     }
 
   std::string generator;
@@ -297,7 +296,7 @@ int main (int argc, char *argv[])
    * should launch cpack using "cpackConfigFile" if it exists
    * in the current directory.
    */
-  if((doc.CheckOptions(argc, argv,"-G") || nocwd) && !(argc==1))
+  if((doc.CheckOptions(argc, argv,"-G")) && !(argc==1))
     {
       help = true;
     }

+ 3 - 5
Source/cmakemain.cxx

@@ -344,19 +344,17 @@ int main(int ac, char** av)
 
 int do_cmake(int ac, char** av)
 {
-  int nocwd = 0;
-
   if ( cmSystemTools::GetCurrentWorkingDirectory().size() == 0 )
     {
     std::cerr << "Current working directory cannot be established."
               << std::endl;
-    nocwd = 1;
+    return 1;
     }
 
 #ifdef CMAKE_BUILD_WITH_CMAKE
   cmDocumentation doc;
   doc.addCMakeStandardDocSections();
-  if(doc.CheckOptions(ac, av, "-E") || nocwd)
+  if(doc.CheckOptions(ac, av, "-E"))
     {
     // Construct and print requested documentation.
     cmake hcm;
@@ -424,7 +422,7 @@ int do_cmake(int ac, char** av)
     return result;
     }
 #else
-  if ( nocwd || ac == 1 )
+  if ( ac == 1 )
     {
     std::cout <<
       "Bootstrap CMake should not be used outside CMake build process."

+ 2 - 3
Source/ctest.cxx

@@ -273,14 +273,13 @@ int main (int argc, char *argv[])
     return cmCTestLaunch::Main(argc, argv);
     }
 
-  int nocwd = 0;
   cmCTest inst;
 
   if ( cmSystemTools::GetCurrentWorkingDirectory().size() == 0 )
     {
     cmCTestLog(&inst, ERROR_MESSAGE,
       "Current working directory cannot be established." << std::endl);
-    nocwd = 1;
+    return 1;
     }
 
   // If there is a testing input file, check for documentation options
@@ -298,7 +297,7 @@ int main (int argc, char *argv[])
       }
     cmDocumentation doc;
     doc.addCTestStandardDocSections();
-    if(doc.CheckOptions(argc, argv) || nocwd)
+    if(doc.CheckOptions(argc, argv))
       {
       // Construct and print requested documentation.
       std::vector<cmDocumentationEntry> commands;