瀏覽代碼

Merge topic 'vs-windows-sdk-desktop-arm'

2b20110f MSVC: Select default standard libraries for ARM platform
2dfcf0ed VS: Fix generation of desktop applications for ARM
dbb5a7ee CMakeDetermineCompilerId: Fix detection for VS ARM platform
Brad King 11 年之前
父節點
當前提交
1f8cfc3b5f

+ 5 - 0
Modules/CMakeDetermineCompilerId.cmake

@@ -180,6 +180,11 @@ Id flags: ${testflags}
     else()
       set(id_system_version "")
     endif()
+    if(id_platform STREQUAL ARM)
+      set(id_WindowsSDKDesktopARMSupport "<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>")
+    else()
+      set(id_WindowsSDKDesktopARMSupport "")
+    endif()
     if(CMAKE_VS_WINCE_VERSION)
       set(id_entrypoint "mainACRTStartup")
       if("${vs_version}" VERSION_LESS 9)

+ 1 - 0
Modules/CompilerId/VS-10.vcxproj.in

@@ -12,6 +12,7 @@
     <Keyword>Win32Proj</Keyword>
     @id_system@
     @id_system_version@
+    @id_WindowsSDKDesktopARMSupport@
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'" Label="Configuration">

+ 5 - 1
Modules/Platform/Windows-MSVC.cmake

@@ -167,13 +167,17 @@ 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)
+    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")
   endif()
 else()
   set(_PLATFORM_DEFINES "/DWIN32")
 
-  if(MSVC_VERSION GREATER 1310)
+  if(MSVC_C_ARCHITECTURE_ID STREQUAL ARM OR MSVC_CXX_ARCHITECTURE_ID STREQUAL ARM)
+    set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
+  elseif(MSVC_VERSION GREATER 1310)
     set(_RTC1 "/RTC1")
     set(_FLAGS_CXX " /GR /EHsc")
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib")

+ 5 - 0
Source/cmVisualStudio10TargetGenerator.cxx

@@ -2133,4 +2133,9 @@ void cmVisualStudio10TargetGenerator::WriteApplicationTypeSettings()
                         "</MinimumVisualStudioVersion>\n", 2);
       }
     }
+  if (this->Platform == "ARM")
+    {
+    this->WriteString("<WindowsSDKDesktopARMSupport>true"
+                      "</WindowsSDKDesktopARMSupport>", 2);
+    }
 }