Fixed couple of MSVC warnings
authorAndrey Kamaev <no@email>
Tue, 10 Apr 2012 22:21:12 +0000 (22:21 +0000)
committerAndrey Kamaev <no@email>
Tue, 10 Apr 2012 22:21:12 +0000 (22:21 +0000)
CMakeLists.txt
cmake/OpenCVCompilerOptions.cmake
modules/gpu/CMakeLists.txt
modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp
modules/videostab/src/fast_marching.cpp

index f922cab..820c092 100644 (file)
@@ -242,15 +242,6 @@ ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
 
 
 # ----------------------------------------------------------------------------
-# Use statically or dynamically linked CRT?
-# Default: dynamic
-# ----------------------------------------------------------------------------
-if(MSVC)
-  include(cmake/OpenCVCRTLinkage.cmake REQUIRED)
-endif(MSVC)
-
-
-# ----------------------------------------------------------------------------
 #  Autodetect if we are in a SVN repository
 # ----------------------------------------------------------------------------
 find_host_program(SVNVERSION_PATH svnversion)
@@ -285,6 +276,15 @@ endif()
 
 
 # ----------------------------------------------------------------------------
+# Use statically or dynamically linked CRT?
+# Default: dynamic
+# ----------------------------------------------------------------------------
+if(MSVC)
+  include(cmake/OpenCVCRTLinkage.cmake REQUIRED)
+endif(MSVC)
+
+
+# ----------------------------------------------------------------------------
 #       CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
 # ----------------------------------------------------------------------------
 if(UNIX)
index 7454275..6bf1a68 100644 (file)
@@ -2,6 +2,14 @@ if (WIN32 AND CMAKE_GENERATOR MATCHES "(MinGW)|(MSYS)")
   set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "")
 endif()
 
+if(MSVC)
+  if(CMAKE_CXX_FLAGS STREQUAL CMAKE_CXX_FLAGS_INIT)
+    # override cmake default exception handling option
+    string(REPLACE "/EHsc" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}"  CACHE STRING "Flags used by the compiler during all build types." FORCE)
+  endif()
+endif()
+
 set(OPENCV_EXTRA_C_FLAGS "")
 set(OPENCV_EXTRA_C_FLAGS_RELEASE "")
 set(OPENCV_EXTRA_C_FLAGS_DEBUG "")
@@ -166,7 +174,7 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_
 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")
 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")
 
-if (WIN32 AND MSVC)
+if(MSVC)
   # avoid warnings from MSVC about overriding the /W* option
   # we replace /W3 with /W4 only for C++ files,
   # since all the 3rd-party libraries OpenCV uses are in C,
@@ -174,18 +182,15 @@ if (WIN32 AND MSVC)
   string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
   string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
   string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
-
+  
   # allow extern "C" functions throw exceptions
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
-  string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
-
-  string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-  string(REPLACE "/Zm1000" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+  foreach(flags CMAKE_C_FLAGS CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
+    string(REPLACE "/EHsc-" "/EHs" ${flags} "${${flags}}")
+    string(REPLACE "/EHsc" "/EHs" ${flags} "${${flags}}")
     
+    string(REPLACE "/Zm1000" "" ${flags} "${${flags}}")
+  endforeach()
+
   if(NOT ENABLE_NOISY_WARNINGS)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251") #class 'std::XXX' needs to have dll-interface to be used by clients of YYY
   endif()
index 5a98fae..bc16c5b 100644 (file)
@@ -43,10 +43,6 @@ if (HAVE_CUDA)
     
       set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler /wd4251)
     endif()
-
-    foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
-      string(REPLACE "/EHsc-" "/EHs" ${var} "${${var}}")
-    endforeach()
   endif()
 
   OCV_CUDA_COMPILE(cuda_objs ${lib_cuda} ${ncv_cuda})
index acd18f0..bab29a0 100644 (file)
@@ -113,7 +113,7 @@ public:
 private:\r
     // To avoid GCGraph dependency\r
     class Impl;\r
-    Ptr<Impl> impl_;\r
+    Ptr<PairwiseSeamFinder> impl_;\r
 };\r
 \r
 \r
index 70faeb1..796dfd8 100644 (file)
@@ -96,7 +96,7 @@ void FastMarchingMethod::heapUp(int idx)
 void FastMarchingMethod::heapDown(int idx)
 {
     int l, r, smallest;
-    while (true)
+    for(;;)
     {
         l = 2*idx+1;
         r = 2*idx+2;