[Cmake-commits] CMake branch, next, updated. v3.2.0-rc1-617-g983811f

Brad King brad.king at kitware.com
Mon Feb 23 10:31:00 EST 2015


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  983811fb737927e3d50402b34d15fe03bf2cca42 (commit)
       via  dbe53d48c1e7649ab3f073e5b04608027c6113d8 (commit)
       via  8e3d535ae9582cdcbbec0a269cb98aeb358cda17 (commit)
       via  bee22eec3e34359b0669d63f9aadeeffc5ef5805 (commit)
      from  87fa74298625bf860d9d607a7c5446c210f6233b (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=983811fb737927e3d50402b34d15fe03bf2cca42
commit 983811fb737927e3d50402b34d15fe03bf2cca42
Merge: 87fa742 dbe53d4
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Feb 23 10:30:59 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Feb 23 10:30:59 2015 -0500

    Merge topic 'refine-MSVC-ARM-WinCE' into next
    
    dbe53d48 MSVC: Compile with arch-specific flags on ARM platforms (#14552)
    8e3d535a MSVC: Distinguish among ARM architectures more precisely (#14552)
    bee22eec MSVC: Define /DWINCE when building for WinCE platforms (#14552)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dbe53d48c1e7649ab3f073e5b04608027c6113d8
commit dbe53d48c1e7649ab3f073e5b04608027c6113d8
Author:     Gunnar Roth <gunnar.roth at gmx.de>
AuthorDate: Fri Feb 13 10:14:34 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Feb 23 09:38:39 2015 -0500

    MSVC: Compile with arch-specific flags on ARM platforms (#14552)
    
    Define the exact ARM architecture name as a preprocessor symbol.
    Compile with /QRarch4T or /QRarch5T on ARMV4I or ARMV5I.

diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 37b01d5..2d8dac9 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -155,7 +155,18 @@ if(WINCE)
   set(_PLATFORM_DEFINES_CXX " /D${_MSVC_CXX_ARCHITECTURE_FAMILY} /D_${_MSVC_CXX_ARCHITECTURE_FAMILY_UPPER}_")
 
   set(_RTC1 "")
+  set(_FLAGS_C "")
   set(_FLAGS_CXX " /GR /EHsc")
+
+  foreach(lang C CXX)
+    if(_MSVC_${lang}_ARCHITECTURE_FAMILY STREQUAL "ARM")
+      set(_PLATFORM_DEFINES_${lang} "${_PLATFORM_DEFINES_${lang}} /D${MSVC_${lang}_ARCHITECTURE_ID}")
+      if(MSVC_${lang}_ARCHITECTURE_ID MATCHES "^ARMV([45])I$")
+        set(_FLAGS_${lang} "${_FLAGS_${lang}} /QRarch${CMAKE_MATCH_1}T")
+      endif()
+    endif()
+  endforeach()
+
   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")
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e3d535ae9582cdcbbec0a269cb98aeb358cda17
commit 8e3d535ae9582cdcbbec0a269cb98aeb358cda17
Author:     Gunnar Roth <gunnar.roth at gmx.de>
AuthorDate: Fri Feb 13 10:11:38 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Feb 23 09:38:28 2015 -0500

    MSVC: Distinguish among ARM architectures more precisely (#14552)
    
    Detect the exact ARM architecture instead of just "ARM".  Treat "ARM" as
    an architecture family that includes THUMB (ARMV4I and ARMV5I).

diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index d22a867..403ac08 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -508,8 +508,6 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
         set(ARCHITECTURE_ID "SH4")
       elseif(peheader STREQUAL "50450000a801")
         set(ARCHITECTURE_ID "SH5")
-      elseif(peheader STREQUAL "50450000c201")
-        set(ARCHITECTURE_ID "THUMB")
       endif()
     endif()
 
diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in
index bc26c07..da99b9e 100644
--- a/Modules/CMakePlatformId.h.in
+++ b/Modules/CMakePlatformId.h.in
@@ -1,3 +1,6 @@
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
 /* Identify known platforms by name.  */
 #if defined(__linux) || defined(__linux__) || defined(linux)
 # define PLATFORM_ID "Linux"
@@ -112,7 +115,13 @@
 #  define ARCHITECTURE_ID "X86"
 
 # elif defined(_M_ARM)
-#  define ARCHITECTURE_ID "ARM"
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
 
 # elif defined(_M_MIPS)
 #  define ARCHITECTURE_ID "MIPS"
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 4098c3f..37b01d5 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -134,7 +134,7 @@ set(CMAKE_BUILD_TYPE_INIT Debug)
 if(WINCE)
   foreach(lang C CXX)
     set(_MSVC_${lang}_ARCHITECTURE_FAMILY "${MSVC_${lang}_ARCHITECTURE_ID}")
-    if(_MSVC_${lang}_ARCHITECTURE_FAMILY STREQUAL "THUMB")
+    if(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM")
       set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM")
     elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^SH")
       set(_MSVC_${lang}_ARCHITECTURE_FAMILY "SHx")
@@ -168,7 +168,7 @@ elseif(WINDOWS_PHONE OR WINDOWS_STORE)
   set(_FLAGS_CXX " /DUNICODE /D_UNICODE /GR /EHsc")
   if(WINDOWS_PHONE)
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelHost.lib")
-  elseif(MSVC_C_ARCHITECTURE_ID STREQUAL ARM OR MSVC_CXX_ARCHITECTURE_ID STREQUAL ARM)
+  elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
   else()
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")
@@ -176,7 +176,7 @@ elseif(WINDOWS_PHONE OR WINDOWS_STORE)
 else()
   set(_PLATFORM_DEFINES "/DWIN32")
 
-  if(MSVC_C_ARCHITECTURE_ID STREQUAL ARM OR MSVC_CXX_ARCHITECTURE_ID STREQUAL ARM)
+  if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
   elseif(MSVC_VERSION GREATER 1310)
     set(_RTC1 "/RTC1")
@@ -200,9 +200,21 @@ set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
 set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
 # set the machine type
 if(MSVC_C_ARCHITECTURE_ID)
-  set(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}")
+  if(MSVC_C_ARCHITECTURE_ID MATCHES "^ARMV.I")
+    set(_MACHINE_ARCH_FLAG "/machine:THUMB")
+  elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM")
+    set(_MACHINE_ARCH_FLAG "/machine:ARM")
+  else()
+    set(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}")
+  endif()
 elseif(MSVC_CXX_ARCHITECTURE_ID)
-  set(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}")
+  if(MSVC_CXX_ARCHITECTURE_ID MATCHES "^ARMV.I")
+    set(_MACHINE_ARCH_FLAG "/machine:THUMB")
+  elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
+    set(_MACHINE_ARCH_FLAG "/machine:ARM")
+  else()
+    set(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}")
+  endif()
 elseif(MSVC_Fortran_ARCHITECTURE_ID)
   set(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}")
 endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bee22eec3e34359b0669d63f9aadeeffc5ef5805
commit bee22eec3e34359b0669d63f9aadeeffc5ef5805
Author:     Gunnar Roth <gunnar.roth at gmx.de>
AuthorDate: Fri Feb 13 10:10:26 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Feb 23 09:32:28 2015 -0500

    MSVC: Define /DWINCE when building for WinCE platforms (#14552)

diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 2440f89..4098c3f 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -150,7 +150,7 @@ if(WINCE)
     message(FATAL_ERROR "Invalid Windows CE version: ${CMAKE_SYSTEM_VERSION}")
   endif()
 
-  set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE")
+  set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE /DWINCE")
   set(_PLATFORM_DEFINES_C " /D${_MSVC_C_ARCHITECTURE_FAMILY} /D_${_MSVC_C_ARCHITECTURE_FAMILY_UPPER}_")
   set(_PLATFORM_DEFINES_CXX " /D${_MSVC_CXX_ARCHITECTURE_FAMILY} /D_${_MSVC_CXX_ARCHITECTURE_FAMILY_UPPER}_")
 

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

Summary of changes:
 Modules/CMakeDetermineCompilerId.cmake |    2 --
 Modules/CMakePlatformId.h.in           |   11 +++++++++-
 Modules/Platform/Windows-MSVC.cmake    |   35 ++++++++++++++++++++++++++------
 3 files changed, 39 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list