CPack add easy possibility to warn about CPACK_SET_DESTDIR
CPackNSIS will only warn but sooner or later it should error out
This commit is contained in:
parent
75c0304a9e
commit
6ba055bacd
|
@ -66,6 +66,27 @@ int cmCPackGenerator::PrepareNames()
|
||||||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||||
"Create temp directory." << std::endl);
|
"Create temp directory." << std::endl);
|
||||||
|
|
||||||
|
// checks CPACK_SET_DESTDIR support
|
||||||
|
if (IsOn("CPACK_SET_DESTDIR"))
|
||||||
|
{
|
||||||
|
if (SETDESTDIR_UNSUPPORTED==SupportsSetDestdir())
|
||||||
|
{
|
||||||
|
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||||
|
"CPACK_SET_DESTDIR is set to ON but the '"
|
||||||
|
<< Name << "' generator does NOT support it."
|
||||||
|
<< std::endl);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (SETDESTDIR_SHOULD_NOT_BE_USED==SupportsSetDestdir())
|
||||||
|
{
|
||||||
|
cmCPackLogger(cmCPackLog::LOG_WARNING,
|
||||||
|
"CPACK_SET_DESTDIR is set to ON but it is "
|
||||||
|
<< "usually a bad idea to do that with '"
|
||||||
|
<< Name << "' generator. Use at your own risk."
|
||||||
|
<< std::endl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string tempDirectory = this->GetOption("CPACK_PACKAGE_DIRECTORY");
|
std::string tempDirectory = this->GetOption("CPACK_PACKAGE_DIRECTORY");
|
||||||
tempDirectory += "/_CPack_Packages/";
|
tempDirectory += "/_CPack_Packages/";
|
||||||
const char* toplevelTag = this->GetOption("CPACK_TOPLEVEL_TAG");
|
const char* toplevelTag = this->GetOption("CPACK_TOPLEVEL_TAG");
|
||||||
|
@ -953,6 +974,8 @@ int cmCPackGenerator::DoPackage()
|
||||||
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
|
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
|
||||||
"Create package using " << this->Name.c_str() << std::endl);
|
"Create package using " << this->Name.c_str() << std::endl);
|
||||||
|
|
||||||
|
// Prepare CPack internal name and check
|
||||||
|
// values for many CPACK_xxx vars
|
||||||
if ( !this->PrepareNames() )
|
if ( !this->PrepareNames() )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1430,6 +1453,13 @@ std::string cmCPackGenerator::GetComponentPackageFileName(
|
||||||
return initialPackageFileName + suffix;
|
return initialPackageFileName + suffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
enum cmCPackGenerator::CPackSetDestdirSupport
|
||||||
|
cmCPackGenerator::SupportsSetDestdir() const
|
||||||
|
{
|
||||||
|
return cmCPackGenerator::SETDESTDIR_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool cmCPackGenerator::SupportsComponentInstallation() const
|
bool cmCPackGenerator::SupportsComponentInstallation() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -189,6 +189,29 @@ protected:
|
||||||
virtual int InstallProjectViaInstallCMakeProjects(
|
virtual int InstallProjectViaInstallCMakeProjects(
|
||||||
bool setDestDir, const char* tempInstallDirectory);
|
bool setDestDir, const char* tempInstallDirectory);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The various level of support of
|
||||||
|
* CPACK_SET_DESTDIR used by the generator.
|
||||||
|
*/
|
||||||
|
enum CPackSetDestdirSupport {
|
||||||
|
/* the generator works with or without it */
|
||||||
|
SETDESTDIR_SUPPORTED,
|
||||||
|
/* the generator works best if automatically handled */
|
||||||
|
SETDESTDIR_INTERNALLY_SUPPORTED,
|
||||||
|
/* no official support, use at your own risk */
|
||||||
|
SETDESTDIR_SHOULD_NOT_BE_USED,
|
||||||
|
/* officially NOT supported */
|
||||||
|
SETDESTDIR_UNSUPPORTED
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does the CPack generator support CPACK_SET_DESTDIR?
|
||||||
|
* The default legacy value is 'true' generator
|
||||||
|
* have to override it in order change this.
|
||||||
|
* @return CPackSetDestdirSupport
|
||||||
|
*/
|
||||||
|
virtual enum CPackSetDestdirSupport SupportsSetDestdir() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Does the CPack generator support component installation?.
|
* Does the CPack generator support component installation?.
|
||||||
* Some Generators requires the user to set
|
* Some Generators requires the user to set
|
||||||
|
|
|
@ -64,6 +64,7 @@ int cmCPackNSISGenerator::PackageFiles()
|
||||||
<< std::endl);
|
<< std::endl);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string nsisFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
|
std::string nsisFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
|
||||||
std::string tmpFile = nsisFileName;
|
std::string tmpFile = nsisFileName;
|
||||||
tmpFile += "/NSISOutput.log";
|
tmpFile += "/NSISOutput.log";
|
||||||
|
@ -630,6 +631,13 @@ bool cmCPackNSISGenerator::GetListOfSubdirectories(const char* topdir,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
enum cmCPackGenerator::CPackSetDestdirSupport
|
||||||
|
cmCPackNSISGenerator::SupportsSetDestdir() const
|
||||||
|
{
|
||||||
|
return cmCPackGenerator::SETDESTDIR_SHOULD_NOT_BE_USED;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool cmCPackNSISGenerator::SupportsComponentInstallation() const
|
bool cmCPackNSISGenerator::SupportsComponentInstallation() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,6 +44,7 @@ protected:
|
||||||
bool GetListOfSubdirectories(const char* dir,
|
bool GetListOfSubdirectories(const char* dir,
|
||||||
std::vector<std::string>& dirs);
|
std::vector<std::string>& dirs);
|
||||||
|
|
||||||
|
enum cmCPackGenerator::CPackSetDestdirSupport SupportsSetDestdir() const;
|
||||||
virtual bool SupportsComponentInstallation() const;
|
virtual bool SupportsComponentInstallation() const;
|
||||||
|
|
||||||
/// Produce a string that contains the NSIS code to describe a
|
/// Produce a string that contains the NSIS code to describe a
|
||||||
|
|
Loading…
Reference in New Issue