Просмотр исходного кода

Merge topic 'remove-cmake-i-wizard'

a8226e9 cmake: Drop support for "-i" wizard mode
Brad King 12 лет назад
Родитель
Сommit
6384f1683a

+ 0 - 6
Help/manual/cmake.1.rst

@@ -36,12 +36,6 @@ native tool on their platform.
   are available.  On Windows: delete_regv, write_regv.  On
   UNIX: create_symlink.
 
-* ``-i``: Run in wizard mode.
-
-  Wizard mode runs cmake interactively without a GUI.  The user is
-  prompted to answer questions about the project configuration.  The
-  answers are used to set cmake cache values.
-
 * ``-L[A][H]``: List non-advanced cached variables.
 
   List cache variables will run CMake and list all the variables from

+ 0 - 2
Source/CMakeLists.txt

@@ -281,8 +281,6 @@ set(SRCS
   cmXMLSafe.h
   cmake.cxx
   cmake.h
-  cmakewizard.cxx
-  cmakewizard.h
 
   cm_sha2.h
   cm_sha2.c

+ 0 - 1
Source/cmCacheManager.h

@@ -179,7 +179,6 @@ private:
   // the commands should never use the cmCacheManager directly
   friend class cmMakefile; // allow access to add cache values
   friend class cmake; // allow access to add cache values
-  friend class cmakewizard; // allow access to add cache values
   friend class cmMarkAsAdvancedCommand; // allow access to add cache values
 };
 

+ 5 - 9
Source/cmakemain.cxx

@@ -20,7 +20,6 @@
 #include "cmcmd.h"
 #include "cmCacheManager.h"
 #include "cmListFileCache.h"
-#include "cmakewizard.h"
 #include "cmSourceFile.h"
 #include "cmGlobalGenerator.h"
 #include "cmLocalGenerator.h"
@@ -61,7 +60,6 @@ static const char * cmDocumentationOptions[][2] =
 {
   CMAKE_STANDARD_OPTIONS_TABLE,
   {"-E", "CMake command mode."},
-  {"-i", "Run in wizard mode."},
   {"-L[A][H]", "List non-advanced cached variables."},
   {"--build <dir>", "Build a CMake-generated project binary tree."},
   {"-N", "View mode only."},
@@ -236,7 +234,6 @@ int do_cmake(int ac, char** av)
     }
 #endif
 
-  bool wiz = false;
   bool sysinfo = false;
   bool list_cached = false;
   bool list_all_cached = false;
@@ -248,7 +245,11 @@ int do_cmake(int ac, char** av)
     {
     if(strcmp(av[i], "-i") == 0)
       {
-      wiz = true;
+      std::cerr <<
+        "The \"cmake -i\" wizard mode is no longer supported.\n"
+        "Use the -D option to set cache values on the command line.\n"
+        "Use cmake-gui or ccmake for an interactive dialog.\n";
+      return 1;
       }
     else if(strcmp(av[i], "--system-information") == 0)
       {
@@ -301,11 +302,6 @@ int do_cmake(int ac, char** av)
       args.push_back(av[i]);
       }
     }
-  if (wiz)
-    {
-    cmakewizard wizard;
-    return wizard.RunWizard(args);
-    }
   if (sysinfo)
     {
     cmake cm;

+ 0 - 155
Source/cmakewizard.cxx

@@ -1,155 +0,0 @@
-/*============================================================================
-  CMake - Cross Platform Makefile Generator
-  Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-
-  Distributed under the OSI-approved BSD License (the "License");
-  see accompanying file Copyright.txt for details.
-
-  This software is distributed WITHOUT ANY WARRANTY; without even the
-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the License for more information.
-============================================================================*/
-#include "cmakewizard.h"
-#include "cmake.h"
-#include "cmCacheManager.h"
-
-cmakewizard::cmakewizard()
-{
-  this->ShowAdvanced = false;
-}
-
-
-void cmakewizard::AskUser(const char* key,
-  cmCacheManager::CacheIterator& iter)
-{
-  printf("Variable Name: %s\n", key);
-  const char* helpstring = iter.GetProperty("HELPSTRING");
-  printf("Description: %s\n", (helpstring?helpstring:"(none)"));
-  printf("Current Value: %s\n", iter.GetValue());
-  printf("New Value (Enter to keep current value): ");
-  char buffer[4096];
-  if(!fgets(buffer, static_cast<int>(sizeof(buffer) - 1), stdin))
-    {
-    buffer[0] = 0;
-    }
-
-  if(strlen(buffer) > 0)
-    {
-    std::string sbuffer = buffer;
-    std::string::size_type pos = sbuffer.find_last_not_of(" \n\r\t");
-    std::string value = "";
-    if ( pos != std::string::npos )
-      {
-      value = sbuffer.substr(0, pos+1);
-      }
-
-    if ( value.size() > 0 )
-      {
-      if(iter.GetType() == cmCacheManager::PATH ||
-         iter.GetType() == cmCacheManager::FILEPATH)
-        {
-        cmSystemTools::ConvertToUnixSlashes(value);
-        }
-      if(iter.GetType() == cmCacheManager::BOOL)
-        {
-        if(!cmSystemTools::IsOn(value.c_str()))
-          {
-          value = "OFF";
-          }
-        }
-      iter.SetValue(value.c_str());
-      }
-    }
-  printf("\n");
-}
-
-bool cmakewizard::AskAdvanced()
-{
-  printf("Would you like to see advanced options? [No]:");
-  char buffer[4096];
-  if(!fgets(buffer, static_cast<int>(sizeof(buffer) - 1), stdin))
-    {
-    buffer[0] = 0;
-    }
-  else if(buffer[0] == 'y' || buffer[0] == 'Y')
-    {
-    return true;
-    }
-  return false;
-}
-
-
-void cmakewizard::ShowMessage(const char* m)
-{
-  printf("%s\n", m);
-}
-
-
-
-int cmakewizard::RunWizard(std::vector<std::string> const& args)
-{
-  this->ShowAdvanced = this->AskAdvanced();
-  cmSystemTools::DisableRunCommandOutput();
-  cmake make;
-  make.SetArgs(args);
-  make.SetCMakeCommand(args[0].c_str());
-  make.LoadCache();
-  make.SetCacheArgs(args);
-  std::map<cmStdString, cmStdString> askedCache;
-  bool asked = false;
-  // continue asking questions until no new questions are asked
-  do
-    {
-    asked = false;
-    // run cmake
-    this->ShowMessage(
-      "Please wait while cmake processes CMakeLists.txt files....\n");
-
-    make.Configure();
-    this->ShowMessage("\n");
-    // load the cache from disk
-    cmCacheManager *cachem = make.GetCacheManager();
-    cachem->LoadCache(make.GetHomeOutputDirectory());
-    cmCacheManager::CacheIterator i = cachem->NewIterator();
-    // iterate over all entries in the cache
-    for(;!i.IsAtEnd(); i.Next())
-      {
-      std::string key = i.GetName();
-      if( i.GetType() == cmCacheManager::INTERNAL ||
-          i.GetType() == cmCacheManager::STATIC ||
-          i.GetType() == cmCacheManager::UNINITIALIZED )
-        {
-        continue;
-        }
-      if(askedCache.count(key))
-        {
-        std::string& e = askedCache.find(key)->second;
-        if(e != i.GetValue())
-          {
-          if(this->ShowAdvanced || !i.GetPropertyAsBool("ADVANCED"))
-            {
-            this->AskUser(key.c_str(), i);
-            asked = true;
-            }
-          }
-        }
-      else
-        {
-        if(this->ShowAdvanced || !i.GetPropertyAsBool("ADVANCED"))
-          {
-          this->AskUser(key.c_str(), i);
-          asked = true;
-          }
-        }
-      askedCache[key] = i.GetValue();
-      }
-    cachem->SaveCache(make.GetHomeOutputDirectory());
-    }
-  while(asked);
-  if(make.Generate() == 0)
-    {
-    this->ShowMessage("CMake complete, run make to build project.\n");
-    return 0;
-    }
-  return 1;
-}

+ 0 - 42
Source/cmakewizard.h

@@ -1,42 +0,0 @@
-/*============================================================================
-  CMake - Cross Platform Makefile Generator
-  Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-
-  Distributed under the OSI-approved BSD License (the "License");
-  see accompanying file Copyright.txt for details.
-
-  This software is distributed WITHOUT ANY WARRANTY; without even the
-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the License for more information.
-============================================================================*/
-
-
-#include "cmMakefile.h"
-
-class cmakewizard
-{
-public:
-  cmakewizard();
-  virtual ~cmakewizard() {}
-  /**
-   * Prompt the user to see if they want to see advanced entries.
-   */
-  virtual bool AskAdvanced();
-
-  /**
-   * Prompt the User for a new value for key, the answer is put in entry.
-   */
-  virtual void AskUser(const char* key, cmCacheManager::CacheIterator& iter);
-  ///! Show a message to wait for cmake to run.
-  virtual void ShowMessage(const char*);
-
-  /**
-   *  Run cmake in wizard mode.  This will coninue to ask the user questions
-   *  until there are no more entries in the cache.
-   */
-  int RunWizard(std::vector<std::string>const& args);
-
-private:
-  bool ShowAdvanced;
-};
-

+ 4 - 5
Tests/CMakeLists.txt

@@ -2526,11 +2526,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
       )
   endif()
 
-  add_test(CMakeWizardTest ${CMAKE_CMAKE_COMMAND}
-    -D build_dir:STRING=${CMAKE_CURRENT_BINARY_DIR}/CMakeWizardTest
-    -D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3
-    -D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND}
-    -P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake)
+  add_test(NAME CMakeWizardTest COMMAND cmake -i)
+  set_property(TEST CMakeWizardTest PROPERTY PASS_REGULAR_EXPRESSION
+    "The \"cmake -i\" wizard mode is no longer supported.")
+
   # If the cache variable CMAKE_CONTRACT_PROJECTS is set
   # then the dashboard will run a contract with CMake test of that
   # name.  For example CMAKE_CONTRACT_PROJECTS = vtk542 would run

+ 0 - 52
Tests/CMakeWizardTest.cmake

@@ -1,52 +0,0 @@
-message("CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
-
-message(STATUS "build_dir='${build_dir}'")
-
-message(STATUS "source_dir='${source_dir}'")
-
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E
-  remove_directory ${build_dir}
-  TIMEOUT 5)
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E
-  make_directory ${build_dir}
-  TIMEOUT 5)
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E
-  copy_directory ${source_dir} ${build_dir}/src
-  TIMEOUT 5)
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E
-  make_directory ${build_dir}/build
-  TIMEOUT 5)
-
-# This is enough to answer 32 questions with "the default answer is ok"...
-#
-file(WRITE ${build_dir}/input.txt
-  "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
-
-
-message(STATUS "running wizard mode (cmake -i)...")
-
-execute_process(COMMAND ${CMAKE_COMMAND} -i ../src
-  INPUT_FILE ${build_dir}/input.txt
-  WORKING_DIRECTORY ${build_dir}/build
-  TIMEOUT 5
-  )
-
-
-message(STATUS "building...")
-
-execute_process(COMMAND ${CMAKE_COMMAND} --build .
-  WORKING_DIRECTORY ${build_dir}/build
-  TIMEOUT 5
-  )
-
-
-message(STATUS "testing...")
-
-execute_process(COMMAND ${CMAKE_CTEST_COMMAND}
-  WORKING_DIRECTORY ${build_dir}/build
-  TIMEOUT 5
-  )

+ 0 - 1
bootstrap

@@ -224,7 +224,6 @@ CMAKE_CXX_SOURCES="\
   cmStandardIncludes \
   cmake  \
   cmakemain \
-  cmakewizard  \
   cmcmd  \
   cmCommandArgumentLexer \
   cmCommandArgumentParser \