|
|
@@ -549,51 +549,54 @@ bool cmFileCommand::HandleInstallCommand(
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if ( cmSystemTools::FileExists(ctarget.c_str()) )
|
|
|
+ if ( !cmSystemTools::SameFile(ctarget.c_str(), destfile.c_str()) )
|
|
|
{
|
|
|
- cmSystemTools::RemoveFile(destfile.c_str());
|
|
|
- if ( !cmSystemTools::CopyFileAlways(ctarget.c_str(),
|
|
|
- destination.c_str()) )
|
|
|
+ if ( cmSystemTools::FileExists(ctarget.c_str()) )
|
|
|
{
|
|
|
- std::string errstring = "cannot copy file: " + ctarget +
|
|
|
- " to directory : " + destination + ".";
|
|
|
- this->SetError(errstring.c_str());
|
|
|
- return false;
|
|
|
- }
|
|
|
- switch( itype )
|
|
|
- {
|
|
|
- case cmTarget::MODULE_LIBRARY:
|
|
|
- case cmTarget::SHARED_LIBRARY:
|
|
|
- case cmTarget::EXECUTABLE:
|
|
|
- case cmTarget::INSTALL_PROGRAMS:
|
|
|
+ cmSystemTools::RemoveFile(destfile.c_str());
|
|
|
+ if ( !cmSystemTools::CopyFileAlways(ctarget.c_str(),
|
|
|
+ destination.c_str()) )
|
|
|
+ {
|
|
|
+ std::string errstring = "cannot copy file: " + ctarget +
|
|
|
+ " to directory : " + destination + ".";
|
|
|
+ this->SetError(errstring.c_str());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ switch( itype )
|
|
|
+ {
|
|
|
+ case cmTarget::MODULE_LIBRARY:
|
|
|
+ case cmTarget::SHARED_LIBRARY:
|
|
|
+ case cmTarget::EXECUTABLE:
|
|
|
+ case cmTarget::INSTALL_PROGRAMS:
|
|
|
|
|
|
- if ( !cmSystemTools::SetPermissions(destfile.c_str(),
|
|
|
+ if ( !cmSystemTools::SetPermissions(destfile.c_str(),
|
|
|
#if defined( _MSC_VER ) || defined( __MINGW32__ )
|
|
|
- S_IREAD | S_IWRITE | S_IEXEC
|
|
|
+ S_IREAD | S_IWRITE | S_IEXEC
|
|
|
#elif defined( __BORLANDC__ )
|
|
|
- S_IRUSR | S_IWUSR | S_IXUSR
|
|
|
+ S_IRUSR | S_IWUSR | S_IXUSR
|
|
|
#else
|
|
|
- S_IRUSR | S_IWUSR | S_IXUSR |
|
|
|
- S_IRGRP | S_IXGRP |
|
|
|
- S_IROTH | S_IXOTH
|
|
|
+ S_IRUSR | S_IWUSR | S_IXUSR |
|
|
|
+ S_IRGRP | S_IXGRP |
|
|
|
+ S_IROTH | S_IXOTH
|
|
|
#endif
|
|
|
- ) )
|
|
|
- {
|
|
|
- cmOStringStream err;
|
|
|
- err << "Problem setting permissions on file: " << destfile.c_str();
|
|
|
- perror(err.str().c_str());
|
|
|
+ ) )
|
|
|
+ {
|
|
|
+ cmOStringStream err;
|
|
|
+ err << "Problem setting permissions on file: " << destfile.c_str();
|
|
|
+ perror(err.str().c_str());
|
|
|
+ }
|
|
|
}
|
|
|
+ smanifest_files += ";" + destfile;
|
|
|
}
|
|
|
- smanifest_files += ";" + destfile;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if ( !optional )
|
|
|
+ else
|
|
|
{
|
|
|
- std::string errstring = "cannot find file: " +
|
|
|
- ctarget + " to install.";
|
|
|
- this->SetError(errstring.c_str());
|
|
|
- return false;
|
|
|
+ if ( !optional )
|
|
|
+ {
|
|
|
+ std::string errstring = "cannot find file: " +
|
|
|
+ ctarget + " to install.";
|
|
|
+ this->SetError(errstring.c_str());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|