From 626afecaf8f56b458a68530a912f343428e85198 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Tue, 10 Apr 2012 22:21:12 +0000 Subject: [PATCH] Fixed couple of MSVC warnings --- CMakeLists.txt | 18 +++++++-------- cmake/OpenCVCompilerOptions.cmake | 27 +++++++++++++--------- modules/gpu/CMakeLists.txt | 4 ---- .../opencv2/stitching/detail/seam_finders.hpp | 2 +- modules/videostab/src/fast_marching.cpp | 2 +- 5 files changed, 27 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f922cab..820c092 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake index 7454275..6bf1a68 100644 --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -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() diff --git a/modules/gpu/CMakeLists.txt b/modules/gpu/CMakeLists.txt index 5a98fae..bc16c5b 100644 --- a/modules/gpu/CMakeLists.txt +++ b/modules/gpu/CMakeLists.txt @@ -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}) diff --git a/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp b/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp index acd18f0..bab29a0 100644 --- a/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp +++ b/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp @@ -113,7 +113,7 @@ public: private: // To avoid GCGraph dependency class Impl; - Ptr impl_; + Ptr impl_; }; diff --git a/modules/videostab/src/fast_marching.cpp b/modules/videostab/src/fast_marching.cpp index 70faeb1..796dfd8 100644 --- a/modules/videostab/src/fast_marching.cpp +++ b/modules/videostab/src/fast_marching.cpp @@ -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; -- 2.7.4