+
+ //CMakeLists file handling
+ /**
+ * Type definition for the value of a syntax element for CMakeLists files
+ */
+ typedef std::vector<std::string> cmdValue;
+
+ /**
+ * Type definition for the type of a syntax element for CMakeLists files
+ */
+ typedef std::string cmdType;
+
+ /**
+ * Type definition for syntax elements of a CMakeLists file
+ */
+ typedef std::pair<cmdType,cmdValue> syntaxElement;
+
+ /**
+ * Type definition for describing a CMakeLists file content
+ */
+ typedef std::vector<syntaxElement> CMLFile;
+
+ /**
+ * Reads a file as string and returns the read data.
+ * @param file_path Full path of the CMakeLists file.
+ * @return A string with the contents of the given file.
+ */
+ std::string readFile(const std::string& file_path);
+ /**
+ * Writes the given string into a file and returns whether the operation is successful.
+ * @param file_path Full path of the CMakeLists file.
+ * @param st string to write.
+ * @return True if the operation was successful.
+ */
+ bool writeFile(const std::string& file_path, const std::string& st);
+
+ /**
+ * Reads a CMakeLists file and returns the read data.
+ * @param file_path Full path of the CMakeLists file.
+ * @return A CMLFile with the contents of the given file.
+ */
+ CMLFile readCMLFile(const std::string& file_path);
+
+ /**
+ * Writes the given data into specified CMakeLists file.
+ * @param file_path Full path of the CMakeLists file.
+ * @param data CMakeLists data.
+ * @return True if the operation was successful.
+ */
+ bool writeCMLFile(const std::string& file_path, const CMLFile& data);
+
+ /**
+ * @param st Strips all space character at the beginning and at the end of the string.
+ */
+ void normalizeStr(std::string& st);
+