[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