mirror of
https://github.com/reactos/CMake.git
synced 2024-12-16 16:16:33 +00:00
CPack: Fix PackageMaker internal versioning for OS X 10.10
Avoid using a floating point value to represent the version, since "10.10" would be treated as "10.1".
This commit is contained in:
parent
c118816d44
commit
70abf6e780
@ -24,11 +24,20 @@
|
|||||||
#include <cmsys/Glob.hxx>
|
#include <cmsys/Glob.hxx>
|
||||||
#include <cmsys/FStream.hxx>
|
#include <cmsys/FStream.hxx>
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
static inline
|
||||||
|
unsigned int getVersion(unsigned int major, unsigned int minor)
|
||||||
|
{
|
||||||
|
assert(major < 256 && minor < 256);
|
||||||
|
return ((major & 0xFF) << 16 | minor);
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
cmCPackPackageMakerGenerator::cmCPackPackageMakerGenerator()
|
cmCPackPackageMakerGenerator::cmCPackPackageMakerGenerator()
|
||||||
{
|
{
|
||||||
this->PackageMakerVersion = 0.0;
|
this->PackageMakerVersion = 0.0;
|
||||||
this->PackageCompatibilityVersion = 10.4;
|
this->PackageCompatibilityVersion = getVersion(10, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
@ -39,7 +48,7 @@ cmCPackPackageMakerGenerator::~cmCPackPackageMakerGenerator()
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool cmCPackPackageMakerGenerator::SupportsComponentInstallation() const
|
bool cmCPackPackageMakerGenerator::SupportsComponentInstallation() const
|
||||||
{
|
{
|
||||||
return this->PackageCompatibilityVersion >= 10.4;
|
return this->PackageCompatibilityVersion >= getVersion(10, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
@ -241,7 +250,7 @@ int cmCPackPackageMakerGenerator::PackageFiles()
|
|||||||
std::string packageFile;
|
std::string packageFile;
|
||||||
if (compIt->second.IsDownloaded)
|
if (compIt->second.IsDownloaded)
|
||||||
{
|
{
|
||||||
if (this->PackageCompatibilityVersion >= 10.5 &&
|
if (this->PackageCompatibilityVersion >= getVersion(10, 5) &&
|
||||||
this->PackageMakerVersion >= 3.0)
|
this->PackageMakerVersion >= 3.0)
|
||||||
{
|
{
|
||||||
// Build this package within the upload directory.
|
// Build this package within the upload directory.
|
||||||
@ -260,7 +269,7 @@ int cmCPackPackageMakerGenerator::PackageFiles()
|
|||||||
}
|
}
|
||||||
else if (!warnedAboutDownloadCompatibility)
|
else if (!warnedAboutDownloadCompatibility)
|
||||||
{
|
{
|
||||||
if (this->PackageCompatibilityVersion < 10.5)
|
if (this->PackageCompatibilityVersion < getVersion(10, 5))
|
||||||
{
|
{
|
||||||
cmCPackLogger(
|
cmCPackLogger(
|
||||||
cmCPackLog::LOG_WARNING,
|
cmCPackLog::LOG_WARNING,
|
||||||
@ -520,22 +529,29 @@ int cmCPackPackageMakerGenerator::InitializeInternal()
|
|||||||
const char *packageCompat = this->GetOption("CPACK_OSX_PACKAGE_VERSION");
|
const char *packageCompat = this->GetOption("CPACK_OSX_PACKAGE_VERSION");
|
||||||
if (packageCompat && *packageCompat)
|
if (packageCompat && *packageCompat)
|
||||||
{
|
{
|
||||||
this->PackageCompatibilityVersion = atof(packageCompat);
|
unsigned int majorVersion = 10;
|
||||||
|
unsigned int minorVersion = 5;
|
||||||
|
int res = sscanf(packageCompat, "%u.%u", &majorVersion, &minorVersion);
|
||||||
|
if (res == 2)
|
||||||
|
{
|
||||||
|
this->PackageCompatibilityVersion =
|
||||||
|
getVersion(majorVersion, minorVersion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (this->GetOption("CPACK_DOWNLOAD_SITE"))
|
else if (this->GetOption("CPACK_DOWNLOAD_SITE"))
|
||||||
{
|
{
|
||||||
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.5");
|
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.5");
|
||||||
this->PackageCompatibilityVersion = 10.5;
|
this->PackageCompatibilityVersion = getVersion(10, 5);
|
||||||
}
|
}
|
||||||
else if (this->GetOption("CPACK_COMPONENTS_ALL"))
|
else if (this->GetOption("CPACK_COMPONENTS_ALL"))
|
||||||
{
|
{
|
||||||
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.4");
|
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.4");
|
||||||
this->PackageCompatibilityVersion = 10.4;
|
this->PackageCompatibilityVersion = getVersion(10, 4);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.3");
|
this->SetOption("CPACK_OSX_PACKAGE_VERSION", "10.3");
|
||||||
this->PackageCompatibilityVersion = 10.3;
|
this->PackageCompatibilityVersion = getVersion(10, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> no_paths;
|
std::vector<std::string> no_paths;
|
||||||
@ -712,7 +728,7 @@ GenerateComponentPackage(const char *packageFile,
|
|||||||
// The command that will be used to run PackageMaker
|
// The command that will be used to run PackageMaker
|
||||||
cmOStringStream pkgCmd;
|
cmOStringStream pkgCmd;
|
||||||
|
|
||||||
if (this->PackageCompatibilityVersion < 10.5 ||
|
if (this->PackageCompatibilityVersion < getVersion(10, 5) ||
|
||||||
this->PackageMakerVersion < 3.0)
|
this->PackageMakerVersion < 3.0)
|
||||||
{
|
{
|
||||||
// Create Description.plist and Info.plist files for normal Mac OS
|
// Create Description.plist and Info.plist files for normal Mac OS
|
||||||
|
@ -117,7 +117,7 @@ protected:
|
|||||||
cmCPackComponent PostFlightComponent;
|
cmCPackComponent PostFlightComponent;
|
||||||
|
|
||||||
double PackageMakerVersion;
|
double PackageMakerVersion;
|
||||||
double PackageCompatibilityVersion;
|
unsigned int PackageCompatibilityVersion;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user