Fix build warnings on MSVC x64 and OS X clang
authorAndrey Kamaev <andrey.kamaev@itseez.com>
Fri, 1 Mar 2013 08:17:05 +0000 (12:17 +0400)
committerAndrey Kamaev <andrey.kamaev@itseez.com>
Fri, 1 Mar 2013 09:29:43 +0000 (13:29 +0400)
cmake/OpenCVCompilerOptions.cmake
cmake/OpenCVDetectCXXCompiler.cmake
samples/c/smiledetect.cpp

index 8981f4b..aeed112 100644 (file)
@@ -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()
 
index 7b6ff5e..6e02780 100644 (file)
@@ -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()
 
 # ----------------------------------------------------------------------------
index ff032e4..c54c724 100644 (file)
@@ -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;