diff --git a/cmake/modules/AddVcFlags.cmake b/cmake/modules/AddVcFlags.cmake
deleted file mode 100644
index 96b3c5027c8c365de5eee28b24ceb95e98a017f6..0000000000000000000000000000000000000000
--- a/cmake/modules/AddVcFlags.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-# Defines the functions to use GMP
-#
-# .. cmake_function:: add_dune_vc_flags
-#
-#    .. cmake_param:: targets
-#       :positional:
-#       :single:
-#       :required:
-#
-#       A list of targets to use GMP with.
-#
-
-function(add_dune_vc_flags _targets)
-  if(Vc_FOUND)
-    foreach(_target ${_targets})
-      target_link_libraries(${_target} ${Vc_LIBRARIES})
-      target_compile_options(${_target} ${Vc_ALL_FLAGS})
-      target_include_directories(${_target} SYSTEM ${Vc_INCLUDE_DIR})
-    endforeach(_target ${_targets})
-  endif(Vc_FOUND)
-endfunction(add_dune_vc_flags)
diff --git a/cmake/modules/DuneCommonMacros.cmake b/cmake/modules/DuneCommonMacros.cmake
index bc5540413d3fca3ad58379722c5a678e92c52d2a..c88a25615849ef9d3c0d9237073d9cf14105ade2 100644
--- a/cmake/modules/DuneCommonMacros.cmake
+++ b/cmake/modules/DuneCommonMacros.cmake
@@ -26,5 +26,12 @@ include(AddGMPFlags)
 find_package(Inkscape)
 include(UseInkscape)
 include(FindMProtect)
+
+# try to find the Vc library
 find_package(Vc)
-include(AddVcFlags)
+set(HAVE_VC ${Vc_FOUND})
+if(${HAVE_VC})
+  dune_register_package_flags(COMPILE_OPTIONS "${Vc_ALL_FLAGS}"
+                              LIBRARIES "${Vc_LIBRARIES}"
+                              INCLUDE_DIRS "${Vc_INCLUDE_DIR}")
+endif(${HAVE_VC})
diff --git a/config.h.cmake b/config.h.cmake
index e0e8990614bbb68acb8ca0a72ba5f9125d01d17c..f593b6aed1f0981227be3f0805cc28b9f4d5d427 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -45,6 +45,9 @@
    to facilitate activating and deactivating GMP using compile flags. */
 #cmakedefine HAVE_GMP ENABLE_GMP
 
+/* Define to 1 if you have the Vc library. */
+#cmakedefine HAVE_VC 1
+
 /* Define to 1 if you have the symbol mprotect. */
 #cmakedefine HAVE_MPROTECT 1