|
|
@ -4,12 +4,41 @@ https://github.com/Valloric/ycmd
|
|
|
|
|
|
|
|
|
|
|
|
# pylint: disable=import-error,invalid-name,missing-docstring,unused-argument
|
|
|
|
# pylint: disable=import-error,invalid-name,missing-docstring,unused-argument
|
|
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
import os,platform
|
|
|
|
import ycm_core
|
|
|
|
import ycm_core
|
|
|
|
|
|
|
|
|
|
|
|
def DirectoryOfThisScript():
|
|
|
|
def DirectoryOfThisScript():
|
|
|
|
return os.path.dirname(os.path.abspath(__file__))
|
|
|
|
return os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
default_flags = [
|
|
|
|
|
|
|
|
'-I','library/include',
|
|
|
|
|
|
|
|
'-I','library/proto',
|
|
|
|
|
|
|
|
'-I','plugins/proto',
|
|
|
|
|
|
|
|
'-I','depends/protobuf',
|
|
|
|
|
|
|
|
'-I','depends/lua/include',
|
|
|
|
|
|
|
|
'-I','depends/md5',
|
|
|
|
|
|
|
|
'-I','depends/jsoncpp',
|
|
|
|
|
|
|
|
'-I','depends/tinyxml',
|
|
|
|
|
|
|
|
'-I','depends/tthread',
|
|
|
|
|
|
|
|
'-I','depends/clsocket/src',
|
|
|
|
|
|
|
|
'-x','c++',
|
|
|
|
|
|
|
|
'-D','PROTOBUF_USE_DLLS',
|
|
|
|
|
|
|
|
'-D','LUA_BUILD_AS_DLL',
|
|
|
|
|
|
|
|
'-Wall','-Wextra',
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if os.name == 'posix':
|
|
|
|
|
|
|
|
default_flags.extend([
|
|
|
|
|
|
|
|
'-D','LINUX_BUILD',
|
|
|
|
|
|
|
|
'-D','_GLIBCXX_USE_C99',
|
|
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
if platform.system() == 'Darwin':
|
|
|
|
|
|
|
|
default_flags.extend(['-D','_DARWIN'])
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
default_flags.extend(['-D','_LINUX'])
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
default_flags.extend(['-D','WIN32'])
|
|
|
|
|
|
|
|
|
|
|
|
# We need to tell YouCompleteMe how to compile this project. We do this using
|
|
|
|
# We need to tell YouCompleteMe how to compile this project. We do this using
|
|
|
|
# clang's "Compilation Database" system, which essentially just dumps a big
|
|
|
|
# clang's "Compilation Database" system, which essentially just dumps a big
|
|
|
|
# json file into the build folder.
|
|
|
|
# json file into the build folder.
|
|
|
@ -117,13 +146,19 @@ def FlagsForFile(filename, **kwargs):
|
|
|
|
# python list, but a "list-like" StringVec object
|
|
|
|
# python list, but a "list-like" StringVec object
|
|
|
|
compilation_info = GetCompilationInfoForFile(filename)
|
|
|
|
compilation_info = GetCompilationInfoForFile(filename)
|
|
|
|
if not compilation_info:
|
|
|
|
if not compilation_info:
|
|
|
|
return None
|
|
|
|
return {
|
|
|
|
|
|
|
|
'flags':MakeRelativePathsInFlagsAbsolute(default_flags,DirectoryOfThisScript()),
|
|
|
|
|
|
|
|
'do_cache': True,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
final_flags = MakeRelativePathsInFlagsAbsolute(
|
|
|
|
final_flags = MakeRelativePathsInFlagsAbsolute(
|
|
|
|
compilation_info.compiler_flags_,
|
|
|
|
compilation_info.compiler_flags_,
|
|
|
|
compilation_info.compiler_working_dir_
|
|
|
|
compilation_info.compiler_working_dir_
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Make sure ycm reports more suspicuous code lines
|
|
|
|
|
|
|
|
final_flags.append('-Wextra')
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
'flags': final_flags,
|
|
|
|
'flags': final_flags,
|
|
|
|
'do_cache': True
|
|
|
|
'do_cache': True
|
|
|
|