Index: tools/vim/chromium.ycm_extra_conf.py |
diff --git a/tools/vim/chromium.ycm_extra_conf.py b/tools/vim/chromium.ycm_extra_conf.py |
index 2e5318bcdb4b5223e01f432493b557e66bd58a75..c0de6486aa26797fcd701a52f9a259a7b7d3eb47 100644 |
--- a/tools/vim/chromium.ycm_extra_conf.py |
+++ b/tools/vim/chromium.ycm_extra_conf.py |
@@ -40,6 +40,7 @@ |
import os |
import os.path |
import subprocess |
+import sys |
# Flags from YCM's default config. |
@@ -77,40 +78,6 @@ def FindChromeSrcFromFilename(filename): |
return os.path.join(curdir, 'src') |
-# Largely copied from ninja-build.vim (guess_configuration) |
-def GetNinjaOutputDirectory(chrome_root): |
- """Returns <chrome_root>/<output_dir>/(Release|Debug). |
- |
- The configuration chosen is the one most recently generated/built. Detects |
- a custom output_dir specified by GYP_GENERATOR_FLAGS.""" |
- |
- output_dir = 'out' |
- generator_flags = os.getenv('GYP_GENERATOR_FLAGS', '').split(' ') |
- for flag in generator_flags: |
- name_value = flag.split('=', 1) |
- if len(name_value) == 2 and name_value[0] == 'output_dir': |
- output_dir = name_value[1] |
- |
- root = os.path.join(chrome_root, output_dir) |
- debug_path = os.path.join(root, 'Debug') |
- release_path = os.path.join(root, 'Release') |
- |
- def is_release_15s_newer(test_path): |
- try: |
- debug_mtime = os.path.getmtime(os.path.join(debug_path, test_path)) |
- except os.error: |
- debug_mtime = 0 |
- try: |
- rel_mtime = os.path.getmtime(os.path.join(release_path, test_path)) |
- except os.error: |
- rel_mtime = 0 |
- return rel_mtime - debug_mtime >= 15 |
- |
- if is_release_15s_newer('build.ninja') or is_release_15s_newer('protoc'): |
- return release_path |
- return debug_path |
- |
- |
def GetClangCommandFromNinjaForFilename(chrome_root, filename): |
"""Returns the command line to build |filename|. |
@@ -166,6 +133,8 @@ def GetClangCommandFromNinjaForFilename(chrome_root, filename): |
# try to use the default flags. |
return chrome_flags |
+ sys.path.append(os.path.join(chrome_root, 'tools', 'vim')) |
+ from ninja_output import GetNinjaOutputDirectory |
out_dir = os.path.realpath(GetNinjaOutputDirectory(chrome_root)) |
# Ninja needs the path to the source file relative to the output build |