diff --git a/modules/gapi/src/backends/plaidml/gplaidmlcore.cpp b/modules/gapi/src/backends/plaidml/gplaidmlcore.cpp index e81e4b7ea6..c15f84cd1f 100644 --- a/modules/gapi/src/backends/plaidml/gplaidmlcore.cpp +++ b/modules/gapi/src/backends/plaidml/gplaidmlcore.cpp @@ -5,12 +5,14 @@ // Copyright (C) 2019 Intel Corporation -#ifdef HAVE_PLAIDML - #include "precomp.hpp" #include + #include + +#ifdef HAVE_PLAIDML + #include #include @@ -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 diff --git a/modules/gapi/test/gapi_plaidml_pipelines.cpp b/modules/gapi/test/gapi_plaidml_pipelines.cpp index a090c99d61..56306b00ec 100644 --- a/modules/gapi/test/gapi_plaidml_pipelines.cpp +++ b/modules/gapi/test/gapi_plaidml_pipelines.cpp @@ -5,8 +5,6 @@ // Copyright (C) 2019 Intel Corporation -#ifdef HAVE_PLAIDML - #include "test_precomp.hpp" #include @@ -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