.ycm_extra_conf.py
author Phil Ringnalda <philringnalda@gmail.com>
Thu, 15 Dec 2016 17:59:34 -0800
changeset 365815 0da2d0158f98743c85d3ed279c3a4db691c2d4f5
parent 350123 578ebd592745ff2b7647b205576f20b5b36f3327
child 512260 2a22490b8a06c9a5eef192ef3192386f8e7ff74f
permissions -rw-r--r--
Backed out 20 changesets (bug 1320892, bug 1318507, bug 1321450, bug 1305832, bug 1320030, bug 1310247) for build bustage Backed out changeset 51de65f3f839 (bug 1305832) Backed out changeset 88c9d76d46ab (bug 1305832) Backed out changeset 4e602c1e307e (bug 1305832) Backed out changeset 10ea91ee54bd (bug 1305832) Backed out changeset fe0a30186fcc (bug 1305832) Backed out changeset b810c31221c5 (bug 1320030) Backed out changeset ae0f7b513fa3 (bug 1320030) Backed out changeset e6d85e47e7bb (bug 1320030) Backed out changeset 39379507d2d8 (bug 1320030) Backed out changeset ba7fef973cf4 (bug 1321450) Backed out changeset 4b6ee2eadeac (bug 1321450) Backed out changeset 0a3c283c1988 (bug 1321450) Backed out changeset 776295ca0f64 (bug 1320892) Backed out changeset e4bf2c365c82 (bug 1310247) Backed out changeset 4058aa1d9831 (bug 1310247) Backed out changeset df953d508c81 (bug 1310247) Backed out changeset 3f1441255bca (bug 1318507) Backed out changeset b5d390d820b0 (bug 1318507) Backed out changeset 11dc44b79466 (bug 1318507) Backed out changeset b2aaaf37994e (bug 1318507)

# 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
import shlex
import sys
try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO

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()

    # Mach calls sys.stdout.fileno(), so we need to fake it when capturing it.
    # Returning an invalid file descriptor does the trick.
    out.fileno = lambda: -1
    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
    }