Merge branch 'vs-check-phone-store-tools' into release
This commit is contained in:
commit
bea609ac2a
|
@ -261,6 +261,24 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsStore(cmMakefile* mf)
|
|||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio10Generator::SelectWindowsPhoneToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
toolset = "";
|
||||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio10Generator::SelectWindowsStoreToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
toolset = "";
|
||||
return false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmGlobalVisualStudio10Generator::SelectWindowsCEToolset() const
|
||||
{
|
||||
|
|
|
@ -118,9 +118,10 @@ protected:
|
|||
virtual bool InitializeWindowsCE(cmMakefile* mf);
|
||||
virtual bool InitializeWindowsPhone(cmMakefile* mf);
|
||||
virtual bool InitializeWindowsStore(cmMakefile* mf);
|
||||
|
||||
virtual std::string SelectWindowsCEToolset() const;
|
||||
virtual std::string SelectWindowsPhoneToolset() const { return ""; }
|
||||
virtual std::string SelectWindowsStoreToolset() const { return ""; }
|
||||
virtual bool SelectWindowsPhoneToolset(std::string& toolset) const;
|
||||
virtual bool SelectWindowsStoreToolset(std::string& toolset) const;
|
||||
|
||||
virtual const char* GetIDEVersion() { return "10.0"; }
|
||||
|
||||
|
|
|
@ -131,12 +131,20 @@ cmGlobalVisualStudio11Generator::MatchesGeneratorName(
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmGlobalVisualStudio11Generator::InitializeWindowsPhone(cmMakefile* mf)
|
||||
{
|
||||
this->DefaultPlatformToolset = this->SelectWindowsPhoneToolset();
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
if(!this->SelectWindowsPhoneToolset(this->DefaultPlatformToolset))
|
||||
{
|
||||
cmOStringStream e;
|
||||
e << this->GetName() << " supports Windows Phone '8.0', but not '"
|
||||
<< this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
{
|
||||
e << this->GetName() << " supports Windows Phone '8.0', but not '"
|
||||
<< this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
}
|
||||
else
|
||||
{
|
||||
e << "A Windows Phone component with CMake requires both the Windows "
|
||||
<< "Desktop SDK as well as the Windows Phone '" << this->SystemVersion
|
||||
<< "' SDK. Please make sure that you have both installed";
|
||||
}
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
|
@ -146,12 +154,20 @@ bool cmGlobalVisualStudio11Generator::InitializeWindowsPhone(cmMakefile* mf)
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmGlobalVisualStudio11Generator::InitializeWindowsStore(cmMakefile* mf)
|
||||
{
|
||||
this->DefaultPlatformToolset = this->SelectWindowsStoreToolset();
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
if(!this->SelectWindowsStoreToolset(this->DefaultPlatformToolset))
|
||||
{
|
||||
cmOStringStream e;
|
||||
e << this->GetName() << " supports Windows Store '8.0', but not '"
|
||||
<< this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
{
|
||||
e << this->GetName() << " supports Windows Store '8.0', but not '"
|
||||
<< this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
}
|
||||
else
|
||||
{
|
||||
e << "A Windows Store component with CMake requires both the Windows "
|
||||
<< "Desktop SDK as well as the Windows Store '" << this->SystemVersion
|
||||
<< "' SDK. Please make sure that you have both installed";
|
||||
}
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
|
@ -159,23 +175,47 @@ bool cmGlobalVisualStudio11Generator::InitializeWindowsStore(cmMakefile* mf)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset() const
|
||||
bool
|
||||
cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
if(this->SystemVersion == "8.0")
|
||||
{
|
||||
return "v110_wp80";
|
||||
if (this->IsWindowsPhoneToolsetInstalled() &&
|
||||
this->IsWindowsDesktopToolsetInstalled())
|
||||
{
|
||||
toolset = "v110_wp80";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return this->cmGlobalVisualStudio10Generator::SelectWindowsPhoneToolset();
|
||||
return
|
||||
this->cmGlobalVisualStudio10Generator::SelectWindowsPhoneToolset(toolset);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset() const
|
||||
bool
|
||||
cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
if(this->SystemVersion == "8.0")
|
||||
{
|
||||
return "v110";
|
||||
if(this->IsWindowsStoreToolsetInstalled() &&
|
||||
this->IsWindowsDesktopToolsetInstalled())
|
||||
{
|
||||
toolset = "v110";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return this->cmGlobalVisualStudio10Generator::SelectWindowsStoreToolset();
|
||||
return
|
||||
this->cmGlobalVisualStudio10Generator::SelectWindowsStoreToolset(toolset);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -256,3 +296,54 @@ cmGlobalVisualStudio11Generator::NeedsDeploy(cmTarget::TargetType type) const
|
|||
}
|
||||
return cmGlobalVisualStudio10Generator::NeedsDeploy(type);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio11Generator::IsWindowsDesktopToolsetInstalled() const
|
||||
{
|
||||
const char desktop80Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"VisualStudio\\11.0\\VC\\Libraries\\Extended";
|
||||
const char VS2012DesktopExpressKey[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"WDExpress\\11.0;InstallDir";
|
||||
|
||||
std::vector<std::string> subkeys;
|
||||
std::string path;
|
||||
return cmSystemTools::ReadRegistryValue(VS2012DesktopExpressKey,
|
||||
path,
|
||||
cmSystemTools::KeyWOW64_32) ||
|
||||
cmSystemTools::GetRegistrySubKeys(desktop80Key,
|
||||
subkeys,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio11Generator::IsWindowsPhoneToolsetInstalled() const
|
||||
{
|
||||
const char wp80Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"Microsoft SDKs\\WindowsPhone\\v8.0\\"
|
||||
"Install Path;Install Path";
|
||||
|
||||
std::string path;
|
||||
cmSystemTools::ReadRegistryValue(wp80Key,
|
||||
path,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
return !path.empty();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio11Generator::IsWindowsStoreToolsetInstalled() const
|
||||
{
|
||||
const char win80Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"VisualStudio\\11.0\\VC\\Libraries\\Core\\Arm";
|
||||
|
||||
std::vector<std::string> subkeys;
|
||||
return cmSystemTools::GetRegistrySubKeys(win80Key,
|
||||
subkeys,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
}
|
||||
|
|
|
@ -36,8 +36,15 @@ public:
|
|||
protected:
|
||||
virtual bool InitializeWindowsPhone(cmMakefile* mf);
|
||||
virtual bool InitializeWindowsStore(cmMakefile* mf);
|
||||
virtual std::string SelectWindowsPhoneToolset() const;
|
||||
virtual std::string SelectWindowsStoreToolset() const;
|
||||
virtual bool SelectWindowsPhoneToolset(std::string& toolset) const;
|
||||
virtual bool SelectWindowsStoreToolset(std::string& toolset) const;
|
||||
|
||||
// These aren't virtual because we need to check if the selected version
|
||||
// of the toolset is installed
|
||||
bool IsWindowsDesktopToolsetInstalled() const;
|
||||
bool IsWindowsPhoneToolsetInstalled() const;
|
||||
bool IsWindowsStoreToolsetInstalled() const;
|
||||
|
||||
virtual const char* GetIDEVersion() { return "11.0"; }
|
||||
bool UseFolderProperty();
|
||||
static std::set<std::string> GetInstalledWindowsCESDKs();
|
||||
|
|
|
@ -111,12 +111,20 @@ cmGlobalVisualStudio12Generator::MatchesGeneratorName(
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmGlobalVisualStudio12Generator::InitializeWindowsPhone(cmMakefile* mf)
|
||||
{
|
||||
this->DefaultPlatformToolset = this->SelectWindowsPhoneToolset();
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
if(!this->SelectWindowsPhoneToolset(this->DefaultPlatformToolset))
|
||||
{
|
||||
cmOStringStream e;
|
||||
e << this->GetName() << " supports Windows Phone '8.0' and '8.1', "
|
||||
"but not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
{
|
||||
e << this->GetName() << " supports Windows Phone '8.0' and '8.1', but "
|
||||
"not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
}
|
||||
else
|
||||
{
|
||||
e << "A Windows Phone component with CMake requires both the Windows "
|
||||
<< "Desktop SDK as well as the Windows Phone '" << this->SystemVersion
|
||||
<< "' SDK. Please make sure that you have both installed";
|
||||
}
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
|
@ -126,12 +134,20 @@ bool cmGlobalVisualStudio12Generator::InitializeWindowsPhone(cmMakefile* mf)
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmGlobalVisualStudio12Generator::InitializeWindowsStore(cmMakefile* mf)
|
||||
{
|
||||
this->DefaultPlatformToolset = this->SelectWindowsStoreToolset();
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
if(!this->SelectWindowsStoreToolset(this->DefaultPlatformToolset))
|
||||
{
|
||||
cmOStringStream e;
|
||||
e << this->GetName() << " supports Windows Store '8.0' and '8.1', "
|
||||
"but not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
if(this->DefaultPlatformToolset.empty())
|
||||
{
|
||||
e << this->GetName() << " supports Windows Store '8.0' and '8.1', but "
|
||||
"not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
|
||||
}
|
||||
else
|
||||
{
|
||||
e << "A Windows Store component with CMake requires both the Windows "
|
||||
<< "Desktop SDK as well as the Windows Store '" << this->SystemVersion
|
||||
<< "' SDK. Please make sure that you have both installed";
|
||||
}
|
||||
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
|
@ -139,23 +155,47 @@ bool cmGlobalVisualStudio12Generator::InitializeWindowsStore(cmMakefile* mf)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmGlobalVisualStudio12Generator::SelectWindowsPhoneToolset() const
|
||||
bool
|
||||
cmGlobalVisualStudio12Generator::SelectWindowsPhoneToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
if(this->SystemVersion == "8.1")
|
||||
{
|
||||
return "v120_wp81";
|
||||
if (this->IsWindowsPhoneToolsetInstalled() &&
|
||||
this->IsWindowsDesktopToolsetInstalled())
|
||||
{
|
||||
toolset = "v120_wp81";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return this->cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset();
|
||||
return
|
||||
this->cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset(toolset);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmGlobalVisualStudio12Generator::SelectWindowsStoreToolset() const
|
||||
bool
|
||||
cmGlobalVisualStudio12Generator::SelectWindowsStoreToolset(
|
||||
std::string& toolset) const
|
||||
{
|
||||
if(this->SystemVersion == "8.1")
|
||||
{
|
||||
return "v120";
|
||||
if(this->IsWindowsStoreToolsetInstalled() &&
|
||||
this->IsWindowsDesktopToolsetInstalled())
|
||||
{
|
||||
toolset = "v120";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return this->cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset();
|
||||
return
|
||||
this->cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset(toolset);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -180,3 +220,46 @@ cmLocalGenerator *cmGlobalVisualStudio12Generator::CreateLocalGenerator()
|
|||
lg->SetGlobalGenerator(this);
|
||||
return lg;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio12Generator::IsWindowsDesktopToolsetInstalled() const
|
||||
{
|
||||
const char desktop81Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"VisualStudio\\12.0\\VC\\LibraryDesktop";
|
||||
|
||||
std::vector<std::string> subkeys;
|
||||
return cmSystemTools::GetRegistrySubKeys(desktop81Key,
|
||||
subkeys,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio12Generator::IsWindowsPhoneToolsetInstalled() const
|
||||
{
|
||||
const char wp81Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"Microsoft SDKs\\WindowsPhone\\v8.1\\Install Path;Install Path";
|
||||
|
||||
std::string path;
|
||||
cmSystemTools::ReadRegistryValue(wp81Key,
|
||||
path,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
return !path.empty();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
cmGlobalVisualStudio12Generator::IsWindowsStoreToolsetInstalled() const
|
||||
{
|
||||
const char win81Key[] =
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
|
||||
"VisualStudio\\12.0\\VC\\Libraries\\Core\\Arm";
|
||||
|
||||
std::vector<std::string> subkeys;
|
||||
return cmSystemTools::GetRegistrySubKeys(win81Key,
|
||||
subkeys,
|
||||
cmSystemTools::KeyWOW64_32);
|
||||
}
|
||||
|
|
|
@ -41,8 +41,14 @@ public:
|
|||
protected:
|
||||
virtual bool InitializeWindowsPhone(cmMakefile* mf);
|
||||
virtual bool InitializeWindowsStore(cmMakefile* mf);
|
||||
virtual std::string SelectWindowsPhoneToolset() const;
|
||||
virtual std::string SelectWindowsStoreToolset() const;
|
||||
virtual bool SelectWindowsPhoneToolset(std::string& toolset) const;
|
||||
virtual bool SelectWindowsStoreToolset(std::string& toolset) const;
|
||||
|
||||
// These aren't virtual because we need to check if the selected version
|
||||
// of the toolset is installed
|
||||
bool IsWindowsDesktopToolsetInstalled() const;
|
||||
bool IsWindowsPhoneToolsetInstalled() const;
|
||||
bool IsWindowsStoreToolsetInstalled() const;
|
||||
virtual const char* GetIDEVersion() { return "12.0"; }
|
||||
private:
|
||||
class Factory;
|
||||
|
|
|
@ -2036,7 +2036,8 @@ WriteMasmOptions(std::string const& configName,
|
|||
void
|
||||
cmVisualStudio10TargetGenerator::WriteLibOptions(std::string const& config)
|
||||
{
|
||||
if(this->Target->GetType() != cmTarget::STATIC_LIBRARY)
|
||||
if(this->Target->GetType() != cmTarget::STATIC_LIBRARY &&
|
||||
this->Target->GetType() != cmTarget::OBJECT_LIBRARY)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue