[cmake-commits] alex committed cmFileCommand.cxx 1.78 1.78.2.1 cmFileCommand.h 1.21 1.21.2.1

cmake-commits at cmake.org cmake-commits at cmake.org
Mon May 14 13:46:18 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv26851/Source

Modified Files:
      Tag: CMake-CrossCompileBasic
	cmFileCommand.cxx cmFileCommand.h 
Log Message:

STYLE: split the HandleInstallCommand() into shorter functions (which are
still quite long)

Alex


Index: cmFileCommand.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFileCommand.h,v
retrieving revision 1.21
retrieving revision 1.21.2.1
diff -u -d -r1.21 -r1.21.2.1
--- cmFileCommand.h	25 Apr 2007 21:22:07 -0000	1.21
+++ cmFileCommand.h	14 May 2007 17:46:15 -0000	1.21.2.1
@@ -19,6 +19,8 @@
 
 #include "cmCommand.h"
 
+class cmFileInstaller;
+
 /** \class cmFileCommand
  * \brief Command for manipulation of files
  *
@@ -146,11 +148,45 @@
   bool HandleStringsCommand(std::vector<std::string> const& args);
   bool HandleGlobCommand(std::vector<std::string> const& args, bool recurse);
   bool HandleMakeDirectoryCommand(std::vector<std::string> const& args);
-  bool HandleInstallCommand(std::vector<std::string> const& args);
+  
   bool HandleRelativePathCommand(std::vector<std::string> const& args);
   bool HandleCMakePathCommand(std::vector<std::string> const& args,
                               bool nativePath);
   void ComputeVersionedName(std::string& name, const char* version);
+  
+  // FILE(INSTALL ...) related functions
+  bool HandleInstallCommand(std::vector<std::string> const& args);
+  bool ParseInstallArgs(std::vector<std::string> const& args,
+                        cmFileInstaller& installer,
+                        std::set<cmStdString>& components,
+                        std::set<cmStdString>& configurations,
+                        std::map<cmStdString, const char*>& properties,
+                        int& itype,
+                        std::string& destination,
+                        std::string& rename,
+                        std::vector<std::string>& files,
+                        bool& optional
+                       );
+  bool DoInstall(cmFileInstaller& installer,
+                 const std::set<cmStdString>& components,
+                 const std::set<cmStdString>& configurations,
+                 std::map<cmStdString, const char*>& properties,
+                 const int itype,
+                 const std::string& rename,
+                 const std::string& destination,
+                 const std::vector<std::string>& files,
+                 const bool optional
+                );
+  void GetTargetTypeFromString(const std::string& stype, int& itype) const;
+  bool HandleInstallDestination(cmFileInstaller& installer, 
+                                std::string& destination);
+  void HandleInstallPermissions(cmFileInstaller& installer, 
+                                mode_t& permissions_file,
+                                mode_t& permissions_dir,
+                                int itype,
+                                bool use_given_permissions_file,
+                                bool use_given_permissions_dir,
+                                bool use_source_permissions) const;
 };
 
 

Index: cmFileCommand.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFileCommand.cxx,v
retrieving revision 1.78
retrieving revision 1.78.2.1
diff -u -d -r1.78 -r1.78.2.1
--- cmFileCommand.cxx	26 Apr 2007 13:56:04 -0000	1.78
+++ cmFileCommand.cxx	14 May 2007 17:46:15 -0000	1.78.2.1
@@ -1018,8 +1018,194 @@
 }
 
 //----------------------------------------------------------------------------
-bool cmFileCommand::HandleInstallCommand(
-  std::vector<std::string> const& args)
+void cmFileCommand::HandleInstallPermissions(cmFileInstaller& installer, 
+                              mode_t& permissions_file,
+                              mode_t& permissions_dir,
+                              int itype,
+                              bool use_given_permissions_file,
+                              bool use_given_permissions_dir,
[...992 lines suppressed...]
-    permissions_dir |= mode_group_execute;
-    permissions_dir |= mode_world_read;
-    permissions_dir |= mode_world_execute;
-    }
-
-  // Set the installer permissions.
-  installer.FilePermissions = permissions_file;
-  installer.DirPermissions = permissions_dir;
-
   // Check whether files should be copied always or only if they have
   // changed.
   bool copy_always =
     cmSystemTools::IsOn(cmSystemTools::GetEnv("CMAKE_INSTALL_ALWAYS"));
 
   // Handle each file listed.
-  for ( i = 0; i < files.size(); i ++ )
+  for (std::vector<std::string>::size_type i = 0; i < files.size(); i ++ )
     {
     // Split the input file into its directory and name components.
     std::vector<std::string> fromPathComponents;



More information about the Cmake-commits mailing list