More accurate guards for WinRT features in CMake.
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Wed, 20 Mar 2013 19:12:58 +0000 (12:12 -0700)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Wed, 20 Mar 2013 19:21:29 +0000 (12:21 -0700)
3rdparty/tbb/CMakeLists.txt
CMakeLists.txt
cmake/OpenCVDetectCXXCompiler.cmake
modules/highgui/CMakeLists.txt
platforms/winrt/arm.winrt.toolchain.cmake [new file with mode: 0644]
platforms/winrt/scripts/cmake_winrt.cmd

index 6a5d2a8..af15813 100644 (file)
@@ -123,7 +123,7 @@ file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h")
 list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp")
 
 if (WIN32)
-add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0
+  add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0
                 -D__TBB_BUILD=1
                 -D_UNICODE
                 -DUNICODE
@@ -162,7 +162,7 @@ endif()
 
 set(TBB_SOURCE_FILES ${lib_srcs} ${lib_hdrs})
 
-if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND NOT WIN32)
+if (ARM AND NOT WIN32)
   if (NOT ANDROID)
     set(TBB_SOURCE_FILES ${TBB_SOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/arm_linux_stub.cpp")
   endif()
index 1f997ba..22ee7fe 100644 (file)
@@ -60,11 +60,6 @@ endif()
 
 project(OpenCV CXX C)
 
-if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND WIN32)
-  set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
-  add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
-endif()
-
 include(cmake/OpenCVUtils.cmake)
 
 # ----------------------------------------------------------------------------
@@ -613,7 +608,7 @@ else()
     status("    QT 4.x:" NO)
   endif()
   if(WIN32)
-    status("    Win32 UI:" NO)
+    status("    Win32 UI:" ARM THEN NO ELSE YES)
   else()
     if(APPLE)
       if(WITH_CARBON)
index 6e02780..504004b 100644 (file)
@@ -103,4 +103,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*" OR CMAKE_GENERATOR
     set(X86_64 1)
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
     set(X86 1)
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*|ARM.*")
+    set(ARM 1)
 endif()
index b8600e9..6d92455 100644 (file)
@@ -90,7 +90,9 @@ if(HAVE_QT)
     set_source_files_properties(${_RCC_OUTFILES} PROPERTIES COMPILE_FLAGS -Wno-missing-declarations)
   endif()
 elseif(WIN32)
-  #list(APPEND highgui_srcs src/window_w32.cpp)
+  if (NOT ARM)
+    list(APPEND highgui_srcs src/window_w32.cpp)
+  endif()
 elseif(HAVE_GTK)
   list(APPEND highgui_srcs src/window_gtk.cpp)
 elseif(APPLE)
@@ -105,10 +107,12 @@ elseif(APPLE)
   endif()
 endif()
 
-#if(WIN32)
+if(WIN32)
   list(APPEND highgui_srcs src/cap_dshow.cpp)
-  #list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp)
-#endif(WIN32)
+  if (NOT ARM)
+    list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp)
+  endif()
+endif(WIN32)
 
 if(HAVE_XINE)
   list(APPEND highgui_srcs src/cap_xine.cpp)
diff --git a/platforms/winrt/arm.winrt.toolchain.cmake b/platforms/winrt/arm.winrt.toolchain.cmake
new file mode 100644 (file)
index 0000000..01854b5
--- /dev/null
@@ -0,0 +1,5 @@
+set(CMAKE_SYSTEM_NAME Windows) # WindowsRT breaks cmake 2.8.10.2 and earler
+set(CMAKE_SYSTEM_PROCESSOR "arm")
+
+set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
+add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
\ No newline at end of file
index 18aafef..3dd20e4 100644 (file)
@@ -3,6 +3,4 @@ cd build
 
 rem call "C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat"
 
-SET PATH=C:\Program Files\Ninja;%PATH%
-
-"C:\Program Files\CMake 2.8\bin\cmake.exe" -GNinja -DCMAKE_BUILD_TYPE=Release -DWITH_TIFF=OFF -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DENABLE_SSE=OFF -DENABLE_SSE2=OFF ..\..\..
\ No newline at end of file
+cmake.exe -GNinja -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_python=OFF -DCMAKE_TOOLCHAIN_FILE=..\..\winrt\arm.winrt.toolchain.cmake ..\..\..