Add implementation in case plaidml isn't found

pull/17605/head
Anatoliy Talamanov 4 years ago
parent 5ed65460d1
commit a74ed58893
  1. 16
      modules/gapi/src/backends/plaidml/gplaidmlcore.cpp
  2. 13
      modules/gapi/test/gapi_plaidml_pipelines.cpp

@ -5,12 +5,14 @@
// Copyright (C) 2019 Intel Corporation
#ifdef HAVE_PLAIDML
#include "precomp.hpp"
#include <opencv2/gapi/core.hpp>
#include <opencv2/gapi/plaidml/core.hpp>
#ifdef HAVE_PLAIDML
#include <opencv2/gapi/plaidml/gplaidmlkernel.hpp>
#include <plaidml2/edsl/edsl.h>
@ -51,4 +53,12 @@ cv::gapi::GKernelPackage cv::gapi::core::plaidml::kernels()
return pkg;
}
#endif // HACE_PLAIDML
#else // HAVE_PLAIDML
cv::gapi::GKernelPackage cv::gapi::core::plaidml::kernels()
{
// Still provide this symbol to avoid linking issues
util::throw_error(std::runtime_error("G-API has been compiled without PlaidML2 support"));
}
#endif // HAVE_PLAIDML

@ -5,8 +5,6 @@
// Copyright (C) 2019 Intel Corporation
#ifdef HAVE_PLAIDML
#include "test_precomp.hpp"
#include <stdexcept>
@ -19,6 +17,8 @@
namespace opencv_test
{
#ifdef HAVE_PLAIDML
inline cv::gapi::plaidml::config getConfig()
{
auto read_var_from_env = [](const char* env)
@ -173,6 +173,13 @@ TEST(GAPI_PlaidML_Pipelines, TwoOutputOperations)
EXPECT_EQ(0, cv::norm(out_mat[1], ref_mat[1]));
}
} // namespace opencv_test
#else // HAVE_PLAIDML
TEST(GAPI_PlaidML_Pipelines, ThrowIfPlaidMLNotFound)
{
ASSERT_ANY_THROW(cv::gapi::core::plaidml::kernels());
}
#endif // HAVE_PLAIDML
} // namespace opencv_test

Loading…
Cancel
Save