Explorar o código

COMP: Handle preinstall properly on IDEs

Andy Cedilnik %!s(int64=19) %!d(string=hai) anos
pai
achega
0ba40b59c7

+ 4 - 1
Source/cmGlobalGenerator.cxx

@@ -1289,7 +1289,10 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
   cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
   singleLine.erase(singleLine.begin(), singleLine.end());
   depends.erase(depends.begin(), depends.end());
-  depends.push_back("preinstall");
+  if ( this->GetPreInstallAvailable() )
+    {
+    depends.push_back("preinstall");
+    }
   if(mf->GetDefinition("CMake_BINARY_DIR"))
     {
     // We are building CMake itself.  We cannot use the original

+ 1 - 0
Source/cmGlobalGenerator.h

@@ -174,6 +174,7 @@ protected:
   virtual const char* GetPackageTargetName()      { return "PACKAGE"; }
   virtual const char* GetEditCacheTargetName()    { return "EDIT_CACHE"; }
   virtual const char* GetRebuildCacheTargetName() { return "REBUILD_CACHE"; }
+  virtual bool GetPreInstallAvailable() { return false; }
 
   bool m_ForceUnixPaths;
   cmStdString m_FindMakeProgramFile;

+ 1 - 0
Source/cmGlobalUnixMakefileGenerator3.h

@@ -126,6 +126,7 @@ protected:
   virtual const char* GetPackageTargetName()      { return "package"; }
   virtual const char* GetEditCacheTargetName()    { return "edit_cache"; }
   virtual const char* GetRebuildCacheTargetName() { return "rebuild_cache"; }
+  virtual bool GetPreInstallAvailable() { return true; }
 
 
   // Some make programs (Borland) do not keep a rule if there are no

+ 0 - 12
Source/cmGlobalVisualStudio71Generator.cxx

@@ -59,7 +59,6 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout,
   bool doneEditCache = false;
   bool doneRebuildCache = false;
   bool donePackage = false;
-  bool donePreInstall = false;
   
   // For each cmMakefile, create a VCProj for it, and
   // add it to this SLN file
@@ -169,17 +168,6 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout,
               doneInstall = true;
               }
             }
-          if(l->first == "preinstall")
-            {
-            if(donePreInstall)
-              {
-              skip = true;
-              }
-            else
-              {
-              donePreInstall = true;
-              }
-            }
           if(l->first == "RUN_TESTS")
             {
             if(doneRunTests)

+ 0 - 18
Source/cmGlobalVisualStudio7Generator.cxx

@@ -210,11 +210,6 @@ void cmGlobalVisualStudio7Generator::Generate()
                           no_working_dir,
                           cmake_command.c_str(),
                           "-DBUILD_TYPE=$(OutDir)", "-P", "cmake_install.cmake");
-      gen[0]->GetMakefile()->
-        AddUtilityCommand("preinstall", false, no_output, no_depends,
-                          no_working_dir,
-                          cmake_command.c_str(),
-                          "-E", "echo", "preinstall");
 
       // Make the INSTALL target depend on ALL_BUILD unless the
       // project says to not do so.
@@ -288,7 +283,6 @@ void cmGlobalVisualStudio7Generator::WriteSLNFile(std::ostream& fout,
   bool doneEditCache = false;
   bool doneRebuildCache = false;
   bool donePackage = false;
-  bool donePreInstall = false;
   
   // For each cmMakefile, create a VCProj for it, and
   // add it to this SLN file
@@ -387,17 +381,6 @@ void cmGlobalVisualStudio7Generator::WriteSLNFile(std::ostream& fout,
               doneInstall = true;
               }
             }
-          if(l->first == "preinstall")
-            {
-            if(donePreInstall)
-              {
-              skip = true;
-              }
-            else
-              {
-              donePreInstall = true;
-              }
-            }
           if(l->first == "RUN_TESTS")
             {
             if(doneRunTests)
@@ -760,7 +743,6 @@ void cmGlobalVisualStudio7Generator::Configure()
   cmGlobalGenerator::Configure();
   this->CreateGUID("ALL_BUILD");
   this->CreateGUID("INSTALL");
-  this->CreateGUID("preinstall");
   this->CreateGUID("RUN_TESTS");
   this->CreateGUID("EDIT_CACHE");
   this->CreateGUID("REBUILD_CACHE");