[Cmake] Patch for at command-line parm

Andy Cedilnik andy.cedilnik at kitware.com
Fri, 07 May 2004 14:57:50 -0400


Hi Gordon,

Could you please open a bug on the bug tracker and attach this patch.
This way it will not be forgotten.

			Andy

On Fri, 2004-05-07 at 14:32, Schumacher, Gordon wrote:
> Sorry this took me so long; it's been pretty crazy here.
> 
> Anyway, this should do it... let me know if you run into problems with this.
> 
> Next stop: trying to build a version of CMake that will run under DJGPP!
> (Yes, I'm insane.  But I've not been left much choice on this one... we
> probably *have* to be able to build in a real DOS environment!  Yuck.)
> 
> Patch follows:
> ---------------
> 
> diff -r -w -u -x CVS -x '*.bak' CMake.orig/Source/cmake.cxx
> CMake/Source/cmake.cxx
> --- CMake.orig/Source/cmake.cxx	2004-04-29 08:26:22.000000000 -0600
> +++ CMake/Source/cmake.cxx	2004-04-30 17:20:58.000000000 -0600
>  at  at  -265,7 +265,7  at  at 
>  }
>  
>  // Parse the args
> -void cmake::SetArgs(const std::vector<std::string>& args)
> +void cmake::SetArgs(std::vector<std::string>& args)
>  {
>    m_Local = false;
>    bool directoriesSet = false;
>  at  at  -341,6 +341,32  at  at 
>          this->SetGlobalGenerator(gen);
>          }
>        }
> +	 else if(arg.find(" at ",0) == 0)
> +	   {
> +        std::string filename = arg.substr(1);
> +        std::cout << "reading from " << filename << '\n';
> +
> +        filename = cmSystemTools::CollapseFullPath(filename.c_str());
> +        cmSystemTools::ConvertToUnixSlashes(filename);
> +		if(cmSystemTools::FileExists(filename.c_str()))
> +        {
> +        std::ifstream fin(filename.c_str());
> +        std::string   next_filearg;
> +        while (fin)
> +          {
> +          fin >> next_filearg;
> +          if (!next_filearg.empty())
> +            {
> +            args.push_back(next_filearg);
> +            }
> +          }
> +        }
> +      else
> +        {
> +        cmSystemTools::Error("Could not open command line file",
> +                             filename.c_str());
> +        }
> +      }
>      // no option assume it is the path to the source
>      else
>        {
>  at  at  -1139,7 +1165,7  at  at 
>  }
>  
>  // handle a command line invocation
> -int cmake::Run(const std::vector<std::string>& args, bool noconfigure)
> +int cmake::Run(std::vector<std::string>& args, bool noconfigure)
>  {
>    // Process the arguments
>    this->SetArgs(args);
> diff -r -w -u -x CVS -x '*.bak' CMake.orig/Source/cmake.h
> CMake/Source/cmake.h
> --- CMake.orig/Source/cmake.h	2004-04-26 09:23:06.000000000 -0600
> +++ CMake/Source/cmake.h	2004-04-30 17:13:18.000000000 -0600
>  at  at  -122,9 +122,9  at  at 
>    /**
>     * Handle a command line invocation of cmake.
>     */
> -  int Run(const std::vector<std::string>&args)
> +  int Run(std::vector<std::string>&args)
>      { return this->Run(args, false); }
> -  int Run(const std::vector<std::string>&args, bool noconfigure);
> +  int Run(std::vector<std::string>&args, bool noconfigure);
>  
>    /**
>     * Generate the SourceFilesList from the SourceLists. This should only be
>  at  at  -212,7 +212,7  at  at 
>    void Usage(const char *program);
>  
>    ///! Parse command line arguments
> -  void SetArgs(const std::vector<std::string>&);
> +  void SetArgs(std::vector<std::string>&);
>  
>    ///! Is this cmake running as a result of a TRY_COMPILE command
>    bool GetIsInTryCompile() { return m_InTryCompile; }
> diff -r -w -u -x CVS -x '*.bak' CMake.orig/Source/cmakewizard.cxx
> CMake/Source/cmakewizard.cxx
> --- CMake.orig/Source/cmakewizard.cxx	2003-08-26 13:06:52.000000000 -0600
> +++ CMake/Source/cmakewizard.cxx	2004-04-29 19:36:48.000000000 -0600
>  at  at  -89,7 +89,7  at  at 
>  
> 
> 
> -int cmakewizard::RunWizard(std::vector<std::string> const& args)
> +int cmakewizard::RunWizard(std::vector<std::string>& args)
>  {
>    m_ShowAdvanced = this->AskAdvanced();
>    cmSystemTools::DisableRunCommandOutput();
> diff -r -w -u -x CVS -x '*.bak' CMake.orig/Source/cmakewizard.h
> CMake/Source/cmakewizard.h
> --- CMake.orig/Source/cmakewizard.h	2003-08-26 13:06:52.000000000 -0600
> +++ CMake/Source/cmakewizard.h	2004-04-29 19:37:04.000000000 -0600
>  at  at  -38,7 +38,7  at  at 
>     *  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);
> +  int RunWizard(std::vector<std::string>& args);
>    
>  private:
>    bool m_ShowAdvanced;
> _______________________________________________
> Cmake mailing list
> Cmake at www.cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
-- 
				Andy Cedilnik
				Kitware Inc.