view scripts/build_sln_cache.py @ 10:f444739dd8af

Improvements to YCM dynamic flags. - Fallback to a "companion" item (e.g. header/source) or a nearby item when no flags are found for an item. - Finding a "companion" is also exposed as a standalone script. - Ability to pass extra clang flags, including some from a special file found in the .vimcrosoft directory. - Add support for PCH and other forced-include files. - Add options for short/long args, or forcing forward slashes. - Debugging/troubleshooting options, including dumping a batch file and response file to run clang directly, and the ability to auto-load a solution's last known environment when running in command line.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 24 Sep 2020 23:02:16 -0700
parents 5d2c0db51914
children
line wrap: on
line source

import os.path
import logging
import argparse
from vsutil import SolutionCache


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('solution',
                        help="The path to the solution file")
    parser.add_argument('cache',
                        help="The path to the cache file")
    parser.add_argument('-v', '--verbose',
                        action='store_true')
    args = parser.parse_args()

    loglevel = logging.INFO
    if args.verbose:
        loglevel = logging.DEBUG
    logging.basicConfig(level=loglevel)
    logger = logging.getLogger()

    cache, loaded = SolutionCache.load_or_rebuild(args.solution, args.cache)
    if not loaded:
        total_items = sum([len(i) for i in cache.index.values()])
        logger.debug(f"Built cache with {total_items} items.")


if __name__ == '__main__':
    main()