-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)
+def get_compilation_info_for_file(dbpath, database, filename):
+ info = database.GetCompilationInfoForFile(filename)
+ if ok_compilation_info(info):
+ logging.info("Flags for file where found in database: " + filename)
+ return info
+ else:
+ logging.info("Flags for file not found in database: " + filename)
+ basename = os.path.splitext(filename)[0]
+ for extension in SOURCE_EXTENSIONS:
+ replacement_file = basename + extension
+ logging.info("Trying to replace extension with: " + extension)
+ info = database.GetCompilationInfoForFile(replacement_file)
+ if ok_compilation_info(info):
+ logging.info("Replacing header with: " + replacement_file)
+ return info
+ replacement_file = find_similar_file_in_database(dbpath, filename)
+ logging.info("Replacing header with: " + replacement_file)
+ return database.GetCompilationInfoForFile(replacement_file)