public override IEnumerable <string> GetToolchainIncludes(ISourceFile file)
        {
            if (_gccConfig == null && file != null)
            {
                _settings = file.Project.Solution.StartupProject.GetToolchainSettings <PublishedGCCToolchainSettings>();

                _gccConfig = GccConfigurationsManager.GetConfiguration(_settings.Toolchain, _settings.Version);

                _gccConfig?.ResolveAsync().GetAwaiter().GetResult();
            }

            var result = base.GetToolchainIncludes(file);

            if (_gccConfig != null && _gccConfig.SystemIncludePaths != null)
            {
                result = result.Concat(_gccConfig.SystemIncludePaths);
            }

            return(result);
        }
        public override async Task <bool> InstallAsync(IConsole console, IProject project)
        {
            bool result = true;

            _settings = project.GetToolchainSettings <PublishedGCCToolchainSettings>();

            if (_settings.Toolchain != null)
            {
                await PackageManager.EnsurePackage(_settings.Toolchain, _settings.Version, IoC.Get <IConsole>(), ignoreRid : true);

                _gccConfig = GccConfigurationsManager.GetConfiguration(_settings.Toolchain, _settings.Version);

                result = await _gccConfig.ResolveAsync();
            }

            if (result)
            {
                result = await base.InstallAsync(console, project);
            }

            return(result);
        }