|  | @@ -437,6 +437,39 @@ static const struct CxxCompilerVersionNode : public CompilerVersionNode
 | 
	
		
			
				|  |  |  } cxxCompilerVersionNode;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +//----------------------------------------------------------------------------
 | 
	
		
			
				|  |  | +struct PlatformIdNode : public cmGeneratorExpressionNode
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  PlatformIdNode() {}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  virtual int NumExpectedParameters() const { return ZeroOrMoreParameters; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  std::string Evaluate(const std::vector<std::string> ¶meters,
 | 
	
		
			
				|  |  | +                       cmGeneratorExpressionContext *context,
 | 
	
		
			
				|  |  | +                       const GeneratorExpressionContent *,
 | 
	
		
			
				|  |  | +                       cmGeneratorExpressionDAGChecker *) const
 | 
	
		
			
				|  |  | +  {
 | 
	
		
			
				|  |  | +    const char *platformId = context->Makefile ?
 | 
	
		
			
				|  |  | +                              context->Makefile->GetSafeDefinition(
 | 
	
		
			
				|  |  | +                        "CMAKE_SYSTEM_NAME") : "";
 | 
	
		
			
				|  |  | +    if (parameters.size() == 0)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      return platformId ? platformId : "";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if (!platformId)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      return parameters.front().empty() ? "1" : "0";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if (cmsysString_strcasecmp(parameters.begin()->c_str(), platformId) == 0)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      return "1";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    return "0";
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +} platformIdNode;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  //----------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  static const struct VersionGreaterNode : public cmGeneratorExpressionNode
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -1355,6 +1388,8 @@ cmGeneratorExpressionNode* GetNode(const std::string &identifier)
 | 
	
		
			
				|  |  |      return &cCompilerVersionNode;
 | 
	
		
			
				|  |  |    else if (identifier == "CXX_COMPILER_VERSION")
 | 
	
		
			
				|  |  |      return &cxxCompilerVersionNode;
 | 
	
		
			
				|  |  | +  else if (identifier == "PLATFORM_ID")
 | 
	
		
			
				|  |  | +    return &platformIdNode;
 | 
	
		
			
				|  |  |    else if (identifier == "CONFIGURATION")
 | 
	
		
			
				|  |  |      return &configurationNode;
 | 
	
		
			
				|  |  |    else if (identifier == "CONFIG")
 |