From f77fdc0ce86a668f8acdfd94bf4bcbd65126c6f3 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 19 Oct 2021 09:28:12 +0000 Subject: [PATCH] samples: fix build without threading support --- samples/CMakeLists.txt | 1 + samples/dnn/object_detection.cpp | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 87f5cfcf88..68afc487a2 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -114,6 +114,7 @@ else() find_package(Threads) endif() if((TARGET Threads::Threads OR HAVE_THREADS) AND NOT OPENCV_EXAMPLES_DISABLE_THREADS) + set(HAVE_THREADS 1) add_definitions(-DHAVE_THREADS=1) endif() diff --git a/samples/dnn/object_detection.cpp b/samples/dnn/object_detection.cpp index c7e42430fe..5d201de3b5 100644 --- a/samples/dnn/object_detection.cpp +++ b/samples/dnn/object_detection.cpp @@ -5,7 +5,11 @@ #include #include -#ifdef CV_CXX11 +#if defined(CV_CXX11) && defined(HAVE_THREADS) +#define USE_THREADS 1 +#endif + +#ifdef USE_THREADS #include #include #include @@ -51,7 +55,7 @@ void drawPred(int classId, float conf, int left, int top, int right, int bottom, void callback(int pos, void* userdata); -#ifdef CV_CXX11 +#ifdef USE_THREADS template class QueueFPS : public std::queue { @@ -101,7 +105,7 @@ private: TickMeter tm; std::mutex mutex; }; -#endif // CV_CXX11 +#endif // USE_THREADS int main(int argc, char** argv) { @@ -166,7 +170,7 @@ int main(int argc, char** argv) else cap.open(parser.get("device")); -#ifdef CV_CXX11 +#ifdef USE_THREADS bool process = true; // Frames capturing thread @@ -266,7 +270,7 @@ int main(int argc, char** argv) framesThread.join(); processingThread.join(); -#else // CV_CXX11 +#else // USE_THREADS if (async) CV_Error(Error::StsNotImplemented, "Asynchronous forward is supported only with Inference Engine backend."); @@ -297,7 +301,7 @@ int main(int argc, char** argv) imshow(kWinName, frame); } -#endif // CV_CXX11 +#endif // USE_THREADS return 0; }