#include <vector>
-#include "cvconfig.h"
+#include "opencv2/core/core.hpp"
+#include "opencv2/core/types_c.h"
#if defined WIN32 || defined _WIN32
# ifndef WIN32
# include "opencv2/core/eigen.hpp"
#endif
-#ifdef _OPENMP
-# define HAVE_OPENMP
-#endif
-
-#ifdef __APPLE__
-# define HAVE_GCD
-#endif
-
-#if defined _MSC_VER && _MSC_VER >= 1600
-# define HAVE_CONCURRENCY
-#endif
-
-#if defined HAVE_TBB && TBB_VERSION_MAJOR*100 + TBB_VERSION_MINOR >= 202
-# define CV_PARALLEL_FRAMEWORK "tbb"
-#elif defined HAVE_CSTRIPES
-# define CV_PARALLEL_FRAMEWORK "cstripes"
-#elif defined HAVE_OPENMP
-# define CV_PARALLEL_FRAMEWORK "openmp"
-#elif defined HAVE_GCD
-# define CV_PARALLEL_FRAMEWORK "gcd"
-#elif defined HAVE_CONCURRENCY
-# define CV_PARALLEL_FRAMEWORK "ms-concurrency"
-#endif
-
#ifdef __cplusplus
namespace cv
body(range);
}
#endif
+
+ // Returns a static string if there is a parallel framework,
+ // NULL otherwise.
+ CV_EXPORTS const char* currentParallelFramework();
} //namespace cv
#define CV_INIT_ALGORITHM(classname, algname, memberinit) \
#endif
#endif
+#ifdef _OPENMP
+ #define HAVE_OPENMP
+#endif
+
+#ifdef __APPLE__
+ #define HAVE_GCD
+#endif
+
+#if defined _MSC_VER && _MSC_VER >= 1600
+ #define HAVE_CONCURRENCY
+#endif
/* IMPORTANT: always use the same order of defines
1. HAVE_TBB - 3rdparty library, should be explicitly enabled
#endif
#endif
+#if defined HAVE_TBB && TBB_VERSION_MAJOR*100 + TBB_VERSION_MINOR >= 202
+# define CV_PARALLEL_FRAMEWORK "tbb"
+#elif defined HAVE_CSTRIPES
+# define CV_PARALLEL_FRAMEWORK "cstripes"
+#elif defined HAVE_OPENMP
+# define CV_PARALLEL_FRAMEWORK "openmp"
+#elif defined HAVE_GCD
+# define CV_PARALLEL_FRAMEWORK "gcd"
+#elif defined HAVE_CONCURRENCY
+# define CV_PARALLEL_FRAMEWORK "ms-concurrency"
+#endif
+
namespace cv
{
ParallelLoopBody::~ParallelLoopBody() {}
#endif
}
+const char* cv::currentParallelFramework() {
+#ifdef CV_PARALLEL_FRAMEWORK
+ return CV_PARALLEL_FRAMEWORK;
+#else
+ return NULL;
+#endif
+}
+
CV_IMPL void cvSetNumThreads(int nt)
{
cv::setNumThreads(nt);
-#include "opencv2/core/core.hpp"
#include "opencv2/core/core_c.h"
#include "opencv2/core/internal.hpp"
#include "opencv2/ts/ts.hpp"
if(useStdOut) std::cout << ver << std::endl;
}
-#ifdef CV_PARALLEL_FRAMEWORK
- ::testing::Test::RecordProperty("cv_parallel_framework", CV_PARALLEL_FRAMEWORK);
- if (useStdOut)
- {
- std::cout << "Parallel framework: " << CV_PARALLEL_FRAMEWORK << std::endl;
+ const char* parallel_framework = currentParallelFramework();
+
+ if (parallel_framework) {
+ ::testing::Test::RecordProperty("cv_parallel_framework", parallel_framework);
+ if (useStdOut) std::cout << "Parallel framework: " << parallel_framework << std::endl;
}
-#endif
std::string cpu_features;