mirror of
https://github.com/Kitware/CMake.git
synced 2025-06-03 20:44:19 +08:00
VS: Factor out helper to compute ApplicationTypeRevision
This is the first two components of `CMAKE_SYSTEM_VERSION`.
This commit is contained in:
parent
e025495b85
commit
639e14def6
@ -1112,6 +1112,15 @@ std::string cmGlobalVisualStudio10Generator::GetInstalledNsightTegraVersion()
|
||||
return version;
|
||||
}
|
||||
|
||||
std::string cmGlobalVisualStudio10Generator::GetApplicationTypeRevision() const
|
||||
{
|
||||
// Return the first two '.'-separated components of the Windows version.
|
||||
std::string::size_type end1 = this->SystemVersion.find('.');
|
||||
std::string::size_type end2 =
|
||||
end1 == std::string::npos ? end1 : this->SystemVersion.find('.', end1 + 1);
|
||||
return this->SystemVersion.substr(0, end2);
|
||||
}
|
||||
|
||||
static std::string cmLoadFlagTableString(Json::Value entry, const char* field)
|
||||
{
|
||||
if (entry.isMember(field)) {
|
||||
|
@ -110,6 +110,9 @@ public:
|
||||
|
||||
static std::string GetInstalledNsightTegraVersion();
|
||||
|
||||
/** Return the first two components of CMAKE_SYSTEM_VERSION. */
|
||||
std::string GetApplicationTypeRevision() const;
|
||||
|
||||
cmIDEFlagTable const* GetClFlagTable() const;
|
||||
cmIDEFlagTable const* GetCSharpFlagTable() const;
|
||||
cmIDEFlagTable const* GetRcFlagTable() const;
|
||||
|
@ -4099,29 +4099,29 @@ void cmVisualStudio10TargetGenerator::WriteApplicationTypeSettings(Elem& e1)
|
||||
bool isAppContainer = false;
|
||||
bool const isWindowsPhone = this->GlobalGenerator->TargetsWindowsPhone();
|
||||
bool const isWindowsStore = this->GlobalGenerator->TargetsWindowsStore();
|
||||
std::string const& v = this->GlobalGenerator->GetSystemVersion();
|
||||
std::string const& rev = this->GlobalGenerator->GetApplicationTypeRevision();
|
||||
if (isWindowsPhone || isWindowsStore) {
|
||||
e1.Element("ApplicationType",
|
||||
(isWindowsPhone ? "Windows Phone" : "Windows Store"));
|
||||
e1.Element("DefaultLanguage", "en-US");
|
||||
if (cmHasLiteralPrefix(v, "10.0")) {
|
||||
e1.Element("ApplicationTypeRevision", "10.0");
|
||||
if (rev == "10.0") {
|
||||
e1.Element("ApplicationTypeRevision", rev);
|
||||
// Visual Studio 14.0 is necessary for building 10.0 apps
|
||||
e1.Element("MinimumVisualStudioVersion", "14.0");
|
||||
|
||||
if (this->GeneratorTarget->GetType() < cmStateEnums::UTILITY) {
|
||||
isAppContainer = true;
|
||||
}
|
||||
} else if (v == "8.1") {
|
||||
e1.Element("ApplicationTypeRevision", v);
|
||||
} else if (rev == "8.1") {
|
||||
e1.Element("ApplicationTypeRevision", rev);
|
||||
// Visual Studio 12.0 is necessary for building 8.1 apps
|
||||
e1.Element("MinimumVisualStudioVersion", "12.0");
|
||||
|
||||
if (this->GeneratorTarget->GetType() < cmStateEnums::UTILITY) {
|
||||
isAppContainer = true;
|
||||
}
|
||||
} else if (v == "8.0") {
|
||||
e1.Element("ApplicationTypeRevision", v);
|
||||
} else if (rev == "8.0") {
|
||||
e1.Element("ApplicationTypeRevision", rev);
|
||||
// Visual Studio 11.0 is necessary for building 8.0 apps
|
||||
e1.Element("MinimumVisualStudioVersion", "11.0");
|
||||
|
||||
@ -4153,7 +4153,7 @@ void cmVisualStudio10TargetGenerator::WriteApplicationTypeSettings(Elem& e1)
|
||||
"VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION");
|
||||
if (targetPlatformMinVersion) {
|
||||
e1.Element("WindowsTargetPlatformMinVersion", targetPlatformMinVersion);
|
||||
} else if (isWindowsStore && cmHasLiteralPrefix(v, "10.0")) {
|
||||
} else if (isWindowsStore && rev == "10.0") {
|
||||
// If the min version is not set, then use the TargetPlatformVersion
|
||||
if (!targetPlatformVersion.empty()) {
|
||||
e1.Element("WindowsTargetPlatformMinVersion", targetPlatformVersion);
|
||||
|
Loading…
x
Reference in New Issue
Block a user