static public string GetActiveConfigurationName() { ThreadHelper.ThrowIfNotOnUIThread(); string solutionPath = EditorUtils.GetSolutionPath(); if (solutionPath == null || solutionPath.Length == 0) { return(null); } string activeConfigFilename = solutionPath + @".vs\ProjectSettings.json"; if (File.Exists(activeConfigFilename)) { var activeConfig = new CMakeActiveConfiguration(); try { string jsonString = File.ReadAllText(activeConfigFilename); activeConfig = JsonConvert.DeserializeObject <CMakeActiveConfiguration>(jsonString); } catch (Exception e) { OutputLog.Error(e.Message); } if (activeConfig != null) { return(activeConfig.CurrentProjectSetting); } } return(null); }
public override string ComputeMacro(string macroStr) { ThreadHelper.ThrowIfNotOnUIThread(); if (macroStr == @"${projectDir}") { return(EditorUtils.GetSolutionPath()); } else if (macroStr == @"${name}") { return(ExtractorCMake.GetActiveConfigurationName()); } return(null); }
private CMakeConfiguration GetActiveConfiguration() { ThreadHelper.ThrowIfNotOnUIThread(); string solutionPath = EditorUtils.GetSolutionPath(); if (solutionPath == null || solutionPath.Length == 0) { return(null); } string settingsFilename = solutionPath + "CMakeSettings.json"; if (File.Exists(settingsFilename)) { CMakeSettings settings = null; try { string jsonString = File.ReadAllText(settingsFilename); settings = JsonConvert.DeserializeObject <CMakeSettings>(jsonString); } catch (Exception e) { OutputLog.Error(e.Message); } string activeConfigName = GetActiveConfigurationName(); if (activeConfigName != null && activeConfigName.Length > 0 && settings != null && settings.configurations != null) { foreach (CMakeConfiguration config in settings.configurations) { if (config.name == activeConfigName) { return(config); } } } } return(null); }