| 
														
															@@ -2544,8 +2544,8 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   if (gtgt->CanCompileSources()) { 
														 | 
														
														 | 
														
															   if (gtgt->CanCompileSources()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    std::string tmpDir = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      cmStrCat(gtgt->GetSupportDirectory(), '/', this->GetCMakeCFGIntDir()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    std::string const tmpDir = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this->GetTargetTempDir(gtgt, this->GetCMakeCFGIntDir()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     buildSettings->AddAttribute("TARGET_TEMP_DIR", this->CreateString(tmpDir)); 
														 | 
														
														 | 
														
															     buildSettings->AddAttribute("TARGET_TEMP_DIR", this->CreateString(tmpDir)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     std::string outDir; 
														 | 
														
														 | 
														
															     std::string outDir; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4399,7 +4399,7 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 this->CreateString(swiftVersion)); 
														 | 
														
														 | 
														
															                                 this->CreateString(swiftVersion)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  std::string symroot = cmStrCat(root->GetCurrentBinaryDirectory(), "/build"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  std::string const symroot = this->GetSymrootDir(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   buildSettings->AddAttribute("SYMROOT", this->CreateString(symroot)); 
														 | 
														
														 | 
														
															   buildSettings->AddAttribute("SYMROOT", this->CreateString(symroot)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Inside a try_compile project, do not require signing on any platform. 
														 | 
														
														 | 
														
															   // Inside a try_compile project, do not require signing on any platform. 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4498,6 +4498,19 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return true; 
														 | 
														
														 | 
														
															   return true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+std::string cmGlobalXCodeGenerator::GetSymrootDir() const 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  return cmStrCat(this->CMakeInstance->GetHomeOutputDirectory(), "/build"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+std::string cmGlobalXCodeGenerator::GetTargetTempDir( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  cmGeneratorTarget const* gt, std::string const& configName) const 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  // Use a path inside the SYMROOT. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  return cmStrCat(this->GetSymrootDir(), '/', gt->GetName(), ".build/", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                  configName); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void cmGlobalXCodeGenerator::ComputeArchitectures(cmMakefile* mf) 
														 | 
														
														 | 
														
															 void cmGlobalXCodeGenerator::ComputeArchitectures(cmMakefile* mf) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   this->Architectures.clear(); 
														 | 
														
														 | 
														
															   this->Architectures.clear(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4621,8 +4634,8 @@ void cmGlobalXCodeGenerator::CreateXCodeDependHackMakefile( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (auto objLib : objlibs) { 
														 | 
														
														 | 
														
															         for (auto objLib : objlibs) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															           const std::string objLibName = objLib->GetName(); 
														 | 
														
														 | 
														
															           const std::string objLibName = objLib->GetName(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          std::string d = cmStrCat(objLib->GetSupportDirectory(), '/', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                   configName, "/lib", objLibName, ".a"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          std::string d = cmStrCat(this->GetTargetTempDir(gt, configName), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                   "/lib", objLibName, ".a"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															           std::string dependency = this->ConvertToRelativeForMake(d); 
														 | 
														
														 | 
														
															           std::string dependency = this->ConvertToRelativeForMake(d); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           makefileStream << "\\\n\t" << dependency; 
														 | 
														
														 | 
														
															           makefileStream << "\\\n\t" << dependency; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4636,8 +4649,8 @@ void cmGlobalXCodeGenerator::CreateXCodeDependHackMakefile( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // if building for more than one architecture 
														 | 
														
														 | 
														
															         // if building for more than one architecture 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // then remove those executables as well 
														 | 
														
														 | 
														
															         // then remove those executables as well 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (this->Architectures.size() > 1) { 
														 | 
														
														 | 
														
															         if (this->Architectures.size() > 1) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          std::string universal = cmStrCat(gt->GetSupportDirectory(), '/', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                           configName, "/$(OBJDIR)/"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          std::string universal = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            cmStrCat(this->GetTargetTempDir(gt, configName), "/$(OBJDIR)/"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           for (const auto& architecture : this->Architectures) { 
														 | 
														
														 | 
														
															           for (const auto& architecture : this->Architectures) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             std::string universalFile = cmStrCat(universal, architecture, '/', 
														 | 
														
														 | 
														
															             std::string universalFile = cmStrCat(universal, architecture, '/', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                                  gt->GetFullName(configName)); 
														 | 
														
														 | 
														
															                                                  gt->GetFullName(configName)); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -5036,7 +5049,7 @@ void cmGlobalXCodeGenerator::ComputeTargetObjectDirectory( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   auto objectDirArch = GetTargetObjectDirArch(*gt, this->ObjectDirArch); 
														 | 
														
														 | 
														
															   auto objectDirArch = GetTargetObjectDirArch(*gt, this->ObjectDirArch); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   gt->ObjectDirectory = 
														 | 
														
														 | 
														
															   gt->ObjectDirectory = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    cmStrCat(gt->GetSupportDirectory(), '/', this->GetCMakeCFGIntDir(), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    cmStrCat(this->GetTargetTempDir(gt, this->GetCMakeCFGIntDir()), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              "/$(OBJECT_FILE_DIR_normal:base)/", objectDirArch, '/'); 
														 | 
														
														 | 
														
															              "/$(OBJECT_FILE_DIR_normal:base)/", objectDirArch, '/'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |