+from glob import glob
+from os import path
+
+import ycm_core
+
+
+def findCompilationDatabaseFolder(dir='.'):
+ dirs = [path.dirname(f) for f in glob(dir + '/**/compile_commands.json',
+ recursive=True)]
+ return dirs
+
+
+def generateQtFlags():
+ flags = ['-isystem', '/usr/include/qt/']
+ for p in glob('/usr/include/qt/*/'):
+ flags += ['-isystem', p]
+ return flags
+
+
+def isHeader(filename):
+ ext = path.splitext(filename)[1]
+ return ext in ['.hpp', '.h']
+
+
+def GetCompilationInfoForFile(database, filename):
+ if isHeader(filename):
+ basename = path.splitext(filename)[0]
+ for ext in ['.cpp', '.c']:
+ cpp_file = basename + ext
+ if path.exists(cpp_file):
+ compilation_info = database.GetCompilationInfoForFile(
+ cpp_file)
+ if compilation_info.compiler_flags_:
+ return compilation_info
+ return None
+ return database.GetCompilationInfoForFile(filename)