Index: ports/OpenCV/nacl.patch |
diff --git a/ports/OpenCV/nacl.patch b/ports/OpenCV/nacl.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f82fe3a73b4ba9aa5eda7e885f40a09664f3f1be |
--- /dev/null |
+++ b/ports/OpenCV/nacl.patch |
@@ -0,0 +1,114 @@ |
+diff --git OpenCV_v2.4.7/XCompile-nacl.txt OpenCV_v2.4.7/XCompile-nacl.txt |
+new file mode 100644 |
+index 0000000..c651a2a |
+--- /dev/null |
++++ Box2D_v2.2.1/XCompile-nacl.txt |
+@@ -0,0 +1,17 @@ |
++# the name of the target operating system |
++SET(CMAKE_SYSTEM_NAME Linux) |
++ |
++SET(NACL_CROSS_PREFIX pnacl) |
++ |
++# which compilers to use for C and C++ |
++SET(CMAKE_C_COMPILER "${NACLCC}") |
++SET(CMAKE_CXX_COMPILER "${NACLCXX}") |
++set(CMAKE_AR ${NACLAR} CACHE FILEPATH "Archiver") |
++SET(CMAKE_LINKER "${NACLLD}") |
++SET(_CMAKE_TOOLCHAIN_PREFIX ${NACL_CROSS_PREFIX}) |
++ |
++# here is the target environment located |
++SET(CMAKE_FIND_ROOT_PATH ${NACL_TOOLCHAIN_ROOT}) |
++ |
++# pnacl abi says 32bits little endian |
++set(CMAKE_SIZEOF_VOID_P 4) |
+diff -Naur opencv-2.4.7/modules/contrib/src/inputoutput.cpp opencv-2.4.7.nacl/modules/contrib/src/inputoutput.cpp |
+--- opencv-2.4.7/modules/contrib/src/inputoutput.cpp 2013-11-06 15:26:39.000000000 +0100 |
++++ opencv-2.4.7.nacl/modules/contrib/src/inputoutput.cpp 2013-11-19 10:36:46.000000000 +0100 |
+@@ -76,18 +76,6 @@ |
+ { |
+ return list; |
+ } |
+- |
+- while ((dirp = readdir(dp)) != NULL) |
+- { |
+- if (dirp->d_type == DT_REG) |
+- { |
+- if (exten.compare("*") == 0) |
+- list.push_back(static_cast<std::string>(dirp->d_name)); |
+- else |
+- if (std::string(dirp->d_name).find(exten) != std::string::npos) |
+- list.push_back(static_cast<std::string>(dirp->d_name)); |
+- } |
+- } |
Sam Clegg
2013/11/19 17:03:27
Can you instead wrap these chunks in #ifndef __nat
|
+ closedir(dp); |
+ #endif |
+ |
+@@ -166,20 +154,6 @@ |
+ { |
+ return list; |
+ } |
+- |
+- while ((dirp = readdir(dp)) != NULL) |
+- { |
+- if (dirp->d_type == DT_DIR && |
+- strcmp(dirp->d_name, ".") != 0 && |
+- strcmp(dirp->d_name, "..") != 0 ) |
+- { |
+- if (exten.compare("*") == 0) |
+- list.push_back(static_cast<std::string>(dirp->d_name)); |
+- else |
+- if (std::string(dirp->d_name).find(exten) != std::string::npos) |
+- list.push_back(static_cast<std::string>(dirp->d_name)); |
+- } |
+- } |
+ closedir(dp); |
+ #endif |
+ |
+diff -Naur opencv-2.4.7/modules/core/include/opencv2/core/operations.hpp opencv-2.4.7.nacl/modules/core/include/opencv2/core/operations.hpp |
+--- opencv-2.4.7/modules/core/include/opencv2/core/operations.hpp 2013-11-06 15:26:39.000000000 +0100 |
++++ opencv-2.4.7.nacl/modules/core/include/opencv2/core/operations.hpp 2013-11-19 10:39:15.000000000 +0100 |
+@@ -58,7 +58,7 @@ |
+ |
+ #if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ |
+ #ifdef __ATOMIC_SEQ_CST |
+- #define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), (delta), __ATOMIC_SEQ_CST) |
++ int CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; } |
+ #else |
+ #define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), (delta), 5) |
+ #endif |
+diff -Naur opencv-2.4.7/modules/flann/include/opencv2/flann/allocator.h opencv-2.4.7.nacl/modules/flann/include/opencv2/flann/allocator.h |
+--- opencv-2.4.7/modules/flann/include/opencv2/flann/allocator.h 2013-11-06 15:26:39.000000000 +0100 |
++++ opencv-2.4.7.nacl/modules/flann/include/opencv2/flann/allocator.h 2013-11-19 10:40:38.000000000 +0100 |
+@@ -68,7 +68,7 @@ |
+ * |
+ */ |
+ |
+-const size_t WORDSIZE=16; |
++//const size_t WORDSIZE=16; |
+ const size_t BLOCKSIZE=8192; |
+ |
+ class PooledAllocator |
+diff -Naur opencv-2.4.7/modules/legacy/src/calibfilter.cpp opencv-2.4.7.nacl/modules/legacy/src/calibfilter.cpp |
+--- opencv-2.4.7/modules/legacy/src/calibfilter.cpp 2013-11-06 15:26:39.000000000 +0100 |
++++ opencv-2.4.7.nacl/modules/legacy/src/calibfilter.cpp 2013-11-19 10:44:15.000000000 +0100 |
+@@ -42,7 +42,7 @@ |
+ #include "precomp.hpp" |
+ #include <stdio.h> |
+ |
+-#undef quad |
++//#undef quad |
+ |
+ CvCalibFilter::CvCalibFilter() |
+ { |
+diff -Naur opencv-2.4.7/modules/legacy/src/epilines.cpp opencv-2.4.7.nacl/modules/legacy/src/epilines.cpp |
+--- opencv-2.4.7/modules/legacy/src/epilines.cpp 2013-11-06 15:26:39.000000000 +0100 |
++++ opencv-2.4.7.nacl/modules/legacy/src/epilines.cpp 2013-11-19 10:44:23.000000000 +0100 |
+@@ -46,7 +46,7 @@ |
+ |
+ /* Valery Mosyagin */ |
+ |
+-#undef quad |
++//#undef quad |
+ |
+ #define EPS64D 1e-9 |
+ |