diff --git a/modules/find/FindFABULOUS.cmake b/modules/find/FindFABULOUS.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..321ab43d01c662a915b8910f7f911ddbf9656241
--- /dev/null
+++ b/modules/find/FindFABULOUS.cmake
@@ -0,0 +1,158 @@
+# - Try to find fabulous (C-api)
+#
+# If this script have difficulties to find fabulous, you can try to help
+# it by setting the variable FABULOUS_DIR to the prefix path where fabulous
+# was installed
+#
+# Once done this will define
+#  FABULOUS_FOUND - System has fabulous
+#  FABULOUS_INCLUDE_DIRS - The fabulous include directories
+#  FABULOUS_LIBRARIES - The libraries needed to use fabulous
+#  FABULOUS_DEFINITIONS - Compiler switches required for using fabulous
+
+include(FindPackageHandleStandardArgs)
+
+macro(FABULOUS_FIND_LIBRARIES_FROM_PKGCONFIG_RESULTS _prefix _pc_xprefix)
+    foreach(_library ${${_pc_xprefix}_LIBRARIES})
+        get_filename_component(_library ${_library} NAME_WE)
+        unset(_library_path)
+        unset(_library_path CACHE)
+        find_library(_library_path NAMES ${_library}
+            HINTS ${${_pc_xprefix}_LIBDIR} ${${_pc_xprefix}_LIBRARY_DIRS} )
+        if (_library_path)
+            list(APPEND ${_prefix}_LIBRARIES ${_library_path})
+        else()
+            message(FATAL_ERROR "Dependency of ${_prefix} '${_library}' NOT FOUND")
+        endif()
+        unset(_library_path CACHE)
+    endforeach()
+endmacro()
+
+macro(FABULOUS_CHECK_FUNCTION_EXISTS _prefix _function)
+    include(CheckFunctionExists)
+    unset(${_prefix}_WORKS)
+    unset(${_prefix}_WORKS CACHE)
+    set(CMAKE_REQUIRED_LIBRARIES ${${_prefix}_LIBRARIES})
+    set(CMAKE_REQUIRED_INCLUDES ${${_prefix}_INCLUDE_DIRS})
+    set(CMAKE_REQUIRED_DEFINITIONS ${${_prefix}_DEFINITIONS})
+    check_function_exists(${_function} ${_prefix}_WORKS)
+    set(CMAKE_REQUIRED_LIBRARIES "")
+    set(CMAKE_REQUIRED_INCLUDES "")
+    set(CMAKE_REQUIRED_DEFINITIONS "")
+    mark_as_advanced(${_prefix}_WORKS)
+endmacro()
+
+find_package(PkgConfig QUIET)
+
+set(ENV_FABULOUS_DIR "$ENV{FABULOUS_DIR}")
+set(ENV_FABULOUS_INCDIR "$ENV{FABULOUS_INCDIR}")
+set(ENV_FABULOUS_LIBDIR "$ENV{FABULOUS_LIBDIR}")
+set(FABULOUS_GIVEN_BY_USER "FALSE")
+if ( FABULOUS_DIR OR ENV_FABULOUS_DIR
+        OR ( FABULOUS_INCDIR AND FABULOUS_LIBDIR )
+        OR ( ENV_FABULOUS_INCDIR AND ENV_FABULOUS_LIBDIR ) )
+    set(FABULOUS_GIVEN_BY_USER "TRUE")
+endif()
+
+set(FABULOUS_STATIC_FIND_QUIETLY "TRUE")
+set(FABULOUS_SHARED_FIND_QUIETLY "TRUE")
+
+if ((NOT FABULOUS_FOUND) AND (NOT FABULOUS_GIVEN_BY_USER) AND PKG_CONFIG_FOUND)
+    pkg_check_modules(PC_FABULOUS QUIET fabulous)
+
+    find_path(FABULOUS_STATIC_INCLUDE_DIR NAMES fabulous.h
+        HINTS ${PC_FABULOUS_STATIC_INCLUDEDIR} ${PC_FABULOUS_STATIC_INCLUDE_DIRS} )
+    find_library(FABULOUS_STATIC_LIBRARY NAMES libfabulous.a
+        HINTS ${PC_FABULOUS_STATIC_LIBDIR} ${PC_FABULOUS_STATIC_LIBRARY_DIRS} )
+
+    find_path(FABULOUS_SHARED_INCLUDE_DIR NAMES fabulous.h
+        HINTS ${PC_FABULOUS_INCLUDEDIR} ${PC_FABULOUS_INCLUDE_DIRS} )
+    find_library(FABULOUS_SHARED_LIBRARY NAMES libfabulous.so
+        HINTS ${PC_FABULOUS_LIBDIR} ${PC_FABULOUS_LIBRARY_DIRS} )
+
+    # handle the QUIETLY and REQUIRED arguments and set FABULOUS_FOUND to TRUE
+    # if all listed variables are TRUE
+
+    find_package_handle_standard_args(
+        FABULOUS_STATIC DEFAULT_MSG
+        FABULOUS_STATIC_LIBRARY FABULOUS_STATIC_INCLUDE_DIR)
+    mark_as_advanced(FABULOUS_STATIC_INCLUDE_DIR FABULOUS_STATIC_LIBRARY)
+
+    find_package_handle_standard_args(
+        FABULOUS_SHARED DEFAULT_MSG
+        FABULOUS_SHARED_LIBRARY FABULOUS_SHARED_INCLUDE_DIR)
+    mark_as_advanced(FABULOUS_SHARED_INCLUDE_DIR FABULOUS_SHARED_LIBRARY)
+
+    if (FABULOUS_STATIC_FOUND AND NOT FABULOUS_SHARED_FOUND)
+        set(FABULOUS_INCLUDE_DIRS ${FABULOUS_STATIC_INCLUDE_DIR} )
+        set(FABULOUS_DEFINITIONS ${PC_FABULOUS_STATIC_CFLAGS_OTHER} )
+        set(FABULOUS_LIBRARIES "")
+        fabulous_find_libraries_from_pkgconfig_results(FABULOUS PC_FABULOUS_STATIC)
+    elseif(FABULOUS_SHARED_FOUND)
+        set(FABULOUS_INCLUDE_DIRS ${FABULOUS_INCLUDE_DIR} )
+        set(FABULOUS_DEFINITIONS ${PC_FABULOUS_CFLAGS_OTHER} )
+        set(FABULOUS_LIBRARIES "")
+        fabulous_find_libraries_from_pkgconfig_results(FABULOUS PC_FABULOUS)
+    endif()
+    fabulous_check_function_exists(FABULOUS fabulous_create)
+    find_package_handle_standard_args(
+        FABULOUS DEFAULT_MSG
+        FABULOUS_LIBRARIES FABULOUS_INCLUDE_DIRS FABULOUS_WORKS)
+endif()
+
+if ((NOT FABULOUS_FOUND) AND (FABULOUS_GIVEN_BY_USER OR (NOT PKG_CONFIG_FOUND)))
+
+    # Currently the C-api (compiled version) does not depent on chameleon
+    # so the library only depends on CBLAS AND LAPACKE
+
+    set(FABULOUS_DEFINITIONS "")
+    if ( ( FABULOUS_INCDIR AND FABULOUS_LIBDIR ) OR ( ENV_FABULOUS_INCDIR AND ENV_FABULOUS_LIBDIR ) )
+
+        if ((NOT FABULOUS_LIBDIR) AND (NOT FABULOUS_INCDIR)
+                AND (ENV_FABULOUS_INCDIR AND ENV_FABULOUS_LIBDIR) )
+            set(FABULOUS_LIBDIR ${ENV_FABULOUS_LIBDIR})
+            set(FABULOUS_INCDIR ${ENV_FABULOUS_INCDIR})
+        endif()
+
+        find_path(FABULOUS_INCLUDE_DIRS NAMES fabulous.h HINTS ${FABULOUS_INCDIR})
+        find_library(FABULOUS_STATIC_LIBRARY NAMES libfabulous.a HINTS ${FABULOUS_LIBDIR})
+        find_library(FABULOUS_SHARED_LIBRARY NAMES libfabulous.so HINTS ${FABULOUS_LIBDIR})
+    else()
+        if (ENV_FABULOUS_DIR AND NOT FABULOUS_DIR)
+            set(FABULOUS_DIR "${ENV_FABULOUS_DIR}" CACHE PATH "Installation prefix where fabulous is installed")
+        else()
+            set(FABULOUS_DIR "${FABULOUS_DIR}" CACHE PATH "Installation prefix where fabulous is installed")
+        endif()
+
+        find_path(FABULOUS_INCLUDE_DIRS NAMES fabulous.h
+            HINTS ${FABULOUS_DIR}
+            PATH_SUFFIXES include include/fabulous)
+        find_library(FABULOUS_STATIC_LIBRARY NAMES libfabulous.a
+            HINTS ${FABULOUS_DIR}
+            PATH_SUFFIXES lib lib32 lib64 lib/fabulous lib32/fabulous lib64/fabulous)
+        find_library(FABULOUS_SHARED_LIBRARY NAMES libfabulous.so
+            HINTS ${FABULOUS_DIR}
+            PATH_SUFFIXES lib lib32 lib64 lib/fabulous lib32/fabulous lib64/fabulous)
+    endif()
+
+    find_package_handle_standard_args(FABULOUS_STATIC DEFAULT_MSG FABULOUS_STATIC_LIBRARY)
+    find_package_handle_standard_args(FABULOUS_SHARED DEFAULT_MSG FABULOUS_SHARED_LIBRARY)
+    mark_as_advanced(FABULOUS_STATIC_LIBRARY FABULOUS_SHARED_LIBRARY)
+
+    if (FABULOUS_STATIC_FOUND AND NOT FABULOUS_SHARED_FOUND)
+        if (FABULOUS_FIND_REQUIRED)
+            find_package(CBLAS REQUIRED)
+            find_package(LAPACKE REQUIRED)
+        else()
+            find_package(CBLAS)
+            find_package(LAPACKE)
+        endif()
+        set(FABULOUS_LIBRARIES ${FABULOUS_STATIC_LIBRARY} ${CBLAS_LIBRARIES} ${LAPACKE_LIBRARIES})
+    elseif(FABULOUS_SHARED_FOUND)
+        set(FABULOUS_LIBRARIES ${FABULOUS_SHARED_LIBRARY})
+    endif()
+    fabulous_check_function_exists(FABULOUS fabulous_create)
+    find_package_handle_standard_args(
+        FABULOUS DEFAULT_MSG
+        FABULOUS_LIBRARIES FABULOUS_INCLUDE_DIRS FABULOUS_WORKS)
+endif()