Android NDK r9 support. x64 NDK support fix for MacOS X.
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Tue, 1 Oct 2013 08:47:03 +0000 (12:47 +0400)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Thu, 3 Oct 2013 07:36:12 +0000 (11:36 +0400)
modules/imgproc/src/floodfill.cpp
modules/imgproc/test/test_convhull.cpp
modules/legacy/src/bgfg_gaussmix.cpp
modules/legacy/src/lmeds.cpp
platforms/android/android.toolchain.cmake

index ada6dcc..7404767 100644 (file)
 
 #include "precomp.hpp"
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
+
 typedef struct CvFFillSegment
 {
     ushort y;
index cae75d0..64fe7f6 100644 (file)
@@ -1225,6 +1225,10 @@ CV_FitLineTest::CV_FitLineTest()
     max_noise = 0.05;
 }
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
 
 void CV_FitLineTest::generate_point_set( void* pointsSet )
 {
@@ -1297,6 +1301,9 @@ void CV_FitLineTest::generate_point_set( void* pointsSet )
     }
 }
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic pop
+#endif
 
 int CV_FitLineTest::prepare_test_case( int test_case_idx )
 {
@@ -1322,6 +1329,10 @@ void CV_FitLineTest::run_func()
         cv::fitLine(cv::cvarrToMat(points), (cv::Vec6f&)line[0], dist_type, 0, reps, aeps);
 }
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
 
 int CV_FitLineTest::validate_test_results( int test_case_idx )
 {
@@ -1401,6 +1412,9 @@ _exit_:
     return code;
 }
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic pop
+#endif
 
 /****************************************************************************************\
 *                                   ContourMoments Test                                  *
index 6c6839e..3cb7a5a 100644 (file)
@@ -415,6 +415,11 @@ CV_INLINE int _icvRemoveShadowGMM(float* data, int nD,
 //IEEE Trans. on Pattern Analysis and Machine Intelligence, vol.26, no.5, pages 651-656, 2004
 //http://www.zoranz.net/Publications/zivkovic2004PAMI.pdf
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
+
 CV_INLINE int _icvUpdateGMM(float* data, int nD,
                             unsigned char* pModesUsed,
                             CvPBGMMGaussian* pGMM,
@@ -603,6 +608,10 @@ CV_INLINE int _icvUpdateGMM(float* data, int nD,
     return bBackground;
 }
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic pop
+#endif
+
 // a bit more efficient implementation for common case of 3 channel (rgb) images
 CV_INLINE int _icvUpdateGMM_C3(float r,float g, float b,
                                unsigned char* pModesUsed,
index 7794640..33b57a7 100644 (file)
@@ -162,6 +162,12 @@ icvLMedS( int *points1, int *points2, int numPoints, CvMatrix3 * fundamentalMatr
 
 /*===========================================================================*/
 /*===========================================================================*/
+
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
+
 void
 icvChoose7( int *ml, int *mr, int num, int *ml7, int *mr7 )
 {
@@ -322,6 +328,10 @@ icvCubic( double a2, double a1, double a0, double *squares )
     return CV_NO_ERR;
 }                               /* icvCubic */
 
+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+# pragma GCC diagnostic pop
+#endif
+
 /*======================================================================================*/
 double
 icvDet( double *M )
index d7f09c7..bee73db 100644 (file)
@@ -318,7 +318,7 @@ set( CMAKE_SYSTEM_VERSION 1 )
 # rpath makes low sence for Android
 set( CMAKE_SKIP_RPATH TRUE CACHE BOOL "If set, runtime paths are not added when using shared libraries." )
 
-set( ANDROID_SUPPORTED_NDK_VERSIONS ${ANDROID_EXTRA_NDK_VERSIONS} -r8e -r8d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5 "" )
+set( ANDROID_SUPPORTED_NDK_VERSIONS ${ANDROID_EXTRA_NDK_VERSIONS} -r9 -r8e -r8d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5 "" )
 if(NOT DEFINED ANDROID_NDK_SEARCH_PATHS)
  if( CMAKE_HOST_WIN32 )
   file( TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ANDROID_NDK_SEARCH_PATHS )
@@ -484,7 +484,9 @@ else()
  message( FATAL_ERROR "Cross-compilation on your platform is not supported by this cmake toolchain" )
 endif()
 
-if( NOT ANDROID_NDK_HOST_X64 )
+# CMAKE_HOST_SYSTEM_PROCESSOR on MacOS X always says i386 on Intel platform
+# So we do not trust ANDROID_NDK_HOST_X64 on Apple hosts
+if( NOT ANDROID_NDK_HOST_X64 AND NOT CMAKE_HOST_APPLE)
  set( ANDROID_NDK_HOST_SYSTEM_NAME ${ANDROID_NDK_HOST_SYSTEM_NAME2} )
 endif()