[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3748-gd971624

Brad King brad.king at kitware.com
Wed Aug 7 08:41:29 EDT 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  d971624926ede6e1c4122d5dff9519ad4d760dba (commit)
       via  c04dcfb201db865ce00659d2ad03c3b607eabba2 (commit)
       via  8fcf0ab020a9496e53051bb9effdc68e44be3af6 (commit)
      from  30d767da2bb1135cb4faeb01da09a16a0d4d4269 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d971624926ede6e1c4122d5dff9519ad4d760dba
commit d971624926ede6e1c4122d5dff9519ad4d760dba
Merge: 30d767d c04dcfb
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Aug 7 08:41:28 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Aug 7 08:41:28 2013 -0400

    Merge topic 'wince800' into next
    
    c04dcfb VS11: Add support for Windows CE SDKs
    8fcf0ab Add support for new Windows CE compiler


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c04dcfb201db865ce00659d2ad03c3b607eabba2
commit c04dcfb201db865ce00659d2ad03c3b607eabba2
Author:     Patrick Gansterer <paroga at paroga.com>
AuthorDate: Sun Aug 4 20:15:35 2013 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Aug 7 08:36:18 2013 -0400

    VS11: Add support for Windows CE SDKs
    
    Allow additional generator platforms for the installed WinCE SDKs.

diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx
index a014654..ac119a3 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -13,31 +13,56 @@
 #include "cmLocalVisualStudio10Generator.h"
 #include "cmMakefile.h"
 
-static const char vs11Win32generatorName[] = "Visual Studio 11";
-static const char vs11Win64generatorName[] = "Visual Studio 11 Win64";
-static const char vs11ARMgeneratorName[] = "Visual Studio 11 ARM";
+static const char vs11generatorName[] = "Visual Studio 11";
 
 class cmGlobalVisualStudio11Generator::Factory
   : public cmGlobalGeneratorFactory
 {
 public:
   virtual cmGlobalGenerator* CreateGlobalGenerator(const char* name) const {
-    if(!strcmp(name, vs11Win32generatorName))
+    if(strstr(name, vs11generatorName) != name)
+      {
+      return 0;
+      }
+
+    const char* p = name + sizeof(vs11generatorName) - 1;
+    if(p[0] == '\0')
       {
       return new cmGlobalVisualStudio11Generator(
         name, NULL, NULL);
       }
-    if(!strcmp(name, vs11Win64generatorName))
+
+    if(p[0] != ' ')
       {
-      return new cmGlobalVisualStudio11Generator(
-        name, "x64", "CMAKE_FORCE_WIN64");
+      return 0;
       }
-    if(!strcmp(name, vs11ARMgeneratorName))
+
+    ++p;
+
+    if(!strcmp(p, "ARM"))
       {
       return new cmGlobalVisualStudio11Generator(
         name, "ARM", NULL);
       }
-    return 0;
+
+    if(!strcmp(p, "Win64"))
+      {
+      return new cmGlobalVisualStudio11Generator(
+        name, "x64", "CMAKE_FORCE_WIN64");
+      }
+
+    std::set<std::string> installedSDKs =
+      cmGlobalVisualStudio11Generator::GetInstalledWindowsCESDKs();
+
+    if(installedSDKs.find(p) == installedSDKs.end())
+      {
+      return 0;
+      }
+
+    cmGlobalVisualStudio11Generator* ret =
+      new cmGlobalVisualStudio11Generator(name, p, NULL);
+    ret->WindowsCEVersion = "8.00";
+    return ret;
   }
 
   virtual void GetDocumentation(cmDocumentationEntry& entry) const {
@@ -51,9 +76,18 @@ public:
   }
 
   virtual void GetGenerators(std::vector<std::string>& names) const {
-    names.push_back(vs11Win32generatorName);
-    names.push_back(vs11Win64generatorName);
-    names.push_back(vs11ARMgeneratorName); }
+    names.push_back(vs11generatorName);
+    names.push_back(vs11generatorName + std::string(" ARM"));
+    names.push_back(vs11generatorName + std::string(" Win64"));
+
+    std::set<std::string> installedSDKs =
+      cmGlobalVisualStudio11Generator::GetInstalledWindowsCESDKs();
+    for(std::set<std::string>::const_iterator i =
+        installedSDKs.begin(); i != installedSDKs.end(); ++i)
+      {
+      names.push_back("Visual Studio 8 2005 " + *i);
+      }
+  }
 };
 
 //----------------------------------------------------------------------------
@@ -109,3 +143,36 @@ bool cmGlobalVisualStudio11Generator::UseFolderProperty()
   // Express editions in VS10 and earlier, but they are in VS11 Express.
   return cmGlobalVisualStudio8Generator::UseFolderProperty();
 }
+
+//----------------------------------------------------------------------------
+std::set<std::string>
+cmGlobalVisualStudio11Generator::GetInstalledWindowsCESDKs()
+{
+  const char sdksKey[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"
+                         "Windows CE Tools\\SDKs";
+
+  std::vector<std::string> subkeys;
+  cmSystemTools::GetRegistrySubKeys(sdksKey, subkeys,
+                                    cmSystemTools::KeyWOW64_32);
+
+  std::set<std::string> ret;
+  for(std::vector<std::string>::const_iterator i =
+      subkeys.begin(); i != subkeys.end(); ++i)
+    {
+    std::string key = sdksKey;
+    key += '\\';
+    key += *i;
+    key += ';';
+
+    std::string path;
+    if(cmSystemTools::ReadRegistryValue(key.c_str(),
+                                        path,
+                                        cmSystemTools::KeyWOW64_32) &&
+        !path.empty())
+      {
+      ret.insert(*i);
+      }
+    }
+
+  return ret;
+}
diff --git a/Source/cmGlobalVisualStudio11Generator.h b/Source/cmGlobalVisualStudio11Generator.h
index b61366a..7cc7e69 100644
--- a/Source/cmGlobalVisualStudio11Generator.h
+++ b/Source/cmGlobalVisualStudio11Generator.h
@@ -34,7 +34,9 @@ public:
 protected:
   virtual const char* GetIDEVersion() { return "11.0"; }
   bool UseFolderProperty();
+  static std::set<std::string> GetInstalledWindowsCESDKs();
 private:
   class Factory;
+  friend class Factory;
 };
 #endif

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8fcf0ab020a9496e53051bb9effdc68e44be3af6
commit 8fcf0ab020a9496e53051bb9effdc68e44be3af6
Author:     Patrick Gansterer <paroga at paroga.com>
AuthorDate: Sun Aug 4 20:11:30 2013 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Aug 7 08:26:26 2013 -0400

    Add support for new Windows CE compiler
    
    The new compiler versions do not need corelibc.lib as a default
    link library and a architecture detection workaround.

diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 1a2d3e9..685638a 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -141,8 +141,12 @@ if(WINCE)
 
   set(_RTC1 "")
   set(_FLAGS_CXX " /GR /EHsc")
-  set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib")
+  set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib")
   set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} /NODEFAULTLIB:libc.lib /NODEFAULTLIB:oldnames.lib")
+
+  if (MSVC_VERSION LESS 1500)
+    set(CMAKE_C_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT} corelibc.lib")
+  endif ()
 else()
   set(_PLATFORM_DEFINES "/DWIN32")
 

-----------------------------------------------------------------------

Summary of changes:
 Modules/Platform/Windows-MSVC.cmake        |    6 ++-
 Source/cmGlobalVisualStudio11Generator.cxx |   91 ++++++++++++++++++++++++----
 Source/cmGlobalVisualStudio11Generator.h   |    2 +
 3 files changed, 86 insertions(+), 13 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list