diff --git a/modules/gpu/src/initialization.cpp b/modules/gpu/src/initialization.cpp index dd56333e8f..8bf051941e 100644 --- a/modules/gpu/src/initialization.cpp +++ b/modules/gpu/src/initialization.cpp @@ -74,7 +74,11 @@ namespace CV_EXPORTS bool cv::gpu::TargetArchs::builtWith(cv::gpu::FeatureSet feature_set) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_FEATURES, feature_set, std::greater_equal()); +#else + return false; +#endif } @@ -86,20 +90,32 @@ CV_EXPORTS bool cv::gpu::TargetArchs::has(int major, int minor) CV_EXPORTS bool cv::gpu::TargetArchs::hasPtx(int major, int minor) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_PTX, major * 10 + minor, std::equal_to()); +#else + return false; +#endif } CV_EXPORTS bool cv::gpu::TargetArchs::hasBin(int major, int minor) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_BIN, major * 10 + minor, std::equal_to()); +#else + return false; +#endif } CV_EXPORTS bool cv::gpu::TargetArchs::hasEqualOrLessPtx(int major, int minor) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_PTX, major * 10 + minor, std::less_equal()); +#else + return false; +#endif } @@ -112,15 +128,23 @@ CV_EXPORTS bool cv::gpu::TargetArchs::hasEqualOrGreater(int major, int minor) CV_EXPORTS bool cv::gpu::TargetArchs::hasEqualOrGreaterPtx(int major, int minor) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_PTX, major * 10 + minor, std::greater_equal()); +#else + return false; +#endif } CV_EXPORTS bool cv::gpu::TargetArchs::hasEqualOrGreaterBin(int major, int minor) { +#if defined (HAVE_CUDA) return ::compareToSet(CUDA_ARCH_BIN, major * 10 + minor, std::greater_equal()); +#else + return false; +#endif }