view scripts/list_sln_configs.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 argparse
import logging
from logutil import setup_logging
from vsutil import SolutionCache


logger = logging.getLogger(__name__)


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

    cache, _ = SolutionCache.load_or_rebuild(args.solution, args.cache)
    sec = cache.slnobj.globalsection('SolutionConfigurationPlatforms')
    for e in sec.entries:
        config, platform = e.name.split('|')
        if config != "Invalid" and platform != "Invalid":
            print(e.name)


if __name__ == '__main__':
    main()