CPack/DragNDrop: Allow single license for multiple languages
When both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE are defined, use the license file for all languages instead of looking for a license file for each language. Also expand the documentation on the SLA variables.
This commit is contained in:
parent
3c6a366876
commit
ae434ee2dd
|
@ -49,11 +49,29 @@
|
||||||
# .. variable:: CPACK_DMG_SLA_DIR
|
# .. variable:: CPACK_DMG_SLA_DIR
|
||||||
#
|
#
|
||||||
# Directory where license and menu files for different languages are stored.
|
# Directory where license and menu files for different languages are stored.
|
||||||
|
# Setting this causes CPack to look for a ``<language>.menu.txt`` and
|
||||||
|
# ``<language>.license.txt`` file for every language defined in
|
||||||
|
# ``CPACK_DMG_SLA_LANGUAGES``. If both this variable and
|
||||||
|
# ``CPACK_RESOURCE_FILE_LICENSE`` are set, CPack will only look for the menu
|
||||||
|
# files and use the same license file for all languages.
|
||||||
#
|
#
|
||||||
# .. variable:: CPACK_DMG_SLA_LANGUAGES
|
# .. variable:: CPACK_DMG_SLA_LANGUAGES
|
||||||
#
|
#
|
||||||
# Languages for which a license agreement is provided when mounting the
|
# Languages for which a license agreement is provided when mounting the
|
||||||
# generated DMG.
|
# generated DMG. A menu file consists of 9 lines of text. The first line is
|
||||||
|
# is the name of the language itself, uppercase, in English (e.g. German).
|
||||||
|
# The other lines are translations of the following strings:
|
||||||
|
#
|
||||||
|
# - Agree
|
||||||
|
# - Disagree
|
||||||
|
# - Print
|
||||||
|
# - Save...
|
||||||
|
# - You agree to the terms of the License Agreement when you click the
|
||||||
|
# "Agree" button.
|
||||||
|
# - Software License Agreement
|
||||||
|
# - This text cannot be saved. The disk may be full or locked, or the file
|
||||||
|
# may be locked.
|
||||||
|
# - Unable to print. Make sure you have selected a printer.
|
||||||
#
|
#
|
||||||
# For every language in this list, CPack will try to find files
|
# For every language in this list, CPack will try to find files
|
||||||
# ``<language>.menu.txt`` and ``<language>.license.txt`` in the directory
|
# ``<language>.menu.txt`` and ``<language>.license.txt`` in the directory
|
||||||
|
|
|
@ -69,6 +69,7 @@ static const char* SLASTREnglish =
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
cmCPackDragNDropGenerator::cmCPackDragNDropGenerator()
|
cmCPackDragNDropGenerator::cmCPackDragNDropGenerator()
|
||||||
|
: singleLicense(false)
|
||||||
{
|
{
|
||||||
// default to one package file for components
|
// default to one package file for components
|
||||||
this->componentPackageMethod = ONE_PACKAGE;
|
this->componentPackageMethod = ONE_PACKAGE;
|
||||||
|
@ -131,10 +132,11 @@ int cmCPackDragNDropGenerator::InitializeInternal()
|
||||||
if(!license_file.empty() &&
|
if(!license_file.empty() &&
|
||||||
(license_file.find("CPack.GenericLicense.txt") == std::string::npos))
|
(license_file.find("CPack.GenericLicense.txt") == std::string::npos))
|
||||||
{
|
{
|
||||||
cmCPackLogger(cmCPackLog::LOG_WARNING,
|
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
|
||||||
"Both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE specified, "
|
"Both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE specified, "
|
||||||
"defaulting to CPACK_DMG_SLA_DIR"
|
"using CPACK_RESOURCE_FILE_LICENSE as a license for all languages."
|
||||||
<< std::endl);
|
<< std::endl);
|
||||||
|
singleLicense = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!this->IsSet("CPACK_DMG_SLA_LANGUAGES"))
|
if(!this->IsSet("CPACK_DMG_SLA_LANGUAGES"))
|
||||||
|
@ -166,7 +168,7 @@ int cmCPackDragNDropGenerator::InitializeInternal()
|
||||||
for(size_t i = 0; i < languages.size(); ++i)
|
for(size_t i = 0; i < languages.size(); ++i)
|
||||||
{
|
{
|
||||||
std::string license = slaDirectory + "/" + languages[i] + ".license.txt";
|
std::string license = slaDirectory + "/" + languages[i] + ".license.txt";
|
||||||
if (!cmSystemTools::FileExists(license))
|
if (!singleLicense && !cmSystemTools::FileExists(license))
|
||||||
{
|
{
|
||||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||||
"Missing license file " << languages[i] << ".license.txt"
|
"Missing license file " << languages[i] << ".license.txt"
|
||||||
|
@ -366,7 +368,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
|
||||||
|
|
||||||
// use sla_dir if both sla_dir and license_file are set
|
// use sla_dir if both sla_dir and license_file are set
|
||||||
if(!cpack_license_file.empty() &&
|
if(!cpack_license_file.empty() &&
|
||||||
!slaDirectory.empty())
|
!slaDirectory.empty() && !singleLicense)
|
||||||
{
|
{
|
||||||
cpack_license_file = "";
|
cpack_license_file = "";
|
||||||
}
|
}
|
||||||
|
@ -698,10 +700,17 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < languages.size(); ++i)
|
for(size_t i = 0; i < languages.size(); ++i)
|
||||||
|
{
|
||||||
|
if(singleLicense)
|
||||||
|
{
|
||||||
|
WriteLicense(ofs, i + 5000, languages[i], cpack_license_file);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
WriteLicense(ofs, i + 5000, languages[i]);
|
WriteLicense(ofs, i + 5000, languages[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ofs.Close();
|
ofs.Close();
|
||||||
|
|
||||||
|
@ -850,7 +859,7 @@ void
|
||||||
cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream,
|
cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream,
|
||||||
int licenseNumber, std::string licenseLanguage, std::string licenseFile)
|
int licenseNumber, std::string licenseLanguage, std::string licenseFile)
|
||||||
{
|
{
|
||||||
if(!licenseFile.empty())
|
if(!licenseFile.empty() && !singleLicense)
|
||||||
{
|
{
|
||||||
licenseNumber = 5002;
|
licenseNumber = 5002;
|
||||||
licenseLanguage = "English";
|
licenseLanguage = "English";
|
||||||
|
@ -887,7 +896,7 @@ cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream,
|
||||||
|
|
||||||
// End of License
|
// End of License
|
||||||
outputStream << "};\n\n";
|
outputStream << "};\n\n";
|
||||||
if(!licenseFile.empty())
|
if(!licenseFile.empty() && !singleLicense)
|
||||||
{
|
{
|
||||||
outputStream << SLASTREnglish;
|
outputStream << SLASTREnglish;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string slaDirectory;
|
std::string slaDirectory;
|
||||||
|
bool singleLicense;
|
||||||
|
|
||||||
void WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber,
|
void WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber,
|
||||||
std::string licenseLanguage, std::string licenseFile = "");
|
std::string licenseLanguage, std::string licenseFile = "");
|
||||||
|
|
Loading…
Reference in New Issue