Add CMake related files missing from the release tarball

Due to a bug in the cloog release, a few files were missing from the
release tarball. This patch re-adds those files, which are needed for
the build to work. This patch can be dropped when cloog is bumped.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/cmake/isl-config.cmake
===================================================================
--- /dev/null
+++ b/cmake/isl-config.cmake
@@ -0,0 +1,25 @@
+# Try to find the isl library
+
+# ISL_FOUND       - System has isl lib
+# ISL_INCLUDE_DIR - The isl include directory
+# ISL_LIBRARY     - Library needed to use isl
+
+
+if (ISL_INCLUDE_DIR AND ISL_LIBRARY)
+	# Already in cache, be silent
+	set(ISL_FIND_QUIETLY TRUE)
+endif()
+
+find_path(ISL_INCLUDE_DIR NAMES isl/version.h)
+find_library(ISL_LIBRARY NAMES isl)
+
+if (ISL_LIBRARY AND ISL_INCLUDE_DIR)
+	message(STATUS "Library isl found =) ${ISL_LIBRARY}")
+else()
+	message(STATUS "Library isl not found =(")
+endif()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(ISL DEFAULT_MSG ISL_INCLUDE_DIR ISL_LIBRARY)
+
+mark_as_advanced(ISL_INCLUDE_DIR ISL_LIBRARY)
Index: b/cmake/cloog-isl-config.cmake
===================================================================
--- /dev/null
+++ b/cmake/cloog-isl-config.cmake
@@ -0,0 +1,26 @@
+# Try to find the cloog-isl library
+
+# CLOOG_ISL_FOUND       - System has cloog-isl lib
+# CLOOG_ISL_INCLUDE_DIR - The cloog-isl include directory
+# CLOOG_ISL_LIBRARY     - Library needed to use cloog-isl
+
+
+if (CLOOG_ISL_INCLUDE_DIR AND CLOOG_ISL_LIBRARY)
+	# Already in cache, be silent
+	set(CLOOG_ISL_FIND_QUIETLY TRUE)
+endif()
+
+find_path(CLOOG_ISL_INCLUDE_DIR NAMES cloog/isl/cloog.h)
+find_library(CLOOG_ISL_LIBRARY NAMES cloog-isl)
+
+if (CLOOG_ISL_LIBRARY AND CLOOG_ISL_INCLUDE_DIR)
+	message(STATUS "Library cloog-isl found =) ${CLOOG_ISL_LIBRARY}")
+else()
+	message(STATUS "Library cloog-isl not found =(")
+endif()
+
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLOOG_ISL DEFAULT_MSG CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
+
+mark_as_advanced(CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
