From 22d33373fa7e1484838c715c640c20fc037b2f20 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Fri, 1 Mar 2013 12:17:05 +0400 Subject: [PATCH] Fix build warnings on MSVC x64 and OS X clang --- cmake/OpenCVCompilerOptions.cmake | 2 +- cmake/OpenCVDetectCXXCompiler.cmake | 22 +++++++++++----------- samples/c/smiledetect.cpp | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake index 8981f4b..aeed112 100644 --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -97,7 +97,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) endif() # We need pthread's - if(UNIX AND NOT ANDROID) + if(UNIX AND NOT ANDROID AND NOT (APPLE AND CMAKE_COMPILER_IS_CLANGCXX)) add_extra_compiler_option(-pthread) endif() diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake index 7b6ff5e..6e02780 100644 --- a/cmake/OpenCVDetectCXXCompiler.cmake +++ b/cmake/OpenCVDetectCXXCompiler.cmake @@ -5,17 +5,17 @@ if(CMAKE_CL_64) set(MSVC64 1) endif() -if(NOT APPLE) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_COMPILER_IS_GNUCXX 1) - set(CMAKE_COMPILER_IS_CLANGCXX 1) - set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE) - endif() - if(CMAKE_C_COMPILER_ID STREQUAL "Clang") - set(CMAKE_COMPILER_IS_GNUCC 1) - set(CMAKE_COMPILER_IS_CLANGCC 1) - set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE) - endif() +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_COMPILER_IS_GNUCXX 1) + set(CMAKE_COMPILER_IS_CLANGCXX 1) +endif() +if(CMAKE_C_COMPILER_ID STREQUAL "Clang") + set(CMAKE_COMPILER_IS_GNUCC 1) + set(CMAKE_COMPILER_IS_CLANGCC 1) +endif() + +if((CMAKE_COMPILER_IS_CLANGCXX OR CMAKE_COMPILER_IS_CLANGCC) AND NOT CMAKE_GENERATOR MATCHES "Xcode") + set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE) endif() # ---------------------------------------------------------------------------- diff --git a/samples/c/smiledetect.cpp b/samples/c/smiledetect.cpp index ff032e4..c54c724 100644 --- a/samples/c/smiledetect.cpp +++ b/samples/c/smiledetect.cpp @@ -116,7 +116,7 @@ int main( int argc, const char** argv ) { cout << "In capture ..." << endl; cout << endl << "NOTE: Smile intensity will only be valid after a first smile has been detected" << endl; - + for(;;) { IplImage* iplImg = cvQueryFrame( capture ); @@ -229,8 +229,8 @@ void detectAndDraw( Mat& img, CascadeClassifier& cascade, // The number of detected neighbors depends on image size (and also illumination, etc.). The // following steps use a floating minimum and maximum of neighbors. Intensity thus estimated will be - //accurate only after a first smile has been displayed by the user. - const int smile_neighbors = nestedObjects.size(); + //accurate only after a first smile has been displayed by the user. + const int smile_neighbors = (int)nestedObjects.size(); static int max_neighbors=-1; static int min_neighbors=-1; if (min_neighbors == -1) min_neighbors = smile_neighbors; -- 2.7.4