Browse Source

VS: Generate Nsight Tegra project revision number

Nsight Tegra 2.0 will be revision '8'.  Generate this revision number
and add a NsightTegraUpgradeOnceWithoutPrompt element to tell newer
versions not to prompt when upgrading the generated project file.
Brad King 11 years ago
parent
commit
69e198dc3f

+ 6 - 0
Source/cmGlobalVisualStudio10Generator.cxx

@@ -619,6 +619,12 @@ bool cmGlobalVisualStudio10Generator::IsNsightTegra() const
   return !this->NsightTegraVersion.empty();
   return !this->NsightTegraVersion.empty();
 }
 }
 
 
+//----------------------------------------------------------------------------
+std::string cmGlobalVisualStudio10Generator::GetNsightTegraVersion() const
+{
+  return this->NsightTegraVersion;
+}
+
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
 std::string cmGlobalVisualStudio10Generator::GetInstalledNsightTegraVersion()
 std::string cmGlobalVisualStudio10Generator::GetInstalledNsightTegraVersion()
 {
 {

+ 1 - 0
Source/cmGlobalVisualStudio10Generator.h

@@ -61,6 +61,7 @@ public:
 
 
   /** Generating for Nsight Tegra VS plugin?  */
   /** Generating for Nsight Tegra VS plugin?  */
   bool IsNsightTegra() const;
   bool IsNsightTegra() const;
+  std::string GetNsightTegraVersion() const;
 
 
   /** The toolset name for the target platform.  */
   /** The toolset name for the target platform.  */
   const char* GetPlatformToolset() const;
   const char* GetPlatformToolset() const;

+ 26 - 3
Source/cmVisualStudio10TargetGenerator.cxx

@@ -181,6 +181,14 @@ cmVisualStudio10TargetGenerator(cmTarget* target,
   this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
   this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
   this->Platform = gg->GetPlatformName();
   this->Platform = gg->GetPlatformName();
   this->NsightTegra = gg->IsNsightTegra();
   this->NsightTegra = gg->IsNsightTegra();
+  for(int i =
+        sscanf(gg->GetNsightTegraVersion().c_str(), "%u.%u.%u.%u",
+               &this->NsightTegraVersion[0], &this->NsightTegraVersion[1],
+               &this->NsightTegraVersion[2], &this->NsightTegraVersion[3]);
+      i < 4; ++i)
+    {
+    this->NsightTegraVersion[i] = 0;
+    }
   this->MSTools = !this->NsightTegra;
   this->MSTools = !this->NsightTegra;
   this->TargetCompileAsWinRT = false;
   this->TargetCompileAsWinRT = false;
   this->BuildFileStream = 0;
   this->BuildFileStream = 0;
@@ -316,9 +324,24 @@ void cmVisualStudio10TargetGenerator::Generate()
   if(this->NsightTegra)
   if(this->NsightTegra)
     {
     {
     this->WriteString("<PropertyGroup Label=\"NsightTegraProject\">\n", 1);
     this->WriteString("<PropertyGroup Label=\"NsightTegraProject\">\n", 1);
-    this->WriteString("<NsightTegraProjectRevisionNumber>"
-                      "7"
-                      "</NsightTegraProjectRevisionNumber>\n", 2);
+    if(this->NsightTegraVersion[0] >= 2)
+      {
+      // Nsight Tegra 2.0 uses project revision 8.
+      this->WriteString("<NsightTegraProjectRevisionNumber>"
+                        "8"
+                        "</NsightTegraProjectRevisionNumber>\n", 2);
+      // Tell newer versions to upgrade silently when loading.
+      this->WriteString("<NsightTegraUpgradeOnceWithoutPrompt>"
+                        "true"
+                        "</NsightTegraUpgradeOnceWithoutPrompt>\n", 2);
+      }
+    else
+      {
+      // Require Nsight Tegra 1.6 for JCompile support.
+      this->WriteString("<NsightTegraProjectRevisionNumber>"
+                        "7"
+                        "</NsightTegraProjectRevisionNumber>\n", 2);
+      }
     this->WriteString("</PropertyGroup>\n", 1);
     this->WriteString("</PropertyGroup>\n", 1);
     }
     }
 
 

+ 1 - 0
Source/cmVisualStudio10TargetGenerator.h

@@ -142,6 +142,7 @@ private:
   std::string Name;
   std::string Name;
   bool MSTools;
   bool MSTools;
   bool NsightTegra;
   bool NsightTegra;
+  int  NsightTegraVersion[4];
   bool TargetCompileAsWinRT;
   bool TargetCompileAsWinRT;
   cmGlobalVisualStudio10Generator* GlobalGenerator;
   cmGlobalVisualStudio10Generator* GlobalGenerator;
   cmGeneratedFileStream* BuildFileStream;
   cmGeneratedFileStream* BuildFileStream;