Browse Source

ENH: add support for vs 9 win64

Bill Hoffman 18 years ago
parent
commit
58f671bb1c

+ 2 - 0
Source/CMakeLists.txt

@@ -233,6 +233,8 @@ IF (WIN32)
       cmGlobalVisualStudio9Generator.h
       cmGlobalVisualStudio8Win64Generator.cxx
       cmGlobalVisualStudio8Win64Generator.h
+      cmGlobalVisualStudio9Win64Generator.cxx
+      cmGlobalVisualStudio9Win64Generator.h
       cmGlobalVisualStudioGenerator.cxx
       cmGlobalVisualStudioGenerator.h
       cmGlobalWatcomWMakeGenerator.cxx

+ 53 - 0
Source/cmGlobalVisualStudio9Win64Generator.cxx

@@ -0,0 +1,53 @@
+/*=========================================================================
+
+Program:   CMake - Cross-Platform Makefile Generator
+Module:    $RCSfile$
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
+
+Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
+See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+#include "cmGlobalVisualStudio9Win64Generator.h"
+#include "cmLocalVisualStudio7Generator.h"
+#include "cmMakefile.h"
+
+
+cmGlobalVisualStudio9Win64Generator::cmGlobalVisualStudio9Win64Generator()
+{
+  this->PlatformName = "x64";
+}
+
+///! Create a local generator appropriate to this Global Generator
+cmLocalGenerator *cmGlobalVisualStudio9Win64Generator::CreateLocalGenerator()
+{
+  cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator;
+  lg->SetVersion9();
+  lg->SetPlatformName(this->PlatformName.c_str());
+  lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
+  lg->SetGlobalGenerator(this);
+  return lg;
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio9Win64Generator
+::GetDocumentation(cmDocumentationEntry& entry) const
+{
+  entry.Name = this->GetName();
+  entry.Brief = "Generates Visual Studio 9 2008 Win64 project files.";
+  entry.Full = "";
+}
+
+void cmGlobalVisualStudio9Win64Generator
+::EnableLanguage(std::vector<std::string>const &  lang, 
+                 cmMakefile *mf, bool optional)
+{
+  mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE");
+  cmGlobalVisualStudio9Generator::EnableLanguage(lang, mf, optional);
+}

+ 54 - 0
Source/cmGlobalVisualStudio9Win64Generator.h

@@ -0,0 +1,54 @@
+/*=========================================================================
+
+Program:   CMake - Cross-Platform Makefile Generator
+Module:    $RCSfile$
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
+
+Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
+See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef cmGlobalVisualStudio9Win64Generator_h
+#define cmGlobalVisualStudio9Win64Generator_h
+
+#include "cmGlobalVisualStudio9Generator.h"
+
+
+/** \class cmGlobalVisualStudio8Win64Generator
+ * \brief Write a Unix makefiles.
+ *
+ * cmGlobalVisualStudio8Win64Generator manages UNIX build process for a tree
+ */
+class cmGlobalVisualStudio9Win64Generator : 
+  public cmGlobalVisualStudio9Generator
+{
+public:
+  cmGlobalVisualStudio9Win64Generator();
+  static cmGlobalGenerator* New() { 
+    return new cmGlobalVisualStudio9Win64Generator; }
+  
+  ///! Get the name for the generator.
+  virtual const char* GetName() const {
+    return cmGlobalVisualStudio9Win64Generator::GetActualName();}
+  static const char* GetActualName() {return "Visual Studio 9 2008 Win64";}
+
+  /** Get the documentation entry for this generator.  */
+  virtual void GetDocumentation(cmDocumentationEntry& entry) const;
+
+  ///! create the correct local generator
+  virtual cmLocalGenerator *CreateLocalGenerator();
+
+  /**
+   * Try to determine system infomation such as shared library
+   * extension, pthreads, byte order etc.  
+   */
+  virtual void EnableLanguage(std::vector<std::string>const& languages, 
+                              cmMakefile *, bool optional);
+};
+#endif

+ 12 - 0
Source/cmake.cxx

@@ -64,6 +64,7 @@
 #    include "cmGlobalVisualStudio71Generator.h"
 #    include "cmGlobalVisualStudio8Generator.h"
 #    include "cmGlobalVisualStudio9Generator.h"
+#    include "cmGlobalVisualStudio9Win64Generator.h"
 #    include "cmGlobalVisualStudio8Win64Generator.h"
 #    include "cmGlobalBorlandMakefileGenerator.h"
 #    include "cmGlobalNMakeMakefileGenerator.h"
@@ -2289,6 +2290,8 @@ void cmake::AddDefaultGenerators()
     &cmGlobalVisualStudio8Generator::New;
   this->Generators[cmGlobalVisualStudio9Generator::GetActualName()] =
     &cmGlobalVisualStudio9Generator::New;
+  this->Generators[cmGlobalVisualStudio9Win64Generator::GetActualName()] =
+    &cmGlobalVisualStudio9Win64Generator::New;
   this->Generators[cmGlobalVisualStudio8Win64Generator::GetActualName()] =
     &cmGlobalVisualStudio8Win64Generator::New;
   this->Generators[cmGlobalBorlandMakefileGenerator::GetActualName()] =
@@ -3214,6 +3217,15 @@ void cmake::DefineProperties(cmake *cm)
      "List of packages which were not found during the CMake run. Whether a "
      "package has been found is determined using the <NAME>_FOUND variables.");
 
+  cm->DefineProperty
+    ("PACKAGES_NOT_FOUND", cmProperty::GLOBAL,
+     "List of packages which were not found during the CMake run.",
+     "List of packages which were not found during the CMake run. Whether a "
+     "package has been found is determined using the <NAME>_FOUND variables.");
+  cm->DefineProperty(
+    "__CMAKE_DELETE_CACHE_CHANGE_VARS_", cmProperty::GLOBAL,
+    "Internal property",
+    "Used to detect compiler changes, Do not set.");
 
   // ================================================================
   // define variables as well