diff --git a/CMake/FindShark.cmake b/CMake/FindShark.cmake
index 59bef138f730718a535ef984deace363cf4f8a47..1fda9fdf6a14ebc7ba8338f5f354396cea66c90f 100644
--- a/CMake/FindShark.cmake
+++ b/CMake/FindShark.cmake
@@ -97,17 +97,25 @@ if(SHARK_CONFIG_FILE)
   "${SHARK_VERSION_MAJOR}.${SHARK_VERSION_MINOR}.${SHARK_VERSION_PATCH}")
 endif()
 
-set(SHARK_USE_OPENMP_matched)
-#define SHARK_USE_OPENMP
+# Check if Shark was built with OpenMP, CBLAS, DYNLIB, ...
 file(STRINGS "${SHARK_INCLUDE_DIR}/shark/Core/Shark.h" SHARK_H_CONTENTS)
-string(REGEX MATCH
-  "#define.SHARK_USE_OPENMP"
-  SHARK_USE_OPENMP_matched "${SHARK_H_CONTENTS}")
 
-if(SHARK_USE_OPENMP_matched)
-  if(NOT OTB_USE_OPENMP)
-    message(WARNING "Shark library is built with OpenMP and you have OTB_USE_OPENMP set to OFF.")
-  endif()
+if(SHARK_H_CONTENTS MATCHES "#define.SHARK_USE_OPENMP")
+  set(SHARK_USE_OPENMP 1)
+else()
+  set(SHARK_USE_OPENMP 0)
+endif()
+
+if(SHARK_H_CONTENTS MATCHES "#define.SHARK_USE_CBLAS")
+  set(SHARK_USE_CBLAS 1)
+else()
+  set(SHARK_USE_CBLAS 0)
+endif()
+
+if(SHARK_H_CONTENTS MATCHES "#define.SHARK_USE_DYNLIB")
+  set(SHARK_USE_DYNLIB 1)
+else()
+  set(SHARK_USE_DYNLIB 0)
 endif()
 
 INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
diff --git a/Modules/ThirdParty/Shark/otb-module-init.cmake b/Modules/ThirdParty/Shark/otb-module-init.cmake
index 6bdd8c6a31559d89eb7b56d8bb9b0295ed0c7c26..23ec6090c7031f09ffe821918d14e58de5fc764e 100644
--- a/Modules/ThirdParty/Shark/otb-module-init.cmake
+++ b/Modules/ThirdParty/Shark/otb-module-init.cmake
@@ -20,4 +20,8 @@
 
 find_package ( Shark REQUIRED )
 
+if(SHARK_USE_OPENMP AND NOT OTB_USE_OPENMP)
+  message(WARNING "Shark library is built with OpenMP and you have OTB_USE_OPENMP set to OFF.")
+endif()
+
 mark_as_advanced( Shark_DIR )