import os def FlagsForFile(filename, **kwargs): client_data = kwargs['client_data'] cwd = client_data['getcwd()'] flags = [ '-Wall', # '-Wextra', # '-Wshadow', # '-Werror', # '-Wc++98-compat', # '-Wno-long-long', # '-Wno-variadic-macros', # '-fexceptions', # '-DNDEBUG', '-std=c++14', '-stdlib=libstdc++', '-x', 'c++', '-isystem', '/usr/include', '-isystem', '/usr/local/include', '-isystem', '/usr/include/qt', '-I', '.', '-I', './include', ] relative_to = cwd final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return list(flags) new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags