.ycm_extra_conf.py
author Nick Alexander <nalexander@mozilla.com>
Thu, 29 Oct 2015 11:11:36 -0700
changeset 270305 49063069ff59b4602ef3c6e4b05fc6551520eef7
parent 243023 3e46e2f117699b4897528d471b5d4a96299adbe8
child 303751 dd8ef51f4920c5f4370afd0aebf43d1113363fc3
permissions -rw-r--r--
Bug 1219846 - Part 2: Make 'omnijar' project in srcdir. r=me DONTBUILD NPOTB The :omnijar project is for IntelliJ only; adding it neatly labels folders we consider part of the omnijar in mobile/android. The JAR produced is not used. We add an evaluation-time dependency from :app to :omnijar so that we can declare the set of omnijar folders exactly once. We'd prefer to have the dependency in the other direction (to save evaluation time) but there's an interface mismatch between the two Gradle model types. See comments in the :omnijar project. This is delicate.

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import imp
import os
from StringIO import StringIO
import shlex
import sys

old_bytecode = sys.dont_write_bytecode
sys.dont_write_bytecode = True

path = os.path.join(os.path.dirname(__file__), 'mach')

if not os.path.exists(path):
    path = os.path.join(os.path.dirname(__file__), 'config.status')
    config = imp.load_module('_buildconfig', open(path), path, ('', 'r', imp.PY_SOURCE))
    path = os.path.join(config.topsrcdir, 'mach')
mach_module = imp.load_module('_mach', open(path), path, ('', 'r', imp.PY_SOURCE))

sys.dont_write_bytecode = old_bytecode

def FlagsForFile(filename):
    mach = mach_module.get_mach()
    out = StringIO()
    out.encoding = None
    mach.run(['compileflags', filename], stdout=out, stderr=out)

    flag_list = shlex.split(out.getvalue())

    # This flag is added by Fennec for android build and causes ycmd to fail to parse the file.
    # Removing this flag is a workaround until ycmd starts to handle this flag properly.
    # https://github.com/Valloric/YouCompleteMe/issues/1490
    final_flags = [x for x in flag_list if not x.startswith('-march=armv')]

    return {
        'flags': final_flags,
        'do_cache': True
    }